Home › Design › Cubic-Bezier Easing Generator

Cubic-Bezier Easing Generator

Set the four values of a CSS cubic-bezier() curve, pick a preset, and copy the timing function. The curve shows how far a value has moved at each point in time.

Presets

CSS timing function

Loading.

Curve preview

Progress y at three points in time. A time of 0 is the start of the transition and 1 is the end.

Time 0.25: progress-
Time 0.5: progress-
Time 0.75: progress-
This page needs JavaScript. Values are rounded to 4 decimal places in the output.

How it works

A CSS easing is a curve from (0, 0) to (1, 1). The two middle points, (x1, y1) and (x2, y2), bend it. Horizontal axis: time, from the start of the transition (0) to the end (1). Vertical axis: progress, from the start value (0) to the end value (1).

x1 and x2 are the horizontal positions of the two control points. They must be between 0 and 1, because time cannot run backwards.

y1 and y2 are the vertical positions. They can be any number. Values below 0 or above 1 make the curve overshoot, which is useful for a bounce or a spring feel.

To find the progress at a given time, the page solves the curve for the point where its horizontal position equals that time, then reads the vertical position at that point. The result is checked to a very small tolerance.

Nothing you type is sent anywhere or stored. The calculation runs in your browser.