Cubic Bezier Easing Generator
Drag the control points, or type x1, y1, x2, y2, to build a CSS cubic-bezier() easing visually. Presets and a live preview included. Copy the generated transition-timing-function straight into your CSS. Everything runs in your browser, so nothing you enter leaves the page.
x1 and x2 snap into 0-1 automatically. y1 and y2 are free (roughly -0.5 to 1.5; values outside that create overshoot).
cubic-bezier(.25,.1,.25,1) transition-timing-function: cubic-bezier(.25,.1,.25,1); How to use the cubic-bezier easing generator
Drag the two control points on the graph, or type into the x1 / y1 / x2 / y2 fields, and the curve, preview and output code update on the spot. Start from a preset and fine-tune from there.
- Numbers and graph stay in sync: dragging a point changes the numbers, and typing a number moves the point.
- x is time, y is progress: the x axis runs 0 (start) to 1 (end) in time, and the y axis is how far the animation has progressed, 0 (start) to 1 (end).
- Presets:
linearis constant speed,easeis the default gentle acceleration,ease-inspeeds up,ease-outslows down, andease-in-outis smooth at both ends. - Ready to paste: drop the output into
transitionoranimation-timing-function(e.g.transition: transform .4s cubic-bezier(.25,.1,.25,1);).
Handy for
- Giving buttons and modals an entrance/exit that feels nicer than the default
ease - Setting y above 1 to create a bouncy overshoot that passes the end and settles back
- Turning an easing curve handed over by a designer into a concrete CSS value
- Managing your own curve as numbers when keywords like
ease-in-outaren't enough
The output uses the compact form with the leading 0 and trailing zeros dropped (e.g. cubic-bezier(.25,.1,.25,1)). In CSS this is identical to cubic-bezier(0.25, 0.1, 0.25, 1).