Color Palette Generator
Generate beautiful color palettes from base colors or images. Supports 6 harmony types, image color extraction, and multiple export formats
A free, browser-based cubic-bezier() editor that lets you drag two control points, preview the easing live, and copy the CSS timing-function value in one click.
The Cubic Bezier Generator is a free, browser-based editor for building custom cubic-bezier() easing curves for CSS transitions and animations. You drag two control-point handles on the curve, watch a demo element move with that exact easing, and copy the ready-to-use cubic-bezier(x1, y1, x2, y2) value straight into your transition-timing-function or animation-timing-function.
Easing is what separates motion that feels mechanical from motion that feels natural. A number like cubic-bezier(0.68, -0.55, 0.27, 1.55) means nothing on its own, but drawing the curve and playing it back turns that abstraction into something you can actually feel and tune.
A cubic-bezier easing curve describes how a value changes over the course of an animation — slow at first, fast in the middle, overshooting at the end, and so on. In CSS, the cubic-bezier() timing function is defined by four numbers: the x and y coordinates of two control points, written as cubic-bezier(x1, y1, x2, y2). The curve always starts at (0,0) and ends at (1,1); the two control points bend the path between them.
The x axis represents time (progress from 0% to 100%) and is clamped between 0 and 1. The y axis represents the animated value, and it can go below 0 or above 1 — that is exactly how you create springy overshoot and anticipation effects, where an element pulls back slightly before moving or bounces past its target and settles.
cubic-bezier() value updating beneath the graph as you drag.transition-timing-function / animation-timing-function declaration.CSS ships with keywords like ease, ease-in, ease-out, and linear, and each one is really just a preset cubic-bezier under the hood — ease, for example, is cubic-bezier(0.25, 0.1, 0.25, 1). For most interface transitions those keywords are plenty. Reach for a custom curve when you want character: a subtle overshoot on a modal that pops in, a sharp deceleration on a menu that slides out, or a bounce that makes a button feel physical. A custom bezier is also the only way to get an easing that eases in and out at different rates.
An easing curve is the timing layer that sits on top of everything else you build. Once your page structure is handled with the CSS Grid Generator and your rows and toolbars are aligned using the CSS Flexbox Generator, the curve you design here controls how those pieces move. Drop the copied value into a keyframe animation from the CSS Animation Generator to give loaders and entrance effects the right feel, or paste it into the hover transition of an element made with the HTML Button Generator so it presses and releases with a natural spring.
It lets you design a custom CSS easing curve by dragging two control points, previews the motion on live demo elements, and gives you the exact cubic-bezier(x1, y1, x2, y2) value to copy into a transition or animation timing function.
They are the coordinates of two control points: x1, y1 for the first and x2, y2 for the second. The x values are time (clamped 0 to 1) and the y values are the animated amount, which can go below 0 or above 1 to create overshoot.
Yes. Set a control point's y value below 0 or above 1 — for example cubic-bezier(0.34, 1.56, 0.64, 1) — and the animated value shoots past its target and settles back, which reads as a spring or bounce.
The keywords are shorthands for specific curves. ease equals cubic-bezier(0.25, 0.1, 0.25, 1), linear equals cubic-bezier(0, 0, 1, 1). Writing your own bezier just lets you go beyond those presets.
Yes. The Cubic Bezier Generator is completely free and runs entirely in your browser. Nothing you draw or copy is uploaded or stored on a server.