How to use the cubic-bezier editor
- Pick a starting curve from CSS keywords, ease-in, ease-out, ease-in-out or design-system curves.
- Drag the two handles on the graph, or focus one and use the arrow keys (Shift for bigger steps). You can also type exact values.
- Watch the race. The top ball uses your curve; the others use
easeandlinearfor comparison. - Set the duration and property for the exported transition.
- Export CSS (transition and animation examples with a reduced-motion rule), a custom property, Tailwind or JavaScript.
How the curve works
The horizontal axis is time and the vertical axis is progress. A steep start means fast motion at the beginning; a flat end means a gentle landing. Handles above the top line or below the bottom create overshoot and anticipation.
Worked examples
Example 1: a snappy dropdown
Use Out quint (0.22, 1, 0.36, 1) with 200ms. The menu appears almost instantly and settles softly, which feels responsive.
Example 2: a playful button press
Use Out back with 300ms on a scale transform. The slight overshoot gives a tactile bounce. Keep it to small elements.
Example 3: a consistent motion system
Export Material standard as a custom property (--ease-standard) and use it in every transition, so all motion in your product shares one personality.
Accessibility
Some people get dizzy or distracted by motion. The CSS export includes a prefers-reduced-motion rule that removes transitions and animations for them. For essential feedback, replace movement with a fade or an instant change.
Common mistakes
- Using linear for UI motion. Real objects accelerate and decelerate, so linear motion looks mechanical. Keep it for spinners and progress.
- Long, slow easings on frequent actions. People wait for them every time; keep repeated interactions under 300ms.
- Mixing many curves. Pick two or three and reuse them.
Matching motion to purpose
Use ease-out curves for things entering the screen, so they arrive quickly and settle gently. Use ease-in for things leaving, and ease-in-out for objects moving from one place to another. Keep most interface motion between 150 and 400 milliseconds, and always provide a reduced-motion alternative.