BrowserTools
Advertisement
Home / Generators / Cubic Bezier Easing Generator

Cubic Bezier Easing Generator

Design CSS cubic-bezier easing curves with two draggable control points, presets, a live animation preview and copy-ready code, all in your browser.

Loading Cubic Bezier Easing Generator… If nothing happens, please enable JavaScript.

Easing is what separates animation that feels alive from animation that feels mechanical. In the real world nothing moves at a constant speed: objects accelerate as they start, decelerate as they stop, and sometimes overshoot before settling. CSS captures this with the timing function, and the most flexible timing function is cubic-bezier, which lets you describe an entire acceleration curve with just four numbers. Those numbers define the two control points of a Bezier curve whose horizontal axis is time and whose vertical axis is progress, and the shape of that curve dictates exactly how an element speeds up and slows down over the course of a transition or animation.

Frequently asked questions

Is anything uploaded when I create an easing curve?
No. The curve and the animation preview are computed entirely in your browser, and the only output is a short string of CSS. There is no backend, no account, and no tracking, and the tool works offline once loaded. Your curve exists only in the current browser tab until you copy the code.
What do the four numbers in cubic-bezier mean?
They are the coordinates of two control points: x1, y1, x2, y2. The x values are positions in time and must stay between 0 and 1, while the y values are positions in progress and can go beyond that range. Together they bend a Bezier curve that maps elapsed time to how far the animation has advanced.
Why can I drag the handles up past the top or below the bottom but not left or right of the box?
The CSS specification requires the x coordinate of each control point to be between 0 and 1, so the tool clamps horizontal dragging to that range. The y coordinate is unconstrained, which is intentional: y values above 1 or below 0 create overshoot and anticipation effects, where the element springs past its target or pulls back before moving.
What is the difference between ease-in, ease-out, and ease-in-out?
Ease-in starts slowly and accelerates, which suits elements leaving the screen. Ease-out starts fast and decelerates into place, which feels natural for elements entering and is the most common choice for UI. Ease-in-out does both, slow at each end and fast in the middle, which works well for elements that move from one resting position to another.
How do I create a bouncy or springy effect?
Drag a control point's y value above 1 or below 0 so the curve overshoots its endpoints. A second control point pulled past the top makes the element shoot beyond its target and settle back, giving a spring or bounce feel. The live preview is the best way to tune this, since small handle changes have a big effect on the motion.
Does the preview show the real motion?
Yes. The preview marker animates using the exact cubic-bezier value you have set, applied as a real CSS transition timing function. This means you are judging the same curve the browser will use in production, so what you feel in the preview is what your users will see in the actual interface.
Where do I use the generated value in my CSS?
Use it as the timing function in a transition or animation. For example, transition: transform 0.4s cubic-bezier(0.25, 0.1, 0.25, 1); applies your curve to a transform. The same value works in the animation-timing-function property and inside keyframe animations, anywhere CSS accepts a timing function.
Do custom cubic-bezier curves work in all browsers?
Yes. The cubic-bezier timing function has been supported without vendor prefixes in all modern browsers for many years, including Chrome, Firefox, Safari, and Edge. The generated value is standard CSS, so you can paste it directly into your transition or animation declarations.

About Cubic Bezier Easing Generator

The trouble with cubic-bezier is that the four numbers are almost impossible to picture in your head. A value like cubic-bezier(0.68, -0.55, 0.27, 1.55) means nothing until you see the curve it draws and the motion it produces. This generator makes that concrete. It shows the curve on an interactive grid with two draggable control points wired to pointer events, so you can pull the handles with a mouse or a finger and watch the curve reshape in real time. The horizontal position of each handle is constrained to the valid zero-to-one range required by the CSS specification, while the vertical position is free, which is what allows anticipation and overshoot effects where progress dips below zero or rises above one.

A row of presets gives you the named CSS keywords as starting points: linear for constant speed, ease for the gentle default, and ease-in, ease-out, and ease-in-out for the common acceleration patterns. From any preset you can drag the handles to fine-tune the feel. Crucially, the tool includes a live preview: click the track or the play button and a marker animates across it using your exact curve, so you judge the motion by how it actually moves rather than by the geometry of the line. The generated cubic-bezier value and a full CSS declaration update continuously and copy to your clipboard in one click.

The whole tool runs locally in your browser. There is nothing to upload, no account, and no tracking, and it keeps working offline once the page has loaded, because the entire job is computing a curve and producing a short string of CSS. The combination of a visible curve, draggable points, named presets, and a real motion preview turns the abstract four-number cubic-bezier syntax into something you can feel your way to, which is the fastest path to easing that looks right in your interface.

From car bodies to web animation: the long life of the Bezier curve

The mathematics behind every CSS easing curve was developed not for screens but for sheet metal. In the late 1950s and 1960s, the French car manufacturers Renault and Citroen needed a precise way to describe the smooth, flowing surfaces of car bodies so that they could be machined accurately. Pierre Bezier, an engineer at Renault, popularised and published the curves that now bear his name, while Paul de Casteljau, working in secret at Citroen, independently developed the same ideas and the elegant algorithm for evaluating them. Because de Casteljau's work was kept confidential, the curves became known as Bezier curves.

The key insight is that a complex curve can be defined by a small number of control points, where the curve passes through the endpoints and is pulled toward, but not through, the points in between. This made Bezier curves perfect for the emerging field of computer graphics. They became the foundation of vector drawing in PostScript and PDF, the pen tool in every illustration program, the outlines of the fonts you are reading right now, and the motion paths in animation software. A handful of control points can describe almost any smooth shape or movement, which is precisely the economy that engineers in the 1960s were after.

CSS adopted a cubic Bezier curve, one with two control points between fixed endpoints, as its timing function because it captures the full vocabulary of natural motion with just four numbers. The named keywords are not separate mechanisms but simply convenient labels for specific cubic-bezier values: ease is cubic-bezier(0.25, 0.1, 0.25, 1), and linear is cubic-bezier(0, 0, 1, 1). When you drag the handles in a tool like this one, you are manipulating the same control points an automotive engineer once used to shape a fender, now bending time and progress instead of metal to make an interface feel responsive and alive.

Advertisement
Advertisement
Advertisement