Design

CSS Animation Generator

Compose @keyframes from 0% to 100% with opacity and transform (translate, rotate, scale), tune duration, delay, easing, and fill mode, then preview on a live box and copy full CSS. Runs entirely in your browser.

Ad placement — top banner
Presets
Keyframe 0%
Keyframe 100%
Preview

              
              
            
Ad placement — mid rectangle

What this CSS animation generator does

It writes a minimal two-frame @keyframes rule: 0% and 100%, with opacity and a composed transform (translateX/Y, rotate, scale). The companion animation shorthand lists name, duration, timing function, delay, iteration count, direction, and fill mode — matching what you would hand-write for a simple entrance or looping motion.

Keyframes and easing

Use the timing function dropdown for standard curves, pick Spring (overshoot) for a bouncy cubic-bezier, or choose Custom… and paste any valid cubic-bezier() or steps() expression. The Replay button forces the preview to run again without changing values.

Legacy -webkit- output

Unprefixed @keyframes is widely supported today. The optional -webkit- duplicate exists for older Safari/WebKit scenarios; skip it unless your analytics show those users.

Privacy

No network calls are made when you adjust sliders or copy CSS.

How to use this tool

  1. Step 1: Start from a preset or set 0% / 100% values manually.
  2. Step 2: Tune timing, iterations, direction, and fill mode to match your UX (e.g. forwards for a one-shot entrance).
  3. Step 3: Copy the CSS into your stylesheet and attach the class to your HTML element.

Frequently Asked Questions

Does DroidXP upload my animation settings?

No. The keyframes string and preview are built in your browser; copying uses the Clipboard API locally when available.

Should I use -webkit-keyframes?

Usually only for legacy support. Modern evergreen browsers use the standard @keyframes name. Enable the checkbox when you must target older WebKit builds.

What about prefers-reduced-motion?

For accessibility, reduce or disable decorative motion when the user enables “Reduce motion” in the OS. Wrap animations in @media (prefers-reduced-motion: reduce) overrides.

Why animate transform and opacity?

They are typically cheap to composite compared to layout-affecting properties like width or margin. Prefer transform/opacity for smooth 60fps motion.

Animation vs transition — which is this?

This tool outputs @keyframes and animation. CSS transition is better when you only move between two states on hover or class toggles without named keyframes.

What does animation-fill-mode do?

It controls whether the first/last keyframe styles stick before the animation starts or after it ends — important for animation-delay and one-shot entrances.

How do I add a middle keyframe?

This UI is limited to 0% and 100%. Copy the output and insert extra percentage blocks (e.g. 50%) in your editor for bounces or multi-step paths.

Can I use this with Tailwind or Framer Motion?

Yes as a reference for timing and easing. You will still map values into your framework’s config or component APIs.

Why does my preview loop forever?

Check Iterations — use 1 for a single run. The Spin preset sets infinite on purpose for continuous rotation.