Skip to content

Easings ​

Optional easings that can be applied to change the rate at which values set by triggers change over time.

Formulas ​

Ease ​

EaseIn(x, easeRate)={0forx≤0x∗0.01(1−easeRate)for0<x≤0.01xeaseRatefor0.01<x<11forx≥1EaseOut(x, easeRate)={0forx≤0xeaseRate−1for0<x<11forx≥1EaseInOut(x, easeRate)={EaseIn(2⋅x, easeRate)/2x<0.51−EaseIn(2−2⋅x, easeRate)/2x≥0.5

Elastic ​

ElasticIn(x, easeRate)={0forx≤0ExponentialIn(x)⋅sin⁡(π⋅(0.5+2−2⋅xeaseRate))for0<x<11forx≥1ElasticOut(x, easeRate)=1−ElasticIn(1−x, easeRate)ElasticInOut(x, easeRate)={ElasticIn(2⋅x, easeRate)/2x<0.51−ElasticIn(2−2⋅x, easeRate)/2x≥0.5

Bounce ​

BounceIn(x)=1−BounceOut(1−x)BounceOut(x)={0forx≤07.5625⋅x2for0<x<2.75−17.5625⋅(x−1.52.75)2+0.75for2.75−1≤x<22.757.5625⋅(x−2.252.75)2+0.9375for22.75≤x<2.52.757.5625⋅(x−2.6252.75)2+0.984375for2.52.75≤x<11forx≥1BounceInOut(x)={BounceIn(2⋅x)/2x<0.51−BounceIn(2−2⋅x)/2x≥0.5

Exponential ​

ExponentialIn(x)={0forx≤0210⋅(x−1)for0<x<11forx≥1ExponentialOut(x)=1−ExponentialIn(1−x)ExponentialInOut(x)={ExponentialIn(2⋅x)/2x<0.51−ExponentialIn(2−2⋅x)/2x≥0.5

Sine ​

SineIn(x)={0forx≤01−cos⁡(0.5⋅π⋅x)for0<x<11forx≥1SineOut(x)=1−SineIn(1−x)SineInOut(x)={SineIn(2⋅x)/2x<0.51−SineIn(2−2⋅x)/2x≥0.5

Back ​

BackIn(x)={0forx≤03.5949095⋅x3−2.5949095⋅x2for0<x<11forx≥1BackOut(x)=1−BackIn(1−x)BackInOut(x)={BackIn(2⋅x)/2x<0.51−BackIn(2−2⋅x)/2x≥0.5

Notes ​

Ease rate input is limited between 0.10 and 20.00 but can be edited externally to other values.

Ease In values below 1% and Ease In Out values below 0.5% and above 99.5% are linearly approximated.

Trigonometric functions are approximated and linearly interpolated using a table of 101 points (1% divisions). This is much more noticeable on elastic easings with very low ease rate and not noticeable in the case of sine easings.

Last updated: