Calcoid

Cubic Bezier Easing Calculator

Evaluate any CSS cubic-bezier easing curve. Enter four control points to get the eased progress at any time, peak overshoot, and a timing table.

Cubic Bezier Easing Calculator

Must be 0 to 1.

Any value (can overshoot).

Must be 0 to 1.

Any value (can overshoot).

0 = start, 1 = end.

Optional, for timing.

2 to 101 samples.

Eased progress at t = 0.5

80.2%

Output progress value: 0.8024 at 500 ms elapsed

cubic-bezier(0.25, 0.1, 0.25, 1)

Peak overshoot

None

Max undershoot

None

Timing samples

Time tElapsed (ms)ProgressProgress %
0000%
0.11000.09489.48%
0.22000.295229.52%
0.33000.513351.33%
0.44000.682568.25%
0.55000.802480.24%
0.66000.885288.52%
0.77000.940894.08%
0.88000.975697.56%
0.99000.994399.43%
11,0001100%

Frequently Asked Questions about the Cubic Bezier Easing Calculator

What does the cubic bezier easing calculator compute?
It evaluates a CSS cubic-bezier(x1, y1, x2, y2) timing function. You enter the four control points and a time fraction t from 0 to 1, and it returns the eased output progress at that time, the peak overshoot, the maximum undershoot, and a table of progress values sampled across the whole animation. If you also enter a duration in milliseconds, each table row shows the elapsed time at that point.
How does it solve the curve?
A cubic-bezier curve is parametric, with fixed endpoints at (0, 0) and (1, 1) plus your two control points. The x axis is the animation time and the y axis is the progress. For a given time x, the calculator inverts the x component of the Bezier to find the curve parameter using Newton-Raphson with a bisection fallback, then reads the matching y value. This is the same approach browsers use to render CSS easing.
Why must x1 and x2 stay between 0 and 1, but y1 and y2 can be anything?
The CSS Easing specification requires the x coordinates of both control points to be in the range 0 to 1 so the time axis stays monotonic and the curve maps each instant to a single progress value. The y coordinates are unconstrained, which is why progress can dip below 0 or rise above 1. If you enter an x value outside 0 to 1, the calculator returns no result.
What is overshoot and undershoot?
Overshoot is how far the progress rises above 1 before settling, and undershoot is how far it dips below 0 at the start. Back and anticipate easings, such as ease-out-back, use this on purpose to create a springy recoil. The calculator scans the full curve and reports the peak overshoot and maximum undershoot so you can see whether your control points push past the 0 to 1 band.
Can I match the named CSS keywords like ease and ease-in-out?
Yes. The presets map the standard keywords to their control points: 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 corresponds to (0.333, 0.333, 0.667, 0.667), where progress equals time. Select a preset to load its points, then adjust them to fine-tune your own curve.
How do I use the output in CSS?
Copy the cubic-bezier(...) value shown in the result panel into your transition-timing-function or animation-timing-function property. For example, transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1). The timing table helps you confirm the motion feels right before you commit, since it shows exactly how much progress has happened at each fraction of the duration.

Related Calculators

More calculators in "Tech"

See all 98 calculators in "Tech"