Surface:
Advertisement
Presetfade-in
Duration1s
Easingease
Directionnormal
Fillboth

About this generator

Most CSS animation generators give you a fade-in slider and a copy button. The output works but it’s brittle — no prefers-reduced-motion guard, no animation-composition, no framework export beyond plain CSS. This generator was rebuilt to ship animations that work in production accessibility audits without you having to remember the eight different things that make a CSS animation polite to ship.

Three things make this different from every other free animation generator. Accessibility by default — toggle the prefers-reduced-motion guard and the export wraps your rule in a @media (prefers-reduced-motion: no-preference) block, so users with vestibular sensitivity don’t get bounced around. animation-composition support — layer multiple animations correctly with the modern replace / add / accumulate compositing modes (Chrome 112+, Safari 16.4+, Firefox 115+). Five framework exports — CSS, SCSS, Tailwind arbitrary-value, React inline-style, Vue scoped CSS.

Curated preset library: 20+ animations across fade, slide (4 directions), zoom, bounce, pulse, shake, spin, flip, rubber-band, flash, swing, wobble, heartbeat, jello, tada — every classic in one place, plus modern attention animations.

Permalink: every adjustment encodes into the URL hash. No login, no watermark, no paywall. Free and MIT-licensed.

?

How to use

01
Pick a preset
20+ animations across fade, slide (4 directions), zoom, attention (bounce / pulse / heartbeat / shake / tada / jello / wobble / flash), and rotation (spin / flip / rubber-band / swing). The preview updates and replays instantly.
02
Set duration, delay, iterations
Duration is how long one cycle takes (0.1-5s). Delay staggers the start. Iterations: 1, 2, 3, or infinite — pick infinite for loading spinners and attention animations, finite for entrances.
03
Pick easing curve
ease-out for entrances (settles into place), ease-in for exits (builds momentum), linear for endless rotations, steps for typewriter / sprite effects. For more nuanced curves, our dedicated cubic-bezier generator gives you 4-handle control.
04
Set direction & fill mode
Direction reverses or alternates playback. Fill-mode controls the element state before and after the animation — "both" is the right default for entrances (final keyframe state persists after animation ends).
05
Layer with animation-composition
Modern CSS: when you stack multiple animations on one element, composition controls how they combine. <strong>replace</strong> (default) overrides; <strong>add</strong> sums transforms (spin + scale on the same element); <strong>accumulate</strong> builds cumulative state. Chrome 112+, Safari 16.4+, Firefox 115+.
06
Enable accessibility guard
Toggle <strong>prefers-reduced-motion guard</strong> — the export wraps your animation in @media (prefers-reduced-motion: no-preference) so users with vestibular sensitivity or migraine triggers don't get bounced around. WCAG 2.3.3 explicitly recommends this.
07
Pick a format & export
Switch the export tab to your stack — CSS, SCSS, Tailwind arbitrary-value (with motion-safe: prefix when accessibility guard is on), React inline-style (with optional prefers-reduced-motion check), Vue scoped CSS — and copy.
</>

CSS Animation syntax

PropertyDescription
animation-nameReferences the @keyframes rule by name.
animation-durationHow long one cycle takes. E.g. 1s or 300ms.
animation-timing-functionEasing curve: ease | linear | ease-in | ease-out | ease-in-out | steps(n) | cubic-bezier(...).
animation-delayHow long to wait before the animation starts.
animation-iteration-countNumber of cycles: a number or infinite.
animation-directionPlayback order: normal | reverse | alternate | alternate-reverse.
animation-fill-modeState outside the active period: none | forwards | backwards | both.
animation-compositionHow multiple animations combine on the same element: replace (default) | add | accumulate. Modern CSS — 2023 baseline.
@media (prefers-reduced-motion)Accessibility query: detect when user has OS reduce-motion enabled. Wrap your animation in (prefers-reduced-motion: no-preference) so it only runs for users who haven't opted out.
</>

CSS Animation snippets

Basic
@keyframes fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.element {
  animation: fade-in 1s ease both;
}
Shorthand
/* shorthand order */
animation: name duration timing-fn delay iterations direction fill-mode;
Multiple
.element {
  animation:
    slide-up  0.4s ease-out  0s   1  normal   both,
    pulse     1.2s ease-in-out 0.4s infinite normal none;
}

Browser support

@keyframes and the animation shorthand have excellent browser support. No vendor prefixes needed for modern targets.

Chrome v43+
Firefox v16+
Safari v9+
Edge v12+
IE v10+

Search CodeFronts

Loading…