b2KIT

Easing Curve Editor

Design custom cubic-bezier easing curves with comparison previews against standard easings.

Tested tool guide Tested browser tools Checked August 16, 2026

What Easing Curve Editor does, with a checked example

Easing Curve Editor defines how animation progress changes over normalized time using the two control points of a cubic Bezier curve. It presents the custom curve alongside standard easing choices so differences in acceleration, deceleration, and overshoot can be judged visually. The graph is a timing map, not a motion path: its horizontal axis represents elapsed-time progress, while its vertical axis represents output progress. Changing the curve does not change the animation's duration or the geometric route followed by an element.

Worked example

A concrete input and expected output from the current implementation.

Input

x1 = 0.42, y1 = 0, x2 = 1, y2 = 1

Expected output

cubic-bezier(0.42, 0, 1, 1), which matches the CSS ease-in keyword

These values place the two variable control points at (0.42, 0) and (1, 1). CSS defines ease-in as this exact cubic-bezier function, so its comparison curve should coincide with the custom curve.

How the result is produced

1

Four control values

A CSS cubic Bezier easing has fixed endpoints at (0, 0) and (1, 1). The editor changes the intermediate points (x1, y1) and (x2, y2), then expresses them as cubic-bezier(x1, y1, x2, y2). For a valid CSS easing function, both x coordinates must remain between 0 and 1 inclusive; the y coordinates may extend outside that interval.

2

Timing comparison

For each elapsed-time position on the horizontal axis, the curve determines a corresponding progress value on the vertical axis. A steep section advances the animated value quickly, while a shallow section advances it slowly. Comparing the custom trace with a standard easing reveals differences in pacing even when both curves begin at zero progress and finish at full progress.

Good uses

  • Tune a transition that should leave slowly and accelerate toward its final state.
  • Create an overshooting timing curve for a scale or position animation.
  • Compare a proposed cubic-bezier value with a standard CSS easing before using it in a design system.

Limits and checks

  • The preview represents normalized progress and does not show the effect of a particular duration, frame rate, or dropped frames.
  • Control-point x values outside 0 through 1 do not form a valid CSS cubic-bezier easing function.
  • A curve that looks suitable in isolation can feel different when applied to another property, travel distance, or animation duration.

Common questions

Can I use the resulting value directly in CSS?

Yes, provided both control-point x values are within the valid 0 to 1 range. The cubic-bezier(...) value can be used where CSS accepts an easing function, including transition-timing-function and animation-timing-function. It controls pacing only; duration, delay, animated properties, and keyframes must still be defined separately.

Does a curve above 1 or below 0 make the animation longer?

No. Y values outside the usual 0 to 1 progress range can produce undershoot or overshoot, but they do not alter elapsed duration. Whether that excursion is visibly meaningful depends on the animated property's interpolation and surrounding styles. The animation still reaches the curve's fixed endpoint at normalized time 1.

References and verification

The example and behavioral notes were checked against the browser implementation. Standards and primary references below define the relevant format, formula, or platform behavior.

Related Tools