Cubic Bezier Generator
BetaDrag two control points to shape a CSS easing curve, watch it replay, and copy the cubic-bezier() value. Overshoot curves are supported.
- Free, no sign-up
- Updated
- Reviewed by Olgun Ozoktas
Drag either handle. The vertical axis may go past 0 and 1, which is how overshoot and anticipation are made.
First control point
Second control point
How to build a CSS easing curve
-
Start from a preset
The four CSS keywords are exact presets here. Back out and Anticipate are overshoot curves that no keyword can express. -
Drag the handles
The first handle controls how the motion leaves the start, the second how it arrives at the end. Pulling a handle above the top line makes the value overshoot and settle back. -
Watch the replay
The dot runs the curve you built. Replay restarts it so you can compare two candidates without waiting for the loop. -
Copy the value
Copy the whole declaration, or just the cubic-bezier() function to drop into an existing transition or animation shorthand.
Common Use Cases
Menus and drawers
Button and card hovers
Playful overshoot
Matching a design spec
Why use a cubic bezier editor?
A CSS easing function is a cubic bezier curve from (0,0) to (1,1). The horizontal axis is elapsed time and the vertical axis is how far the animation has progressed, so the shape of the curve is the feel of the motion. The two numbers pairs in cubic-bezier() are the two control points that bend it.
The four built-in keywords are just named points on that space, and they cannot express everything. A control point above 1 produces overshoot - the value passes its target and settles - which is how a spring-like motion is written without a physics library. A control point below 0 produces anticipation, where the element pulls back before it moves. Both are supported here and both are impossible with a keyword.
The preview matters as much as the curve. Two curves that look similar on the grid can feel very different at 200ms, so the dot replays the real timing beside the shape you are editing. Everything runs in your browser. For the animation itself, the CSS Animation Generator builds the keyframes this curve drives.
How it compares
The well-known cubic-bezier editors do this job well and have for years. This one keeps the same model - drag two handles, read four numbers - and sits beside the rest of the FindUtils CSS generators, so a shadow, a gradient and an easing curve come from the same place with the same copy behaviour.
It is deliberately limited to one curve. It does not chain keyframes, generate a full animation, or export to a motion library. The CSS Animation Generator is the page for the animation around it.
Easing Tips
- The horizontal axis is time and stays between 0 and 1. The vertical axis is progress and may leave that range - that is exactly what produces overshoot.
- ease-out suits things entering the screen and ease-in suits things leaving. Using ease-in on an entrance is the most common reason motion feels slow.
- Keep UI transitions between 150ms and 300ms. A perfect curve cannot rescue a duration that is too long.
- An overshoot curve on an element that hard-clips at its container edge will look broken. Give it room or keep the curve inside 0 to 1.
- Your curve stays in the browser and nothing is uploaded to FindUtils. The page itself is not request-free: like the rest of the site it loads advertising and analytics scripts.