Scroll Animations
Apply Disney's 12 principles to scroll-triggered motion.
Principle Application
Squash & Stretch: Elements can compress slightly while scrolling fast, settle when stopped.
Anticipation: Content should be slightly visible before full reveal. Start animations at 10-20% visibility.
Staging: Reveal content in reading order. Top-to-bottom, left-to-right progression.
Straight Ahead vs Pose-to-Pose: Define clear "hidden" and "revealed" poses. Scroll position interpolates between them.
Follow Through & Overlapping: Stagger reveals. First element triggers at 20% viewport, next at 25%, etc.
Slow In/Slow Out: Use ease-out for reveals triggered by scroll. Content settles into place.
Arcs: Parallax elements move on curves relative to scroll. Slight horizontal offset as vertical scroll occurs.
Secondary Action: Fade + slide + scale can combine for richer reveals.
Timing:
- Reveal animation: 400-600ms (allows scroll to continue)
- Parallax: real-time, 1:1 or fractional ratios
- Sticky transitions: 200-300ms
Exaggeration: Subtle for scroll - users control the pace. Let scroll speed be the exaggeration.
Solid Drawing: Elements should never jump or teleport. Smooth interpolation at all scroll positions.
Appeal: Scroll animations should reward exploration, not obstruct it.
Timing Recommendations
Implementation Patterns
Intersection Observer Pattern
Scroll-Linked Animation (CSS)
Key Rules
- Never block scroll or hijack scroll behavior
- Animations should complete within viewport, not require precise scroll position
- Trigger early (10-20% visible) so animation completes before full view
- Provide
prefers-reduced-motionalternative - instant reveals, no parallax - Test on mobile - scroll animations must be smooth at 60fps

