CSS Easing Function Editor
Visually create and edit cubic-bezier() easing functions with draggable control points and real-time animation preview.
About This Tool
The CSS Easing Function Editor is a free, browser-based visual tool
for designing cubic-bezier() easing curves used in CSS transitions
and animations. Instead of guessing control point values, you can
drag two handles on an interactive graph to shape your curve
precisely and see the resulting motion in real time.
CSS transitions and animations accept a timing-function that
controls how the intermediate values of a property change over time.
The cubic-bezier(x1, y1, x2, y2) function defines a curve
between two fixed endpoints — (0, 0) representing the start of the
animation and (1, 1) representing its end. The two control points
(x1, y1) and (x2, y2) determine the shape of the curve and
therefore the "feel" of the animation: whether it starts slowly and
accelerates, overshoots the target and bounces back, or transitions
at a constant speed.
This editor comes with over 20 built-in presets grouped by category
— standard CSS keywords like ease, ease-in, and
ease-in-out; easing families such as Quadratic, Cubic, Quartic,
and Exponential; overshoot curves (Back); and Material Design
motion curves. Selecting a preset instantly loads its values and
displays the curve.
The comparison mode lets you overlay a second easing curve
(shown in red) on the same graph so you can visually compare how
two different timing functions behave. Both curves animate
simultaneously in the preview bar below the graph. This is
especially useful when deciding between subtle variations — for
example comparing ease-in-out against the Material Standard
curve.
All processing happens entirely in your browser — no data is
sent to any server. The generated CSS properties include
transition-timing-function, animation-timing-function, and a
full transition shorthand with the configured duration. You can
pair this tool with the CSS Animation Generator to build
complete keyframe animations, or use the Color Converter when fine-tuning
the colors in your animated elements. For layout-related transitions, the
CSS Layout Generator can help structure
the elements you intend to animate.
How to Use
- Drag the control points on the graph — the blue point is P1 (x1, y1) and the green point is P2 (x2, y2). The curve updates in real time.
- Alternatively, type exact values into the x1, y1, x2, y2 input fields below the graph.
- Browse the Presets panel on the right and click any preset to load its values instantly.
- Adjust the Duration slider to set the animation length from 100 ms to 3000 ms.
- Click Play to see the easing applied to a moving box in the preview area. Click again to stop.
- Enable Compare mode to overlay a second easing curve (red) and animate both side by side.
- Click the Copy button next to any output line, or press Ctrl+Shift+C to copy the
cubic-bezier()value to your clipboard.
Popular CSS Easing Examples
FAQ
What is a cubic-bezier easing function?
A cubic-bezier easing function defines how a CSS transition or animation progresses over time. It is specified as cubic-bezier(x1, y1, x2, y2), where the two control points shape the acceleration curve between the start (0, 0) and end (1, 1). For example, ease-in starts slowly and accelerates, while ease-out starts fast and decelerates.
What do the x and y values represent?
The x values represent time (0 = start, 1 = end) and must be between 0 and 1. The y values represent progress (0 = initial state, 1 = final state) and can exceed the 0–1 range to create overshoot or bounce effects. For example, a y value of 1.2 means the animation momentarily goes past its target before settling.
How do I create a bounce or overshoot effect?
Set one or both y values outside the 0–1 range. For an overshoot at the end, try cubic-bezier(0.175, 0.885, 0.32, 1.275) — the y2 value of 1.275 pushes the animation past its endpoint before snapping back. For an anticipation effect at the start, use a negative y1 value like cubic-bezier(0.6, -0.28, 0.735, 0.045).
What is comparison mode?
Comparison mode overlays a second easing curve (shown in red) on the same graph. Both curves animate simultaneously in the preview area, letting you see how two different timing functions behave side by side. Use this to fine-tune your easing by comparing it against a known reference like ease-in-out or a Material Design curve.
Can I use these values in JavaScript animations?
Yes. The cubic-bezier values work with the Web Animations API via the easing property (e.g., element.animate([...], { easing: 'cubic-bezier(0.25, 0.1, 0.25, 1)' })). They also work with animation libraries like GSAP, Framer Motion, and anime.js that accept CSS easing strings.
Is my data safe?
Yes. All processing runs entirely in your browser using the HTML Canvas API and JavaScript. No data is sent to any server. There are no network requests, no logging, and no third-party services involved.
What are the Material Design easing curves?
Material Design defines three standard easing curves: Standard (0.4, 0, 0.2, 1) for elements moving within view, Decelerate (0, 0, 0.2, 1) for elements entering the screen, and Accelerate (0.4, 0, 1, 1) for elements leaving the screen. These curves create natural-feeling motion consistent with Material Design guidelines.
Related Tools
CSS Animation Generator
Build CSS keyframe animations visually with timeline editor, easing curves, and live preview.
CSS Layout Generator
Visually build Flexbox and CSS Grid layouts with live preview and generated CSS code.
Flexbox Playground
Experiment with all CSS Flexbox properties visually. Configure container and item settings with live preview and generated CSS code.
Color Converter
Convert colors between HEX, RGB, HSL formats with contrast checker and palette generator.
Box Shadow Generator
Design CSS box shadows visually with sliders for offset, blur, spread, and color. Multi-layer support.
CSS Gradient Generator
Create linear, radial, and conic CSS gradients visually with color stops, angle control, and live preview.
CSS Transition Generator
Generate CSS transition properties visually with property, duration, timing function, and delay controls. Live preview and presets.
CSS Transform Playground
Experiment with CSS transform functions visually. Build translate, rotate, scale, skew, and 3D transforms with live preview.
SVG Path Editor
Visually edit SVG path d attributes with draggable control points, command palette, bezier curve handles, and real-time preview.
CSS Selector Reference
Complete interactive CSS selector reference with specificity calculator, live preview, searchable categories, and browser support for every selector.