easeInSine
It starts slowly and ends fast. The gentlest family: the speed changes slowly, so it reads as breathing, not as a hit.
easeInSine reaches 50% of its travel at 67% of the time and 90% at 94%. Its peak speed is 1.57x the average.
Live demo
The blue box uses the exact linear() string below, in your browser. The grey box is linear.
easeInSine
linear
Your system asks for reduced motion, so the boxes rest at the end of the move.
Numbers
- 50% of travel
- 67%of the time
- 90% of travel
- 94%of the time
- After 10% of time
- 1.23%of the travel is done
- Peak speed
- 1.57xtimes the average
- Overshoot
- 0%stays inside the end
- Undershoot
- 0%never below the start
- linear() points
- 41at a 0.002 tolerance
- cubic-bezier
- exactworst gap 0.1 points
Copy the code
animation-timing-function: linear(0, 0.0008, 0.0031, 0.0069, 0.0123, 0.0192, 0.0276, 0.0375, 0.0489, 0.0618, 0.0761, 0.0919, 0.109, 0.1275, 0.1474, 0.1685, 0.191, 0.2147, 0.2396, 0.2657, 0.2929, 0.3212, 0.3506, 0.3809, 0.4122, 0.4444, 0.4775, 0.5114, 0.546, 0.5813, 0.6173, 0.6539, 0.691, 0.7286, 0.7666, 0.8049, 0.8436, 0.8825, 0.9215, 0.9607, 1);animation-timing-function: cubic-bezier(0.36, 0, 0.67, 0.48);Least-squares fit to the easeInSine curve; the worst gap is 0.1 points of travel. The linear() string is exact.
el.animate({ translate: ['0 0', '240px 0'] }, { duration: 600, easing: 'cubic-bezier(0.36, 0, 0.67, 0.48)', fill: 'both' });import { easeInSine } from '../../core/motion/curves.js';
import { curveToLinear } from '../../core/motion/springs.js';
const easing = curveToLinear(easeInSine, { tolerance: 0.002 }); // the linear() string above
const x = easeInSine(u); // per-frame code, u in 0..1When to use it, and when to avoid it
Use it for
- Exits and build-ups that leave the frame at speed.
- For sine: ambient loops, slow camera drift and background layers.
Avoid it for
- Entrances: the first frames barely move, so the viewer waits.
- For sine: moves that must hit hard: the gentle stop looks undecided.
The nearest vawe ease
The closest of the nine vawe After Effects eases is carry, an RMS gap of 0.09 in progress. After Effects and vawe set the shape with two handles, so it can be tuned where a named curve cannot.