[feature] Added a nicer transition effect

It is smoother, thanks to some easing curves,
and the duration is now customizable.