CSS Cubic-Bezier Generator
Edit the four control points of a CSS cubic-bezier easing curve, drag the handles or type the values, preview the curve, and copy the cubic-bezier() function.
CSS Cubic-Bezier Generator — Shape a custom CSS easing curve by adjusting two control points — drag the handles right on the preview or type x1, y1, x2 and y2 directly — and watch the bezier curve redraw instantly while the matching cubic-bezier() value is generated for you. Everything is computed locally in your browser, so nothing you enter is ever uploaded. Copy the result and drop it into your transition-timing-function or animation-timing-function.
What is CSS Cubic-Bezier Generator?
CSS Cubic-Bezier Generator is a free visual editor for the cubic-bezier() timing function used by CSS transitions and animations, built for front-end developers and motion designers. Pick a preset like ease, linear, ease-in, ease-out or ease-in-out, or fine-tune the two control points yourself: the x values are clamped to the legal 0–1 range while the y values can go above 1 or below 0 to create overshoot and anticipation. The preview plots the curve on a unit square so you can read acceleration and deceleration at a glance, and the exact cubic-bezier(x1, y1, x2, y2) declaration is produced for you to copy. Use it whenever a built-in keyword feels too generic and you want a snappier, springier or more deliberate motion.
How to use CSS Cubic-Bezier Generator
- Open Settings and choose a starting preset — ease, linear, ease-in, ease-out or ease-in-out — to seed the control points.
- Drag the two round handles on the curve preview to reshape the easing, or type exact values into the x1, y1, x2 and y2 fields.
- Keep x1 and x2 between 0 and 1; push y1 or y2 above 1 or below 0 to add overshoot or anticipation to the motion.
- Read the curve against the dashed linear baseline to judge how the easing accelerates and decelerates.
- Copy the generated cubic-bezier() value and paste it into your transition-timing-function or animation-timing-function.
Examples
Standard ease preset
Input
x1 0.25, y1 0.1, x2 0.25, y2 1
Output
cubic-bezier(0.25, 0.1, 0.25, 1)
Material-style ease-out
Input
x1 0, y1 0, x2 0.58, y2 1
Output
cubic-bezier(0, 0, 0.58, 1)
Springy overshoot (y past 1)
Input
x1 0.34, y1 1.56, x2 0.64, y2 1
Output
cubic-bezier(0.34, 1.56, 0.64, 1)
Frequently asked questions
- What do the four cubic-bezier numbers mean?
- They are the coordinates of the two control points: x1, y1 for the first point and x2, y2 for the second. The curve always starts at (0,0) and ends at (1,1); the control points bend it in between, which controls how the animated property speeds up and slows down over time.
- Why can't I set x1 or x2 above 1?
- The CSS spec requires the x (time) coordinates of both control points to stay within 0 and 1, so the timing function stays a valid mapping from progress to output. This tool clamps the x fields and the drag handles to that range automatically. The y values, however, may exceed 1 or go below 0 to create overshoot or anticipation.
- How do I make a bouncy or springy easing?
- Push one of the y values above 1 (for overshoot at the end) or below 0 (for anticipation at the start). For example cubic-bezier(0.34, 1.56, 0.64, 1) overshoots before settling, giving a spring-like feel without any JavaScript.
- Where do I use the generated value?
- Paste it as the value of transition-timing-function or animation-timing-function — for example transition: transform 0.3s cubic-bezier(0.25, 0.1, 0.25, 1). It replaces keywords like ease or ease-in-out with your custom curve.
- Is my data sent to a server?
- No. The whole editor runs in your browser with JavaScript — the control points and the curve are computed locally and never uploaded, so it works privately and even offline once the page has loaded.
Related tools
Code to Image
Turn a code snippet into a polished, syntax-highlighted PNG card in your browser, with a theme, gradient or transparent background, and padding — no upload.
Color Contrast Checker
Check the WCAG contrast ratio between a foreground and background HEX color and see whether it passes AA and AAA for both normal and large text.
Color Mixer
Blend two HEX colors at a chosen ratio in RGB or Lab color space and read the resulting mid color back as a swatch and copyable HEX value.
Color Shades Generator
Turn one base HEX color into a Tailwind-style 50-950 shade scale, mixing toward white and black, each step with a swatch and copyable HEX.