Animation Generator
Create CSS animations with preset effects and custom timing
Related Tools
Color Picker
Pick colors and convert between HEX, RGB, HSL
Try nowHEX to RGB Converter
Convert colors between HEX, RGB, HSL and CMYK formats
Try nowColor Format Converter
Convert colors between HEX, RGB, HSL, HWB, and CMYK formats. Visual color picker included.
Try nowGradient Generator
Create beautiful CSS gradients with a visual editor
Try nowCSS Animation Generator - Keyframe Presets | Tuttilo
Our CSS Animation Generator lets you create beautiful animations from 8 preset effects: bounce, fade-in, slide-in, rotate, pulse, shake, zoom-in, and flip. Customize duration, timing function, and iteration count. Preview the animation in real time and copy the complete CSS code including keyframes.
Select one of eight preset animation effects: bounce, fade-in, slide-in (from top/right/bottom/left), rotate, pulse, shake, zoom-in, or flip. Set your animation duration in seconds, choose a timing function (linear, ease, ease-in, ease-out, or ease-in-out) that controls acceleration, and specify iteration count (once, twice, or infinite loop). The preview box demonstrates your animation continuously so you can fine-tune timing and feel before committing. Copy both the CSS class and @keyframes rule together β paste both into your stylesheet and apply the class to any element.
Marketing landing pages use fade-in animations on hero text and call-to-action buttons to grab attention as users scroll into view. E-commerce product pages employ subtle zoom-in effects on images during hover states to invite interaction without being jarring. Loading screens use infinite pulse or rotate animations to indicate processing without requiring actual progress data. Onboarding flows slide-in tutorial cards sequentially to guide new users through features without overwhelming them all at once.
Match timing functions to animation intent: ease-out for elements entering the viewport (fast start, slow finish feels natural), ease-in for elements exiting (accelerate away), and ease-in-out for looping animations. Keep durations short (0.3-0.6s) for UI feedback, longer (0.8-1.2s) for decorative effects β anything over 2s feels sluggish. Infinite iterations work for loading indicators but exhaust users on content elements; use sparingly. Combine animation-delay with animation-fill-mode: forwards to create staggered sequences where elements animate one after another. Test on low-end devices since complex keyframe animations can cause jank on slower GPUs.
All processing happens directly in your browser. Your files never leave your device β no server uploads, no cloud storage, no data retention. The tool works offline once loaded, requires no registration, and is completely free with no usage limits.
Frequently Asked Questions
What animation presets are available?
Eight presets: Bounce (up-down), Fade In (opacity), Slide In (left to right), Rotate (360Β° spin), Pulse (scale), Shake (horizontal), Zoom In (scale from 0), and Flip (3D Y-axis rotation).
Can I customize the animation speed?
Yes, use the duration slider to set the animation speed from 0.1 seconds to 3 seconds. Each preset has an optimized default duration that you can adjust.
What are timing functions?
Timing functions control the acceleration curve of the animation. Linear runs at constant speed. Ease starts slow, speeds up, then slows down. Ease-in starts slow. Ease-out ends slow. Ease-in-out does both.
How do I use the generated CSS?
Copy the output which includes the @keyframes rule and the animation property. Paste the keyframes at the top of your CSS file and add the animation property to your element selector.
Can I set how many times the animation runs?
Yes, choose from infinite (loops forever), or 1, 2, 3, or 5 iterations. Use infinite for continuous effects like loading spinners, or a fixed count for one-time entrance animations.