Cubic Bezier Generator

Visual editor for CSS cubic-bezier() easing curves. Drag the control handles, see the live animation, copy the CSS. Free, in-browser.

CSS keyword presets
CSS function
cubic-bezier(0.42, 0.00, 0.58, 1.00)
Drop into your CSS
transition-timing-function: cubic-bezier(0.42, 0.00, 0.58, 1.00);

Live preview (1.6s, alternate)

What this does

Visual editor for CSS cubic-bezier() timing functions. Drag the two purple/pink handles to shape the curve. The CSS expression updates live, and a circle animates with the current curve so you can feel how it actually moves before committing.

Reading a cubic-bezier curve

The X axis is time (0 = animation start, 1 = animation end). The Y axis is progress (0 = no movement, 1 = fully moved). Both axes are normalized 0–1.

A straight diagonal from corner to corner is linear — equal progress per equal time. The classic ease curves bow above the diagonal: at 50% time, you’re already past 50% progress (fast start, slow end), or below the diagonal (slow start, fast end), or both at different points.

Y values can go below 0 or above 1. That’s how you build “overshoot” (bounces past the target then settles back) and “anticipate” (pulls back before launching forward) effects.

What the four control points mean

cubic-bezier(p1x, p1y, p2x, p2y)

p1 is the first control point — it pulls the curve in the direction the animation should leave the start. The closer p1 is to (0, 0), the slower it leaves.

p2 is the second control point — it pulls the curve in the direction the animation should approach the end. The closer p2 is to (1, 1), the slower it lands.

X values are clamped to 0–1 in this editor (mathematically valid bezier curves require this for time monotonicity). Y values are unbounded.

CSS keyword equivalents

The four CSS keywords map to specific cubic-bezier values:

KeywordEquivalentWhat it feels like
linearcubic-bezier(0, 0, 1, 1)Robotic, no acceleration
easecubic-bezier(0.25, 0.1, 0.25, 1.0)Default. Subtle ease-out feel.
ease-incubic-bezier(0.42, 0, 1.0, 1.0)Slow start, full-speed finish
ease-outcubic-bezier(0, 0, 0.58, 1.0)Full-speed start, gentle finish
ease-in-outcubic-bezier(0.42, 0, 0.58, 1.0)Slow at both ends

When to use what

  • ease-out is the default for most UI motion. Things appear at full speed and decelerate. Feels natural — matches how physical objects come to rest.
  • ease-in is for things leaving the screen. Their start should be gentle, their exit fast.
  • ease-in-out for symmetric movements like a panel sliding open and closed.
  • Overshoot for playful UI — a card “lands” past its target then settles. Good for important success states. Avoid for routine transitions.
  • Linear for continuous motion — progress bars, infinite carousels, anything where deceleration would feel wrong.

Common mistakes

  • Too long a duration. A 1-second easing for a button hover is sluggish. UI motion lives in 150–300ms territory. Marketing animation sometimes goes longer (500–800ms). Anything over 1 second on routine UI feels broken.
  • Using ease-in where ease-out belongs. New content sliding in with ease-in accelerates as it appears — it feels off-balance because you don’t track its arrival. Use ease-out so it appears fast then settles.
  • Same curve everywhere. Reuse the same easing across a single component (panel-open and panel-close should share a curve), but vary across components — different motion personalities for different flows.

CSS shorthand

The curve goes in transition-timing-function, animation-timing-function, or as the third argument to the transition shorthand:

.btn { transition: opacity 200ms cubic-bezier(0.42, 0, 0.58, 1.0); }

In Web Animations API:

el.animate([{opacity:0},{opacity:1}], {duration:200, easing:'cubic-bezier(0.42,0,0.58,1)'});

Privacy

Runs entirely in your browser.

Explore More Free Tools

🔧

Aspect Ratio Calculator

Calculate width, height, or ratio. Solve any one from the other two. 16:9, 4:3, 21:9, 9:16, 1:1, custom. Free, runs in your browser.

🔧

BPM to Milliseconds Calculator

Convert BPM to delay times in milliseconds. Whole, half, quarter, 1/8, 1/16, 1/32 notes plus dotted and triplet variants. Free tempo-sync calculator for producers.

🔧

Chmod Calculator

Convert chmod permissions between octal (e.g. 755) and symbolic (rwxr-xr-x) form. Toggle read/write/execute checkboxes for owner, group, and other. Free, runs in your browser.

🔧

Color Contrast Checker

Check color contrast for WCAG AA and AAA compliance. Live preview, hex and rgb support, instant pass/fail across 5 levels. Free, in-browser.

🔧

Cron Expression Explainer

Paste a cron expression, get a plain-English explanation plus the next 5 run times. Handles macros (@daily, @hourly), ranges, and steps. Free, in-browser.

🔧

CSV to Markdown Table

