Back
CB

Cubic Bezier Easing Playground

Privacy
CSS Animation & Transition Lab

Interactive Cubic Bezier Easing Function Playground

Visualize, drag, and fine-tune CSS transition-timing-function curves with real-time motion comparators, anticipation wind-ups, and custom overshoot springs.

2D Curve CanvasInteractive
-0.5-0.2500.250.50.7511.251.500.250.50.751P1: 0.25, 0.1P2: 0.25, 1Time Progression (0 → 1)Output Value / Progress
Drag P1 and P2 handles freelyS-Curve (Ease In Out)
Coordinate Fine-Tuning
0.00 - 1.00
Control Point 1 (P1)
[0.25, 0.1]
X1 (Time, 0 to 1)
Y1 (Value, -2.0 to 3.0)
Control Point 2 (P2)
[0.25, 1]
X2 (Time, 0 to 1)
Y2 (Value, -2.0 to 3.0)
Motion Physics Diagnostics
Start Velocity0.40x
End Velocity0.00x
Max OvershootNone
Wind-upNone
Real-Time Motion Comparators

Live side-by-side comparison with standard browser curves running at native 60/120 FPS.

Duration:1.2s
Your Custom Curve
cubic-bezier(0.25, 0.1, 0.25, 1)
▶
CSS ease
cubic-bezier(0.25, 0.1, 0.25, 1)
▶
CSS linear
cubic-bezier(0, 0, 1, 1)
▶
CSS ease-in-out
cubic-bezier(0.42, 0, 0.58, 1)
▶
Curated Presets Library
Ease (Default)
CSS Native

Standard web default: moderate start, brisk acceleration, and gentle decelerated finish.

[0.25, 0.1, 0.25, 1]
Linear
Uniform

Uniform, steady motion with zero acceleration. Ideal for continuous spins or color tickers.

[0, 0, 1, 1]
Ease In

Starts slowly and accelerates toward the climax. Suitable for exiting or collapsing elements.

[0.42, 0, 1, 1]
Ease Out

Begins at maximum velocity and smoothly brakes. Perfect for incoming banners and toast alerts.

[0, 0, 0.58, 1]
Ease In Out

Symmetric ramp: slow start, rapid transit in the middle, and gradual settlement at target.

[0.42, 0, 0.58, 1]
Back Out (Snappy Pop)
Popular

Overshoots the target by +27.5% before snapping back. Gives UI cards tactile springiness.

[0.175, 0.885, 0.32, 1.275]
Back In (Wind Up)

Pulls backwards like drawing a bowstring before launching forward at high speed.

[0.6, -0.28, 0.735, 0.045]
Anticipation & Overshoot
Expressive

Classic animation curve: deep negative wind-up coupled with massive overshoot bounce.

[0.68, -0.55, 0.265, 1.55]
Rubber Band Spring

Rapidly shoots +56% past end position then quickly contracts back like elastic rubber.

[0.34, 1.56, 0.64, 1]
Soft Rebound

Subtle micro-overshoot (+12%) designed for clean modern button interactions and modals.

[0.25, 0.95, 0.35, 1.12]
Material 3 Emphasized
M3 Spec

Google Material Design 3 emphasized transition: brisk start with elongated soft landing.

[0.2, 0, 0, 1]
Material Decelerate

Entering navigation sheets and dialogue backdrops that arrive rapidly and settle.

[0, 0, 0, 1]
Material Accelerate

Exiting items moving out of viewport with steady build-up and swift departure.

[0.3, 0, 1, 1]
Apple iOS Snappy
iOS

iOS style dynamic spring feedback mimicking tactile Haptic touch and sheet expansion.

[0.15, 0.85, 0.35, 1.2]
Ease In Quad

Quadratic easing curve: gradual natural growth resembling physical gravity drop.

[0.55, 0.085, 0.68, 0.53]
Ease Out Quad

Quadratic deceleration: quick start with gentle, natural slowdown without rebound.

[0.25, 0.46, 0.45, 0.94]
Ease In Out Quad

Balanced quadratic ease: comfortable acceleration and deceleration profile.

[0.455, 0.03, 0.515, 0.955]
Ease Out Expo

Near-instant leap into final position with extended settling glide. Very snappy.

[0.19, 1, 0.22, 1]
Ease In Expo

Holds near starting position until dramatic burst of movement near completion.

[0.95, 0.05, 0.795, 0.035]

Production-Ready Code Generator

Export curve directly into CSS, Tailwind, Framer Motion, WAAPI, SwiftUI, or Compose

/* CSS transition-timing-function */
transition-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1);
Understanding Cubic Bézier & Easing Dynamics

The Four Control Points

A CSS cubic-bezier is anchored between fixed endpoints P0(0, 0) and P3(1, 1). You define P1(x1, y1) and P2(x2, y2) to mold the rate of acceleration throughout the transition timeline.

Overshoot & Anticipation (Y > 1 or Y < 0)

While X represents normalized time and must strictly reside in [0, 1], Y values can extend beyond! Values Y > 1.0 create bouncy spring overshoots, while Y < 0.0 generate Disney-style anticipatory wind-ups.

GPU Acceleration & 60/120 FPS

Native CSS cubic-bezier curves run directly on the browser compositor thread when applied to transform and opacity, ensuring buttery-smooth 120Hz refresh rates without JavaScript garbage collection hiccups.