All designer tools
Easing Studio
cubic-bezier visual editor
ease
Drag the two dots to reshape the curve. Y can overshoot [0,1] for bounce/anticipation.
Live preview
translateX
scale
opacity
cssCSS
.animated {
transition: transform 1.5s cubic-bezier(0.250, 0.100, 0.250, 1.000);
/* or: animation-timing-function: cubic-bezier(0.250, 0.100, 0.250, 1.000); */
}htmlTailwind classes
transition-transform duration-[1500ms] ease-[cubic-bezier(0.250,_0.100,_0.250,_1.000)]csslinear() easing
.animated {
/* linear() also expresses curves cubic-bezier() can't (bounce, multi-segment); browsers without it ignore the line and fall back safely */
transition-timing-function: linear(0, 0.046, 0.137, 0.267, 0.409, 0.537, 0.645, 0.733, 0.802, 0.858, 0.901, 0.935, 0.96, 0.979, 0.991, 0.998, 1);
}Now use it on something
Every effect, block, page and template in the catalog is styled against tokens shaped exactly like these — so they take your values rather than fighting them.
npx shadcn@latest add https://hoverlab.dev/r/hoverlab.json
x10.250
y10.100
x20.250
y21.000
Duration1.50s
How long the demo above takes. It changes the preview only — the curve you copy is independent of duration.
Keep this curve. This browser remembers what you last had open. A free account remembers the ones you name, on every machine you use.
- Keyframes EditorAuthor a multi-stop animation on a timeline instead of hand-typing percentages. Transform, opacity and blur per stop, playback controls, and the prefers-reduced-motion guard written for you — with the stricter guard when the animation loops.
- Section DividerWaves, tilts, notches and arcs for the seam between two full-width bands, as scalable SVG. Emits currentColor so one snippet works in both themes, with the baseline gap and the antialiased hairline already handled.
- Motion PresetsEnter, exit and attention animations, each shipping with its prefers-reduced-motion guard already written — and each one opening in the keyframes editor when the preset is only nearly right. Preview what a reduced-motion visitor actually sees.