EN
My tools

CSS Cubic Bezier Generator

Build cubic-bezier() easing curves for CSS transitions and animations, with ease, easeOutBack and 30 presets, a curve plot, animated preview and progress table.

Used with the Custom preset. x values must stay between 0 and 1; y values may overshoot.
My tools →
Advertisement

An easing function controls how an animation speeds up and slows down. In CSS (and in the Web Animations API, and in many game engines) it is written as cubic-bezier(x1, y1, x2, y2): a curve from (0, 0) to (1, 1) whose two handles shape the motion. This generator gives you the CSS keywords, the popular easings.net curves (easeOutCubic, easeInOutQuart, easeOutBack…) or your own handles, plots the curve, animates a ball with it and lists the progress at every 10% of the duration.

How to use this tool

  1. Pick a preset, or choose Custom and type x1, y1, x2, y2.
  2. Set the duration and the property you animate.
  3. Watch the ball in the preview and read the progress table.
  4. Copy the transition, animation or JavaScript snippet.

Formula

x(u) = 3(1−u)²u·x1 + 3(1−u)u²·x2 + u³ · y(u) = 3(1−u)²u·y1 + 3(1−u)u²·y2 + u³

For a time fraction t, the generator solves x(u) = t for the curve parameter u (Newton–Raphson with a bisection fallback) and reports y(u) as the progress. x1 and x2 must lie between 0 and 1; y values outside 0–1 overshoot.

Example

The keyword ease is cubic-bezier(0.25, 0.1, 0.25, 1): halfway through the duration the element has already covered 80.24% of the distance, which is why ease feels fast then gentle. ease-in (0.42, 0, 1, 1) has done only 31.54% by then. easeOutBack overshoots: at half time it is at 108.74% before settling back.

Frequently asked questions

Which easing should I use for UI?

Elements entering the screen usually use ease-out (fast start, gentle stop), elements leaving use ease-in, and elements moving on screen use ease-in-out. Keep UI transitions short — about 150–300 ms.

Why can x not go below 0 or above 1?

x is time. A curve whose x went backwards would give two progress values for the same moment, so CSS rejects such values. y is progress and may overshoot for bounce-like effects.

Can I make a bounce or elastic easing?

Not with one cubic-bezier — it can overshoot once but cannot oscillate. Use several keyframes, or the CSS linear() function with many points in browsers that support it.

Sources

Last updated:

Cite or embed this tool
APA

kakaoCalc. (2026, November 8). CSS Cubic Bezier Generator. https://kakao.mobile/tools/easing-function-generator/

MLA

“CSS Cubic Bezier Generator.” kakaoCalc, 8 Nov. 2026, kakao.mobile/tools/easing-function-generator/.

Paste this code into your page. The widget runs in your visitors' browsers, shows no ads and keeps a link back to this page. Embedding terms

Advertisement