Skip to content
PratronHome

Cubic Bezier Editor

Shape the timing function that decides how an animation accelerates. Drag either control point, or set the four numbers precisely with the sliders, and watch the motion replay as you go. The named CSS easings are included as presets, so you can start from ease-in-out and adjust rather than guess at numbers.

Design Tools

Private by default

This tool runs entirely in your browser. Your data is never uploaded to a server.

How it works

What the curve controls

cubic-bezier(x1, y1, x2, y2) — from (0,0) to (1,1)

The horizontal axis is time and the vertical axis is progress. A curve that rises steeply at the start moves most of the distance early and coasts to a stop; one that stays flat then rises does the opposite. The straight diagonal is linear motion.

  • The named keywords are exact aliases: ease is cubic-bezier(0.25, 0.1, 0.25, 1), ease-in is (0.42, 0, 1, 1), ease-out is (0, 0, 0.58, 1), and ease-in-out is (0.42, 0, 0.58, 1).
  • Linear is cubic-bezier(0, 0, 1, 1), which is why it looks mechanical: the speed never changes.
  • A y value above 1 overshoots past the target; below 0 it backs up before starting. Both read as physical weight when used sparingly.
  • Easing shapes the motion but not its length. Duration is a separate property, and a slow curve cannot rescue an animation that runs too long.

For reference

The built-in easings as numbers

Keywordcubic-bezierFeels like
linear0, 0, 1, 1Constant speed, mechanical
ease0.25, 0.1, 0.25, 1The CSS default
ease-in0.42, 0, 1, 1Slow start, fast finish
ease-out0, 0, 0.58, 1Fast start, gentle landing
ease-in-out0.42, 0, 0.58, 1Slow at both ends
back-out0.34, 1.56, 0.64, 1Overshoots, then settles

Anything with a y above 1, like back-out, has no keyword — overshoot is only reachable through cubic-bezier().

How to use

4 clear steps.

  1. Pick a preset close to the motion you want, or start from ease.

  2. Drag either control point on the curve, or use the sliders for exact values.

  3. Watch the preview to judge the motion rather than the shape.

  4. Copy the timing function into your CSS.

Good to know

Frequently asked questions

What do the four numbers mean?
They are the x and y coordinates of two control points, P1 and P2. The curve always runs from (0,0) to (1,1): x is the fraction of the duration elapsed, y is the fraction of the change applied.
Can the values go above 1 or below 0?
The y values can, and that is what produces overshoot — the animation passes its target and settles back. The x values cannot: CSS rejects them, because an x outside 0–1 would mean time running backwards.
Which easing should I use?
Ease-out for things entering the screen, so they arrive quickly and settle gently. Ease-in for things leaving. Ease-in-out for movement between two on-screen positions. Linear only for continuous motion like a spinner.