CSS Animation Generator
Visual builder for CSS `@keyframes`. Timeline editor with draggable nodes, per-keyframe transform / opacity / color / radius, plus seven ready-to-go presets.
- Runs in browser
- No signup
- No tracking
How to use CSS Animation Generator
Pick a preset (fadeIn, bounce, etc.) or start from a fresh two-keyframe animation.
Click a node on the timeline to edit it.
Adjust transform, opacity, color, and radius for that node.
Tune duration, delay, timing function, iterations, direction, fill mode.
Copy the `@keyframes` + `animation` CSS.
When to use it
Loading spinners and skeletons.
Hero-section entrance animations.
Button hover effects.
Modal enter / exit transitions.
Marketing site decorative motion.
What it fixes
Counting percentages by hand.
Reloading to see each tweak.
Memorizing the animation shorthand order.
Guessing cubic-bezier values blind.
About CSS Animation Generator
Hand-writing keyframes is tedious — counting percentages, debugging missing commas, and reloading to see the result. This tool gives you a timeline of handles you can click and edit, with a live preview that loops automatically as you tweak.
Each keyframe controls `translate`, `scale`, `rotate`, `skew`, `opacity`, `background-color`, and `border-radius`. The animation shorthand exposes every part of the spec — duration, delay, timing function (including cubic-bezier presets), iteration count, direction, and fill mode. Copy the full CSS and drop it into any stylesheet.
References: MDN — @keyframes · MDN — animation shorthand
Frequently asked
What does the output look like?
A `@keyframes` block plus the `animation` shorthand applied to a `.box` selector. Drop both into your stylesheet and add the class to any element.
How do I add a keyframe?
Click `+ Keyframe` in the timeline panel. A new handle drops into the largest empty gap. Click any handle to select it and edit its properties.
Why does my animation flash at the end?
Default `fill-mode` is `none`, which snaps back to the starting style after the animation ends. Set `forwards` to keep the final keyframe applied or `both` to also apply the initial frame before the delay.
How do I make it loop forever?
Type `infinite` into the Iterations field. Any positive integer works too — `3` plays the animation three times.
Can I animate colors?
Yes — each keyframe has its own background color. The browser interpolates between adjacent keyframes in RGB by default.
Why use cubic-bezier?
Built-in easings (`ease`, `ease-in-out`) cover the basics. Custom cubic-bezier curves let you dial in overshoot, anticipation, or unusual pacing. Two presets are included.
Discussion
Related tools
All toolsGradient Generator
Visual CSS gradient builder — linear, radial, conic. Multi-stop, presets, copy CSS or Tailwind.
VisualIcon Downloader
Search 200K+ icons across Lucide, Heroicons, Tabler, Phosphor, Font Awesome, Material. Recolor, copy SVG, download PNG.
VisualMarkdown Preview
Live GitHub-flavored markdown preview. Sanitized HTML output, copy or download as .html.
Visual