Cubic Bezier Generator
Create and visualize cubic-bezier curves for CSS animations. Drag control points, preview the animation and copy the value. Includes presets (ease, ease-in, ease-out). Everything in your browser.
O que é?
cubic-bezier(x1, y1, x2, y2) define uma curva de aceleração para transitions e animations CSS. Os dois pontos de controle (P1 e P2) ajustam o ritmo da animação: valores baixos no Y inicial fazem o movimento começar lento; valores altos fazem começar rápido.
Os valores de Y podem ultrapassar [0, 1] para criar efeitos de overshoot (animação que ultrapassa o destino e volta) — útil para botões e elementos com personalidade. Tudo no navegador.
Tune the easing while watching it move
Default CSS easing tends to feel generic, and dialing in the four numbers of a cubic-bezier by hand is pure guesswork: tweak a decimal, reload, still not right. Here you drag the two control points directly on the graph, hit Play to watch a ball travel across at whatever duration you set, and copy the value already formatted for transition-timing-function and animation-timing-function.
On the graph, X is time and Y is animation progress. The generator enforces one rule for you: X1 and X2 stay clamped between 0 and 1, because outside that range the curve stops being a valid function of time and the browser throws the whole value away. Y1 and Y2, on the other hand, may go past those limits on purpose: that is how overshoot works, the effect of shooting past the target and settling back. The back preset uses cubic-bezier(0.68, -0.55, 0.27, 1.55) for exactly that reason.
Start from a preset and nudge gently: a 0.05 change is already noticeable. Test with your project's real duration, since a curve that feels great at 1500 ms can feel abrupt at 300 ms; the duration field accepts 200 to 5000 ms. Also keep in mind that overshoot only shows on properties that can exceed their final value, like transform: opacity gets clamped between 0 and 1. Everything runs in your browser; nothing is sent to a server.
Frequently asked questions
Why can't I drag the point past the sides of the graph?
Why not just use the built-in ease-in-out?
Does the copied value work for animations or only transitions?
Related Tools
CSS Loader Generator
Create pure-CSS spinners and loaders in 8 styles (ring, dots, pulse, bars, etc.). Adjust color, size and speed. No libs, no GIFs. Everything in your browser.
CSS Neumorphism Generator
Create Soft UI (neumorphism) effects with two complementary box-shadows. Adjust base color, distance, blur and type (raised, flat, pressed). Copy ready CSS. Everything in your browser.
CSS Grid Generator
Build CSS Grid layouts visually: define rows, columns, gaps and alignment. Live preview and ready-to-copy CSS. Everything in your browser.