Cubic-Bezier Easing Editor
Design CSS easing curves by dragging the control points, and watch elements animate with your curve in real time. Presets for ease, bounce, and overshoot, plus one-click copy of the cubic-bezier() value. Runs in your browser.
How to Use
- Drag the two round handles to bend the curve into the motion you want.
- Or type exact values into the four number boxes (the x values stay between 0 and 1; the y values can go past for overshoot).
- Watch the preview elements on the right animate live with your easing — change the duration to feel it at different speeds.
- Tap a preset for a known-good starting point like ease-in-out or a springy overshoot.
- Copy the cubic-bezier() value straight into your CSS transition or animation.
cubic-bezier(0.25, 0.1, 0.25, 1)
How an easing curve works
When something animates — a menu sliding open, a card scaling up — it does not have to move at a constant speed. The easing curve describes how its progress is distributed across the duration. Read the graph like this: the horizontal axis is time, from the start (left) to the end (right) of the animation; the vertical axis is progress, from not-started (bottom) to finished (top). A straight diagonal line is linear — equal progress in equal time, which feels mechanical. Bend the line and the motion gets a rhythm: a curve that is shallow then steep means the element starts slowly and rushes to finish (ease-in), which is how almost all natural motion behaves.
The shape is controlled by two handles, the control points. The first pulls the start of the curve; the second pulls the end. Their four numbers are the cubic-bezier(x1, y1, x2, y2) value you copy into CSS. Drag them here and the preview elements re-animate instantly, so you can feel the curve rather than guess at the numbers.
Overshoot, bounce, and anticipation
The progress axis is not limited to the 0–1 box. If you drag a control point’s y value above 1, the animation sails past its target and eases back — the springy “back” or “bounce” effect that makes an interface feel alive and physical. Drag a y below 0 and the element first pulls back the wrong way before launching forward, like a character winding up before a jump — animators call this anticipation. The time axis, though, always stays inside 0–1: an animation cannot run backwards in time, so the editor keeps the x values clamped. These small overshoots, used sparingly, are the difference between motion that feels designed and motion that feels default.
About this editor
This editor draws the easing curve as a live SVG you can drag, and previews it using the browser’s Web Animations API — so the motion you see is exactly what your CSS will produce. The five named keywords (linear, ease, ease-in, ease-out, ease-in-out) are included as presets, because each one is simply a fixed cubic-bezier curve; the value of a custom curve is everything in between and beyond them. Nothing is uploaded — it all runs on your device — and the output is a standard cubic-bezier() value that works in every modern browser’s transition-timing-function and animation-timing-function.
About the Cubic-Bezier Easing Editor
The Cubic-Bezier Easing Editor is a simple, free helper for web development and data tasks that runs entirely on your own device. Design CSS easing curves by dragging the control points, and watch elements animate with your curve in real time. Presets for ease, bounce, and overshoot, plus one-click copy of the cubic-bezier() value. Runs in your browser.
How it works
Pick your options and the tool makes the result right away. Do not like it? Make another one — you can do this as many times as you want. When it looks right, copy it into your own project. Everything is made on your device, so it is yours alone.
Want the deeper story? The Knowledge Base explains the ideas behind the tools in more detail.
Frequently Asked Questions
What is a cubic-bezier easing curve?
It is the shape that describes how an animated value changes over its duration. Time runs left to right (0 to 1) and progress runs bottom to top (0 to 1). A straight diagonal is linear — constant speed. Bending the curve makes the motion start slow and finish fast, or any other rhythm. cubic-bezier(x1, y1, x2, y2) sets the two control points that bend it.
Why can the y values go above 1 or below 0?
Because the progress is allowed to overshoot. A control-point y above 1 makes the value sail past its target and settle back — the classic "bounce" or "back" effect. A y below 0 makes it dip backwards before moving forward (anticipation). The x values, however, must stay within 0 and 1, because time cannot run backwards.
How do I use the result?
Copy the cubic-bezier() value and drop it into a CSS transition (transition-timing-function: cubic-bezier(…);) or a keyframe animation (animation-timing-function). It works anywhere CSS accepts a timing function, in every modern browser.
What is the difference between this and ease-in-out?
The named CSS keywords (ease, ease-in, ease-out, ease-in-out, linear) are just shorthands for specific cubic-bezier curves — they are presets in this editor. A custom curve lets you fine-tune the feel beyond those five fixed options, which is how polished interfaces get their distinctive motion.
How do I use the Cubic-Bezier Easing Editor?
Just pick your options. The answer shows up right away — there is no button to press. Change anything and it updates by itself.
Does it cost anything or need an account?
No. The tool is completely free, there is no account to create, and it keeps working offline after the page first loads.
Is anything I type uploaded?
No. The tool works entirely on your device, so the values you enter never leave your browser.
Common Use Cases
Make UI motion feel right
Dial in a curve that makes buttons, menus, and modals open with a satisfying ease instead of a robotic linear slide.
Add an overshoot or bounce
Push a control point above 1 to make an element spring slightly past its target — the secret behind playful, alive interfaces.
Match a design spec
Reproduce a curve from a design system by typing its exact four numbers and confirming the motion visually.
Learn how easing works
Drag the handles and watch the preview to build an intuition for how curve shape maps to felt motion.
Last updated: