scroll-animations▌
dylantarre/animation-principles · updated Apr 8, 2026
Apply Disney's 12 principles to scroll-triggered motion.
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
| Scroll Animation | Duration | Trigger Point | Easing |
|---|---|---|---|
| Fade In | 500ms | 20% visible | ease-out |
| Slide Up | 600ms | 15% visible | ease-out |
| Parallax | real-time | continuous | linear |
| Sticky Header | 200ms | threshold | ease-out |
| Progress Bar | real-time | continuous | linear |
| Section Reveal | 600ms | 25% visible | ease-out |
Implementation Patterns
/* Scroll-triggered reveal */
.reveal {
opacity: 0;
transform: translateY(30px);
transition: opacity 500ms ease-out, transform 600ms ease-out;
}
.reveal.visible {
opacity: 1;
transform: translateY(0);
}
/* CSS-only parallax */
.parallax-container {
perspective: 1px;
overflow-y: auto;
}
.parallax-slow {
transform: translateZ(-1px) scale(2);
}
Intersection Observer Pattern
const observer = new IntersectionObserver(
(entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('visible');
}
});
},
{ threshold: 0.2, rootMargin: '0px 0px -10% 0px' }
);
document.querySelectorAll('.reveal').forEach(el => observer.observe(el));
Scroll-Linked Animation (CSS)
@keyframes reveal {
from { opacity: 0; transform: translateY(30px); }
to { opacity: 1; transform: translateY(0); }
}
.scroll-reveal {
animation: reveal linear both;
animation-timeline: view();
animation-range: entry 0% entry 50%;
}
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
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.8★★★★★40 reviews- ★★★★★Noah Malhotra· Dec 20, 2024
scroll-animations has been reliable in day-to-day use. Documentation quality is above average for community skills.
- ★★★★★Sophia Anderson· Dec 20, 2024
Registry listing for scroll-animations matched our evaluation — installs cleanly and behaves as described in the markdown.
- ★★★★★Maya Huang· Dec 16, 2024
Keeps context tight: scroll-animations is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Jin Flores· Dec 4, 2024
scroll-animations fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Omar Kapoor· Nov 23, 2024
I recommend scroll-animations for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- ★★★★★Jin Torres· Nov 7, 2024
scroll-animations is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Nia Sanchez· Oct 14, 2024
Solid pick for teams standardizing on skills: scroll-animations is focused, and the summary matches what you get after install.
- ★★★★★Lucas Malhotra· Sep 21, 2024
Registry listing for scroll-animations matched our evaluation — installs cleanly and behaves as described in the markdown.
- ★★★★★Oshnikdeep· Sep 13, 2024
Keeps context tight: scroll-animations is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Omar Sharma· Aug 12, 2024
Useful defaults in scroll-animations — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
showing 1-10 of 40