Cubic Bezier Easing Generator
Build a CSS cubic-bezier() easing curve with four sliders and copy the ready-to-paste transition-timing-function declaration. Four named presets are included as starting points.
transition-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1);
How to use this tool
- 1
Click a preset (ease, ease-in, ease-out, or ease-in-out) to load its four control values, or skip this to start from the default ease curve.
- 2
Drag the a, b, c, and d sliders to adjust the two control points; each ranges from -1 to 2 in steps of 0.05 and the current value shows above the slider.
- 3
Read the generated transition-timing-function: cubic-bezier(a, b, c, d); line in the output box.
- 4
Copy that declaration by hand and drop it into your CSS transition or animation rule.
What does a CSS cubic-bezier() easing curve actually define?
An easing function maps animation progress (input time, 0 to 1) to output progress (0 to 1), controlling how a transition speeds up and slows down rather than moving at a constant rate. CSS cubic-bezier() describes this with a Bezier curve fixed at (0,0) and (1,1), shaped by two control points P1 = (a, b) and P2 = (c, d) — the exact four numbers these sliders set. A steeper section means faster motion there; a flatter section means slower. Per the CSS spec, the x coordinates (a and c) must stay within 0 to 1 because time cannot run backward, while the y coordinates (b and d) may exceed that range to produce anticipation or overshoot (bounce-like) effects. This tool lets all four sliders go from -1 to 2, so it is possible to dial in a and c values outside 0 to 1 that browsers will reject as invalid; keep a and c between 0 and 1 for output a browser will accept. The named presets (ease, ease-in, ease-out, ease-in-out) reproduce the same fixed values defined in the CSS spec.
Common use cases
Tuning a button hover or focus transition so it feels snappy on entry and gentle on exit instead of using the generic default ease.
Designing a card or modal that overshoots slightly on open by pushing the d (P2 y) value above 1 for a subtle bounce.
Matching a brand motion spec where designers handed you specific cubic-bezier control points to reproduce in CSS.
Replacing a linear or default easing on a loading spinner or progress bar with a custom acceleration profile.
Quickly grabbing the canonical values behind ease-in-out without memorizing 0.42, 0, 0.58, 1.
Prototyping menu slide-in and drawer animations by comparing how ease-in versus ease-out change the perceived weight of the motion.
Frequently asked questions
What is the difference between ease, ease-in, ease-out, and ease-in-out?▼
Why can I set values that browsers will not accept?▼
How do I use the output in my CSS?▼
Does this tool show a visual graph of the curve?▼
Can I create a bounce or overshoot effect?▼
Is my data uploaded anywhere?▼
Related tools
Color Converter (HEX/RGB/HSL)
Convert colors between HEX, RGB, HSL, OKLCH.
CSS Box Shadow Generator
Build CSS box-shadow visually.
CSS Gradient Generator
Build linear and radial CSS gradients.
Color Palette Generator
Generate harmonious color palettes from any base color.
CSS Border Radius Generator
Build complex CSS border-radius visually.
CSS Clamp Generator
Generate responsive CSS clamp() functions.