Staggered reveal on enter

Children fade and rise in sequence the first time their container scrolls into view.

ScrollEnter view Pure CSS time-based Targets: Web · App All modern browsers
Target
Implement the "Staggered reveal on enter" effect in vanilla HTML/CSS/JS.

Context: Children fade and rise in sequence the first time their container scrolls into view.
Trigger: the element enters the viewport (first time only).
Timeline: time-based (duration + easing).

Motion tokens (normal):
- opacity: 0 → 1
- translateY: 16px → 0
- duration: 600ms
- easing: cubic-bezier(0.2, 0.8, 0.2, 1)
- stagger: 80ms (cap at 6 items)

Motion tokens (prefers-reduced-motion):
- opacity: 0 → 1
- duration: 200ms
- easing: ease-out

Technique: prefer pure CSS transitions/animations; use JS only to toggle classes.

Acceptance:
- animate only transform and opacity unless the spec lists other properties
- no layout shift; content is visible without the animation
- when prefers-reduced-motion is set, use the reduced tokens only
- plays once per element; replays only on explicit replay
- items beyond the stagger cap animate together with the last delayed item

Generated from the spec. Prompts differ by target name only; the tokens are the source of truth.