0

Bounce-Style CSS Easing Curve

Design a custom CSS cubic-bezier() timing function by dragging two control points, preview it live against a linear reference, then copy the ready value.

Drag the orange handle (P1) and the red handle (P2) to reshape the curve — arrow keys work too. X stays clamped between 0 and 1 as CSS requires; drag a handle above or below the box to send y past that range for overshoot and bounce effects.

Your curve

Linear (for comparison)

Processing... 0%

Result

This page opens the generator with x1=0.68, y1=-0.55, x2=0.265, y2=1.55 already loaded — an overshoot curve some easing libraries label easeOutBack. The negative y1 and the y2 above 1 are exactly why the animation preview below pulls back past its start and past its end before settling; drag either handle or edit the numbers to make the effect stronger or gentler.

Being honest about what this is: a single cubic-bezier() curve has only two control points, so it can approximate one overshoot-and-settle motion, not a genuine multi-bounce physical bounce with several diminishing hops. For a literal ball-bounce effect you'd need multiple keyframes or steps() segments chained together — this curve is the closest a plain transition-timing-function can get in one line.

That single overshoot is still exactly what most bouncy UI wants: a button that pops slightly past its resting size, a modal that overshoots before settling, a card that springs into place. Copy the value as-is for that snappy feel, or soften y1 toward 0 and y2 toward 1 to dial the overshoot back.