Tools

CSS Animation Timing Functions

Reference for CSS easing functions and timing functions. Includes named keywords, steps(), cubic-bezier values, and popular library presets from Material Design , Tailwind CSS , and Easings.net .

linear
Keyword
linear
Equivalent: cubic-bezier(0, 0, 1, 1)

Constant speed from start to end. No acceleration or deceleration.

Use case: Progress bars, loading indicators, continuous animations

ease
Keyword
ease
Equivalent: cubic-bezier(0.25, 0.1, 0.25, 1)

Default CSS easing. Slow start, fast middle, slow end.

Use case: General-purpose UI transitions

ease-in
Keyword
ease-in
Equivalent: cubic-bezier(0.42, 0, 1, 1)

Slow start, fast end. Element accelerates into motion.

Use case: Elements leaving the screen, exit animations

ease-out
Keyword
ease-out
Equivalent: cubic-bezier(0, 0, 0.58, 1)

Fast start, slow end. Element decelerates to rest.

Use case: Elements entering the screen, modal open, drop-ins

ease-in-out
Keyword
ease-in-out
Equivalent: cubic-bezier(0.42, 0, 0.58, 1)

Slow start, fast middle, slow end. Smooth symmetric easing.

Use case: Sliding panels, carousels, smooth state changes

steps(1, start)
Steps
steps(1, start)
Equivalent: N/A (step function)

Instant jump at the start of the interval.

Use case: Instant state switches, sprite animations

steps(1, end)
Steps
steps(1, end)
Equivalent: N/A (step function)

Instant jump at the end of the interval. Same as step-end.

Use case: Delayed state switches, typing cursor blink

step-start
Steps
step-start
Equivalent: N/A — same as steps(1, start)

Shorthand for steps(1, start). Jumps to end value immediately.

Use case: Immediate state changes without interpolation

step-end
Steps
step-end
Equivalent: N/A — same as steps(1, end)

Shorthand for steps(1, end). Stays at start value until end.

Use case: Delayed jumps, typing cursor animations

Material Standard(Material Design 3)
Library Preset
cubic-bezier(0.2, 0, 0, 1)

Standard easing for elements that move within the viewport.

Use case: Navigation, container transforms, dialog open/close

Material Emphasized(Material Design 3)
Library Preset
cubic-bezier(0.2, 0, 0, 1)

Emphasized easing with dramatic deceleration for important transitions.

Use case: Hero animations, FAB transformations

Material Decelerate(Material Design)
Library Preset
cubic-bezier(0, 0, 0.2, 1)

Elements entering screen decelerate to rest.

Use case: Cards entering view, modals opening, sheets sliding up

Material Accelerate(Material Design)
Library Preset
cubic-bezier(0.4, 0, 1, 1)

Elements leaving screen accelerate off screen.

Use case: Cards exiting, sheets sliding down, dismissals

Tailwind DEFAULT(Tailwind CSS)
Library Preset
cubic-bezier(0.4, 0, 0.2, 1)

Default transition easing in Tailwind CSS (ease-in-out variant).

Use case: General Tailwind transitions

Tailwind in(Tailwind CSS)
Library Preset
cubic-bezier(0.4, 0, 1, 1)

Ease-in variant used in Tailwind utilities.

Use case: Elements accelerating off screen

Tailwind out(Tailwind CSS)
Library Preset
cubic-bezier(0, 0, 0.2, 1)

Ease-out variant used in Tailwind utilities.

Use case: Elements decelerating into position

easeInSine(Easings.net)
Library Preset
cubic-bezier(0.12, 0, 0.39, 0)

Sinusoidal ease-in curve. Gentle start acceleration.

Use case: Subtle enter animations

easeOutSine(Easings.net)
Library Preset
cubic-bezier(0.61, 1, 0.88, 1)

Sinusoidal ease-out curve. Gentle end deceleration.

Use case: Subtle exit animations

easeInOutSine(Easings.net)
Library Preset
cubic-bezier(0.37, 0, 0.63, 1)

Sinusoidal ease-in-out. Natural, smooth symmetric easing.

Use case: Natural-feeling UI transitions

easeInQuart(Easings.net)
Library Preset
cubic-bezier(0.5, 0, 0.75, 0)

Quartic ease-in. Sharp initial acceleration.

Use case: Dramatic exit animations, attention-grabbing motion

easeOutBack(Easings.net)
Library Preset
cubic-bezier(0.34, 1.56, 0.64, 1)

Overshoots target then settles. Creates a bouncy feel.

Use case: Playful UI elements, notification pop-ins

cubic-bezier() Syntax

cubic-bezier(x1, y1, x2, y2)

Defines a cubic Bezier curve with two control points P1(x1,y1) and P2(x2,y2). Values x1 and x2 must be between 0 and 1. Y values can exceed this range to create overshoot effects.

steps() Syntax

steps(n, <jump-term>)

Divides the animation into n equal steps. Jump term controls where the step occurs:

  • jump-start / start — step at start of each interval
  • jump-end / end — step at end of each interval (default)
  • jump-none — no step at either end
  • jump-both — step at both start and end
21 easing functions available
Share

marduc812

2026