CSS Animations: Making Web Pages Alive
Why Animations Matter
CSS animations bring life to your web pages. They guide user attention, provide visual feedback, and create memorable experiences. Best of all, you can create them entirely with CSS—no JavaScript needed!
Basic CSS Animation Syntax
CSS animations use the @keyframes rule to define animation frames:
@keyframes slideIn {
0% {
transform: translateX(-100%);
opacity: 0;
}
100% {
transform: translateX(0);
opacity: 1;
}
}
.element {
animation: slideIn 0.5s ease-out;
}
Key Properties
- animation-name: Name of the @keyframes animation
- animation-duration: How long the animation takes
- animation-timing-function: ease, linear, ease-in, ease-out, ease-in-out
- animation-delay: Delay before animation starts
- animation-iteration-count: infinite or number of repetitions
- animation-direction: normal, reverse, alternate
Practical Examples
Example 1: Fade In Animation
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
.card {
animation: fadeIn 1s ease-in;
}
Example 2: Bounce Effect
@keyframes bounce {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-20px); }
}
.button:hover {
animation: bounce 0.6s ease-in-out;
}
Example 3: Gradient Shift
@keyframes gradientShift {
0% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
100% { background-position: 0% 50%; }
}
.background {
background: linear-gradient(-45deg, #ee7752, #e73c7e);
background-size: 400% 400%;
animation: gradientShift 15s ease infinite;
}
Performance Tips
- Use transform and opacity: They don't trigger layout reflows
- Avoid animating: width, height, left, right (these are slow)
- Use will-change: Hint to the browser for optimization
- Test on mobile: Ensure animations run smoothly
Conclusion
CSS animations are powerful tools for enhancing user experience. They're performant, accessible, and easy to implement. Start with simple animations and build up to complex interactions. Your visitors will appreciate the polish!