vaweGitHub

EasingCSS keywords

CSS linear

The straight line: constant speed from start to end.

linear reaches 50% of its travel at 50% of the time and 90% at 90%. Its peak speed is 1x the average.

CSS keywordspeak 1x

Progress against time0100.51progress50%90%
The dashed line is linear. The dots mark 50% and 90% of the travel.
Velocity, in multiples of average speed0100.51speed, x average
The dashed line is 1x, the speed of linear.

Live demo

The blue box uses the exact linear() string below, in your browser. The grey box is linear.

linear
linear

Your system asks for reduced motion, so the boxes rest at the end of the move.

Numbers

50% of travel
50%of the time
90% of travel
90%of the time
After 10% of time
10%of the travel is done
Peak speed
1xtimes the average
Overshoot
0%stays inside the end
Undershoot
0%never below the start
linear() points
2at a 0.002 tolerance
cubic-bezier
exactworst gap 0.0 points

Copy the code

css linear() (exact)
animation-timing-function: linear(0, 1);
cubic-bezier (the keyword's definition)
animation-timing-function: linear;
/* the same as cubic-bezier(0, 0, 1, 1) */
web animations api
el.animate({ translate: ['0 0', '240px 0'] }, { duration: 600, easing: 'cubic-bezier(0, 0, 1, 1)', fill: 'both' });
css
animation: slide 600ms linear;

When to use it, and when to avoid it

Use it for

  • Rotation spins, progress bars and loops, where a steady speed is the point.
  • Opacity cross-fades between two shots.

Avoid it for

  • Moving a thing across the screen: it starts and stops with no ease, so it reads as mechanical.
  • Any entrance or exit over 0.3 s. Use an EASE name from vawe.

The nearest vawe ease

The closest of the nine vawe After Effects eases is glide, an RMS gap of 0.0657 in progress. After Effects and vawe set the shape with two handles, so it can be tuned where a named curve cannot.