CSS Animations
Transitions, keyframes, performance, and advanced animation patterns.
Overview
CSS animations create smooth, performant visual effects.
Key Concepts
- Transitions — Smooth state changes
- Keyframes — Multi-step animations
- Transform — Translate, rotate, scale
- Performance — GPU-accelerated properties
- Easing — Timing functions
Code Examples
/* Transitions */
.button {
background: var(--primary);
transition: all 0.3s ease;
}
.button:hover {
background: var(--primary-dark);
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
/* Keyframe animations */
@keyframes fadeIn {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes slideIn {
from { transform: translateX(-100%); }
to { transform: translateX(0); }
}
@keyframes pulse {
0%, 100% { transform: scale(1); }
50% { transform: scale(1.05); }
}
.animate-fade-in {
animation: fadeIn 0.5s ease-out forwards;
}
.animate-slide-in {
animation: slideIn 0.3s ease-out;
}
.animate-pulse {
animation: pulse 2s infinite;
}
/* Staggered animations */
.stagger-item {
opacity: 0;
animation: fadeIn 0.5s ease-out forwards;
}
.stagger-item:nth-child(1) { animation-delay: 0.1s; }
.stagger-item:nth-child(2) { animation-delay: 0.2s; }
.stagger-item:nth-child(3) { animation-delay: 0.3s; }
/* Scroll-driven animations */
@keyframes reveal {
from { opacity: 0; transform: translateY(30px); }
to { opacity: 1; transform: translateY(0); }
}
.reveal-on-scroll {
animation: reveal linear both;
animation-timeline: view();
animation-range: entry 0% cover 40%;
}
/* Hover effects */
.hover-lift {
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.hover-lift:hover {
transform: translateY(-4px);
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}
/* Loading spinner */
@keyframes spin {
to { transform: rotate(360deg); }
}
.spinner {
width: 40px;
height: 40px;
border: 4px solid #f3f3f3;
border-top: 4px solid var(--primary);
border-radius: 50%;
animation: spin 1s linear infinite;
}
Practice
Create a page with scroll-triggered animations and hover effects.