Paste CSV (or TSV), get a clean GitHub-flavored Markdown table. Auto column alignment, header detection, custom delimiters. Free, in-browser.

🔧

Env to JSON Converter

Convert .env files to JSON instantly. Handles quoted values, comments, escape sequences, and type coercion. Free, runs in your browser, no signup.

🔧

HTML Entity Encoder & Decoder

Encode and decode HTML entities — minimal, named, numeric, or hex. Handles &, <, >, accented characters, em dash, smart quotes. Free, browser-based.

🔧

HTTP Status Code Lookup

Searchable reference for every HTTP status code. 1xx, 2xx, 3xx, 4xx, 5xx, plus Cloudflare 5xx codes. Free, instant lookup, runs in your browser.

🔧

JSON Diff

Compare two JSON values semantically. Shows added, removed, and changed keys with the exact path. Free, runs in your browser.

🔧

JSON to Go Struct Generator

Convert JSON to idiomatic Go structs with json tags, time.Time detection, omitempty support. Free, in-browser.

🔧

JSON to TypeScript Interface Generator

Paste JSON, get TypeScript interfaces. Handles nested objects, arrays, unions, optional fields. No signup, runs in your browser.

🔧

Lorem Ipsum Generator

Generate placeholder text. Classic Lorem Ipsum, hipster, corporate, and dev variants. Words, sentences, paragraphs, lists. Free, in-browser.

🔧

Markdown to HTML Converter

Convert Markdown to HTML with live preview. Headings, lists, code blocks, links, images, blockquotes. Free, in-browser.

🔧

Number Base Converter

Convert numbers between binary, octal, decimal, hex, and any base from 2 to 36. BigInt-safe for large values. Free, in-browser.

🔧

Slugify Text

Generate URL-safe slugs from any text. Handles accents, Unicode, stop words, custom separators, length limits. Free, in-browser.

🔧

Text Case Converter

Convert text to camelCase, snake_case, kebab-case, PascalCase, CONSTANT_CASE, Title Case, and 7 more. Free, instant, in-browser.

🔧

YAML Validator

Validate YAML syntax, find duplicate keys, indentation issues, tabs in indent, and trailing whitespace. JSON preview included.

🔧

Cron Expression Generator

Generate and validate cron expressions with a visual builder. See next execution times, human-readable descriptions, and common presets. Free online crontab generator for developers.

🔧

JWT Decoder

Decode and inspect JWT tokens instantly. View header, payload, and signature. Check expiration, issuer, and claims. Free online JWT decoder — no data sent to any server.

🔧

Regex Tester

Test regular expressions with real-time matching and highlighting. Supports JavaScript regex flags (g, i, m, s). See match groups, captures, and indices. Free online regex tester.

🔧

Unix Timestamp Converter

Convert Unix timestamps to human-readable dates and vice versa. Supports seconds and milliseconds. Shows current epoch time live. Free online tool for developers.

🔧

UUID Generator

Generate random UUIDs (v4), time-based UUIDs (v7), and ULIDs instantly. Bulk generate up to 100 at once. Free online UUID generator for developers — no signup required.

🔧

Base64 Encoder & Decoder

Encode text to Base64 or decode Base64 back to plain text instantly. Free online Base64 converter with file support and batch processing. No registration required.

🎨

Color Palette Generator

Generate beautiful color palettes instantly. Create complementary, analogous, triadic, and monochromatic color schemes for web design, branding, and creative projects.

📝

JSON Formatter & Validator

Format, validate, and beautify JSON data instantly with our free online JSON formatter. Supports minification, syntax highlighting, and error detection. No registration required.

🔧

JSON to YAML Converter

Convert JSON to YAML and YAML to JSON instantly with our free online converter. Supports validation, formatting, and syntax highlighting. No registration required.

🔑

Password Generator

Generate strong, secure passwords instantly with our free password generator. Customize length, character types, and complexity. No registration required, privacy-focused.

📊

Percentage Calculator

Calculate percentages, percentage increases/decreases, and compare values instantly. Free online percentage calculator with multiple calculation types and detailed results.

🔧

SEO Meta Tag Generator

Generate SEO-optimized meta tags instantly. Create title tags, meta descriptions, Open Graph tags, and Twitter Cards for better search engine visibility.

🔧

Subnet Calculator

Plan IPv4 subnets visually. Enter a CIDR block, split it, see network/broadcast/host counts. Free, runs in your browser.

🔧

Tools Sitemap

Complete list of all free developer tools available on Ataiva. Find password generators, JSON formatters, converters, and more utilities for developers.

📏

Unit Converter

Convert between various units such as length, weight, temperature, and more.

📄

Word Counter & Text Analyzer

Count words, characters, sentences, and paragraphs instantly. Analyze readability, text complexity, and writing style with our text analyzer.