Why use this tool?
- Compare how a curve starts and settles without guessing its coordinates.
- Separate animation duration from the shape of the easing curve.
- Reuse a small set of motion curves across interface components.
Edit cubic-bezier control points, compare easing curves with linear motion, and adjust duration. Copy a CSS timing function, transition, or JS curve.
Runs locally in your browser
Drag either handle. The dotted square is the unit interval.
cubic-bezier(0.34, 1.56, 0.64, 1)
Your curve on top, a linear reference underneath.
Your curve
Linear reference
On a scaling element
transition-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);Complete tool guide
Edit a cubic-bezier timing function for CSS transitions and animations. Drag the two control points, compare the motion with a linear reference, and adjust duration before copying the timing function, transition, or JavaScript control-point array.
Your input is processed in the current browser tab and is not sent to the application server.
Start from a preset that is close to what you want.
Drag either handle to reshape the curve.
Set the duration and watch the preview bars against the linear reference.
Copy the timing function, transition, or JavaScript form.
The four values are x1, y1, x2, y2. The x coordinates must stay between 0 and 1 for valid CSS; y coordinates may extend outside that interval.
Duration sets how long one transition takes. Changing it does not change the exported cubic-bezier coordinates.
Start with ease-in, ease-out, or ease-in-out, then compare it with linear motion. Overshoot presets can move progress beyond its final value.
Start with: The ease-out preset
cubic-bezier(0, 0, 0.58, 1)This is the CSS ease-out curve. Apply it to the property and duration you intend to transition; the curve does not open the drawer by itself.
Start with: The ease-in preset
cubic-bezier(0.42, 0, 1, 1)Progress starts slowly and accelerates toward the endpoint. The appropriate duration depends on distance and interaction context.
Horizontal position represents elapsed time and vertical position represents progress. The endpoints stay at (0,0) and (1,1); control points change the route between them.
An ease-out curve can help an entering element arrive quickly and settle. Ease-in can suit an exit that accelerates away. These are design starting points; test the distance and duration together.
Respect prefers-reduced-motion in the consuming interface. Reduce or remove nonessential movement while preserving clear state changes. A timing function alone does not implement that preference.
No. A cubic-bezier timing function maps a fixed duration to progress. A spring model describes a different motion system and may react to interruption or velocity.
Opacity is clamped to its allowed range. A curve can exceed normal progress while the animated property cannot visibly exceed its limits.
No. Add a prefers-reduced-motion rule or equivalent application behavior where you use the animation, and verify that state changes remain understandable.
Keep working
Continue with another focused tool from the same collection.