Staggered Transition Delays for Sequential Animation
Use CSS transition-delay to create staggered, sequential animations across sibling elements. A common pattern for list reveals and menu animations.
Detailed Explanation
Staggered Animations with Transition Delay
The transition-delay property lets you offset when a transition starts. By applying incremental delays to sibling elements, you create a cascading, staggered animation effect.
CSS Code
.list-item {
opacity: 0;
transform: translateY(20px);
transition: opacity 0.4s ease-out,
transform 0.4s ease-out;
}
.list-item.visible {
opacity: 1;
transform: translateY(0);
}
.list-item:nth-child(1) { transition-delay: 0s; }
.list-item:nth-child(2) { transition-delay: 0.05s; }
.list-item:nth-child(3) { transition-delay: 0.1s; }
.list-item:nth-child(4) { transition-delay: 0.15s; }
.list-item:nth-child(5) { transition-delay: 0.2s; }
Using CSS Custom Properties for Dynamic Delays
Instead of hardcoding delays for each child, use CSS custom properties set via JavaScript or inline styles:
.list-item {
transition-delay: calc(var(--index) * 0.05s);
}
<li class="list-item" style="--index: 0">First</li>
<li class="list-item" style="--index: 1">Second</li>
<li class="list-item" style="--index: 2">Third</li>
Choosing the Delay Increment
- 0.03s–0.05s: Fast stagger — items appear almost simultaneously but with a visible wave
- 0.08s–0.12s: Medium stagger — clearly sequential, natural rhythm
- 0.15s–0.2s: Slow stagger — dramatic, each item has its moment
Reverse Delay for Exit
When removing items, reverse the delay order so the last item leaves first:
.list-item.leaving:nth-child(1) { transition-delay: 0.2s; }
.list-item.leaving:nth-child(2) { transition-delay: 0.15s; }
.list-item.leaving:nth-child(3) { transition-delay: 0.1s; }
Use Case
Staggered transitions are perfect for dropdown menus, sidebar navigation reveals, search result lists, notification feeds, and any list of items that should appear sequentially rather than all at once.
Try It — CSS Transition Generator
Related Topics
Transitioning Multiple CSS Properties Independently
Animation Patterns
CSS Fade In Transition with Opacity
Basic Transitions
CSS Slide Up Effect on Hover Using Transform
Basic Transitions
Custom Cubic-Bezier Easing Curves for CSS Transitions
Animation Patterns
Transitioning Visibility with Opacity in CSS
Performance Tips