Cubic bezier easing editor

Drag the curve, watch it race a linear square, and copy the easing as CSS, as a Tailwind arbitrary value or as a theme token.

A landscape behind the two easing lanes
Your curvecubic-bezier(0.4, 0, 0.2, 1)
linearlinear
transition.csscss
.panel {
  transition: transform 3000ms cubic-bezier(0.4, 0, 0.2, 1);
}
usage.tsxtsx
<div class="transition-transform duration-3000 ease-[cubic-bezier(0.4,0,0.2,1)]" />
theme.csscss
@theme {
  --ease-house: cubic-bezier(0.4, 0, 0.2, 1);
  --duration-house: 3000ms;
}

Questions

How do I read the curve?+

Time runs left to right, progress bottom to top. A steep start means it leaves quickly and settles slowly, which is what makes an exit feel decisive and an entrance feel calm.

Why is there a linear square below mine?+

Because a curve is judged against something. Linear is the reference every reader already has, and the difference between the two is exactly what your easing is buying.

What about overshoot?+

Pull a handle above the box and the value passes 1 before settling, which is how a spring reads. It is worth it on entrances and wrong on anything that has to line up with the pointer.

Related tools

The tools are free. So is most of the library.

1935 blocks and 989 pieces for shadcn/ui and Tailwind, built on the same tokens these tools write. Install one with a command and the code is yours.

No signup for the tools. MIT for free blocks, commercial licence for Pro.

Markdown version