Boneyard Tools

CSS Keyframe Animation Generator

Build CSS keyframe animations without writing them by hand. Choose a preset such as fade-in, slide, zoom, spin, pulse or shake, adjust the duration, timing function, delay, iterations and direction, then copy the ready @keyframes and animation rule.

How to generate a CSS animation

  1. Pick a preset animation like fade-in, slide-in-left, spin or bounce.
  2. Set the duration, timing function, delay, iteration count and direction.
  3. Watch the live preview, then copy the generated @keyframes and animation CSS.

Examples

Infinite spin

preset: "spin", duration: "2s", timing: "linear", iterations: infinite
@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } animation: spin 2s linear 0s infinite normal forwards;

Simple fade in

preset: "fade-in", duration: "1s", timing: "ease-in-out"
@keyframes fade-in { 0% { opacity: 0; } 100% { opacity: 1; } } animation: fade-in 1s ease-in-out 0s 1 normal forwards;

Frequently asked questions

What is a CSS keyframe animation?

A keyframe animation defines how an element looks at points along a timeline using a @keyframes block, then plays it with the animation property. Each percentage from 0% to 100% holds the styles for that moment, and the browser tweens between them.

What does each animation setting do?

Duration sets how long one cycle takes, the timing function controls acceleration, and delay waits before starting. Iteration count is how many times it runs (or infinite), and direction decides whether it plays forward, reverse or alternates back and forth.

How do I make the animation loop forever?

Set the iteration count to infinite. The tool writes animation: name duration timing delay infinite ... so the animation restarts continuously. Pair it with the alternate direction if you want it to play forward then backward each cycle.

Why does my animation snap back at the end?

By default an element returns to its original styles when the animation finishes. This tool sets fill-mode to forwards so the last keyframe sticks, which is why fades and slides hold their final state instead of jumping back.

Do these animations work in every browser?

Yes. Unprefixed @keyframes and the animation shorthand are supported in every current browser, including Chrome, Firefox, Safari and Edge, so the copied CSS works without vendor prefixes.

Is my animation sent to a server?

No. The keyframes, the preview and the generated CSS are all built in your browser as you edit, so nothing about your settings leaves your device.

Related tools