CSS

Cubic-Bezier Generator

Shape a CSS easing curve and preview the motion before you copy it.

Drag a handle, or focus one and use the arrow keys (hold Shift for bigger steps).

cubic-bezier(0.25, 0.1, 0.25, 1)
Live preview1.2s loop

The dot moves on your exact easing — the shape of the curve is the shape of the motion.

How it works

A CSS easing curve is a cubic Bézier: the animation runs from (0,0) to (1,1), and two control points bend that path so the value speeds up, slows down, or overshoots along the way. The shape of the curve is literally the shape of the motion.

Drag either handle on the graph — or type exact values, or focus a handle and use the arrow keys — and watch the dot below move on your precise timing function. Named presets like ease-out and back-out give you a starting point; the fun starts when you nudge from there.

When it feels right, copy the cubic-bezier() and paste it into your transition-timing-function. Everything runs in your browser.

Frequently asked

What do the four numbers in cubic-bezier() mean?+

They are the coordinates of two control points: cubic-bezier(x1, y1, x2, y2). The curve always runs from (0,0) to (1,1) — x is progress through time, y is progress through the animated value. The two control points bend that line into the ease you want. This tool lets you drag those points or type the numbers directly.

Can the y values go outside 0–1?+

Yes, and that is the fun part. y values above 1 or below 0 make the animation overshoot and settle back — that is how “back” and “anticipate” easings get their bounce. The x values, though, must stay between 0 and 1; CSS rejects a timing function whose control points move backwards in time, so this tool clamps x for you.

How do I use the value in my CSS?+

Copy the generated cubic-bezier() and drop it into transition-timing-function or animation-timing-function — for example: transition: transform 300ms cubic-bezier(0.34, 1.56, 0.64, 1). It works anywhere a CSS easing keyword like ease-out would.

Is this the same as the named easings?+

The CSS keywords are just presets: ease is cubic-bezier(0.25, 0.1, 0.25, 1), linear is (0, 0, 1, 1), and so on. They are here as starting points — pick the closest one, then nudge the handles to taste. Custom curves are where interfaces stop feeling generic.

Can I edit the curve with the keyboard?+

Yes. Focus either handle and use the arrow keys to nudge it (hold Shift for larger steps), or type exact values into the x1/y1/x2/y2 fields. The live preview updates on every change.

More free tools

All tools

More tools shipping weekly.

Motion you can feel, feedback you can see

This tool lets you preview the exact motion before you commit. Shotline does the same for the whole page — clients drop comments straight on the live site, each pinned to the element it is about.

No signup needed. Free demo canvases stay live for 72 hours.

or start your 14-day free trial — no card required.

Shotline — Cubic-Bezier Generator — free, in-browser