Skip to main content
7BBusyBoss

CSS Cubic-Bezier Generator — Visual Easing Curve Editor

Drag control points to create custom CSS cubic-bezier easing curves. Preview animations and copy the value for transitions and animations.

No limitsZero data leaksSuper fast

Cubic Bezier Generator

Drag the two control points to craft a custom CSS easing curve. Copy the value straight into your transition or animation.

cubic-bezier(0.25, 0.1, 0.25, 1)
x1
0.25
y1
0.1
x2
0.25
y2
1

Presets

Live preview

Each element animates with cubic-bezier(0.25, 0.1, 0.25, 1).

You're on 7BusyBoss — 300+ free tools that run instantly in your browser. No signup, nothing uploaded.

Browse all Design Generators
About this tool

What a Cubic-Bezier Curve Actually Shows

A cubic-bezier easing function is a graph where the horizontal axis represents elapsed time (0 to 1) and the vertical axis represents animation progress (0 to 1). A straight diagonal line from bottom-left to top-right is linear — equal progress at every moment. When you bend the curve, you change when the motion happens, not how long it takes. The duration is always set separately in your CSS transition or animation property. Think of the curve as a speed profile: steep sections move fast, flat sections crawl, and curves that reverse direction create overshoot or anticipation effects.

Y Values Outside 0–1 Are Where the Magic Lives

The two X coordinates are strictly constrained to [0, 1] because time cannot run backwards. But Y values? Those are free to roam. This tool allows Y to range from −0.5 to 1.5. A Y value above 1 means the animation overshoots its target before settling back — that is what creates bounce and elastic effects. A Y value below 0 anticipates the motion, pulling back before launching forward. Compare cubic-bezier(0.34, 1.56, 0.64, 1) (easeOutBack, which overshoots to y=1.56) against a simple ease-out that stays within the unit square: the difference is visible and tangible. This unconstrained Y axis is the single most useful fact about cubic-bezier.

The Named Keywords Are Just Cubic-Beziers

CSS defines four keyword values as preset cubic-bezier functions:

  • ease: cubic-bezier(0.25, 0.1, 0.25, 1) — the default, easing in and out gently
  • ease-in: cubic-bezier(0.42, 0, 1, 1) — slow start, fast finish; use when objects leave the screen
  • ease-out: cubic-bezier(0, 0, 0.58, 1) — fast start, slow finish; use when objects arrive and settle
  • ease-in-out: cubic-bezier(0.42, 0, 0.58, 1) — symmetric acceleration and deceleration

The tool includes ten presets covering common patterns: linear, the four keywords, plus easeOutBack (elastic snap), bounceOut (springy landing), and expo variants for extreme acceleration. You can apply the copied value directly to any transition or animation — no polyfills needed. For the keyframes themselves, see the animation generator.

What This Tool Does Not Cover

Cubic-bezier cannot express a curve that reverses in time, so it cannot create motion that rewinds partway through. Spring physics, which most animation libraries use, is a different model entirely and is not expressible as a cubic-bezier. The CSS function steps() is a separate timing function for discrete jumps, not smooth curves. This generator focuses on the single-curve case: one smooth easing from start to finish.

How to use the CSS Cubic-Bezier Generator

Takes about a minute. No signup, no download, your data stays in your browser.

  1. 1
    Open the tool. Scroll up to the CSS Cubic-Bezier Generator above — it loads instantly in your browser, no install needed.
  2. 2
    Enter your values. The fields come pre-filled with realistic defaults so you can see how it works — replace them with your own numbers.
  3. 3
    Read the result. The output updates instantly. Copy or share it — nothing is uploaded to a server, everything stays on your device.

Frequently asked questions

Common questions about the CSS Cubic-Bezier Generator.

What is cubic-bezier in CSS?

Cubic-bezier is a CSS timing function that defines how fast an animation progresses over time. It takes four numbers representing two control points: cubic-bezier(x1, y1, x2, y2). The X values must be 0–1 because time runs forward, but Y values can exceed that range to create overshoot or anticipation effects.

How do I make a bounce or overshoot easing?

Set the Y coordinate above 1 to overshoot the target. For example, easeOutBack is cubic-bezier(0.34, 1.56, 0.64, 1) — the second control point y of 1.56 pulls the animation past 100% before settling back. This tool lets you drag to explore the range and see the preview update in real time.

What is the difference between ease-in and ease-out?

Ease-in (0.42, 0, 1, 1) starts slow and finishes fast, which suits objects leaving. Ease-out (0, 0, 0.58, 1) starts fast and finishes slow, which suits objects arriving. Use ease-out for modals or alerts entering, and ease-in for things dismissing or sliding away.

What values can cubic-bezier take?

X coordinates, which represent time, must be between 0 and 1. Y coordinates, which represent progress, have no hard limit in CSS, but this tool constrains them to -0.5 to 1.5 for practical easing. Negative Y creates anticipation and Y above 1 creates overshoot.

Community rating

Discussion (0)

No comments yet. Start the discussion.