cubic-bezier(0.25, 0.1, 0.25, 1)
Same as ease
Your curve cubic-bezier(0.25, 0.1, 0.25, 1)
Compare with linear
Presets (29)
.element {
transition: transform 1000ms cubic-bezier(0.25, 0.1, 0.25, 1);
}How to use
Shape the curve
Drag the pink and blue control points on the graph, type x1, y1, x2 and y2, click a preset, or paste an existing cubic-bezier() value and press Load.
Compare the motion
Press Play or turn on Loop. Pick Move, Scale, Rotate, Fade or Width, set the duration, and choose a second curve to run beside yours.
Copy the code
Pick Transition, Animation, CSS variable, Tailwind, JavaScript or Value only and press Copy. Copy share link keeps the curve in a URL.
Why Cubic Bezier Generator
- Drag two control points or type exact values, with keyboard nudging.
- Side by side playback against any keyword or Penner easing.
- 29 presets with curve thumbnails, and a paste-to-edit field.
- CSS, Tailwind and JavaScript output for transitions and animations.
CSS easing keywords as cubic-bezier values
Each keyword is shorthand for a fixed curve. Seeing them as numbers makes it easier to tweak one slightly instead of jumping to a different keyword.
| Keyword | cubic-bezier value | Feel |
|---|---|---|
| linear | 0, 0, 1, 1 | Constant speed, mechanical |
| ease | 0.25, 0.1, 0.25, 1 | Quick start, gentle finish; the CSS default |
| ease-in | 0.42, 0, 1, 1 | Slow start, abrupt stop |
| ease-out | 0, 0, 0.58, 1 | Fast start, soft stop |
| ease-in-out | 0.42, 0, 0.58, 1 | Slow at both ends |
Reading the curve
The horizontal axis is time and the vertical axis is progress. A steep part of the curve means fast movement, and a flat part means slow movement. Where the curve rises above the top of the square, the element moves past its end value; where it dips below the bottom, it moves backward first.
The dashed diagonal is linear motion. Compare your curve with it: a curve above the diagonal early on means the element gets ahead of linear timing and then slows down, which is why ease-out curves feel responsive.