Scroll-Triggered Stagger
aka Reveal on Scroll · Staggered Fade-in
Items in a section fade and rise as they enter the viewport, with staggered delays.
When to use
Landing pages, feature grids. Use sparingly. Once or twice per page.
Anatomy
- IntersectionObserver per item
- Translate-y from 12px to 0, opacity 0→1
- Stagger 60–80ms per item
How the industry does it
1 examples · credited
Prompt
Implement a scroll-triggered staggered reveal for a list of cards. Each card starts at opacity 0 and translateY 12px. As the section enters the viewport (threshold 0.15), each card animates to opacity 1 and translateY 0 with an 80ms stagger between siblings, using a cubic-bezier(0.22, 1, 0.36, 1) easing over 600ms. Honor prefers-reduced-motion by skipping the animation entirely. Use IntersectionObserver, no animation library required.Polish & tuning
2 of 4 unlockedMotion
Ease-out for entrance, ease-in-out for state. 200ms hover, 400–600ms layout. Stagger children at 30–60ms so groups feel intentional, not synchronized.
Spacing
Pick one scale (4 or 8) and don't mix. Section padding 96–128px desktop, 48–64px mobile. Headline sits ~24px above the subhead; subhead ~32px above the CTA cluster.