scroll-reveal-libraries
Simple scroll-triggered reveal animations using AOS (Animate On Scroll). Use this skill when building marketing pages, landing pages, or content-heavy sites requiring basic fade/slide effects without complex animation orchestration. Triggers on tasks involving scroll animations, scroll-triggered rev
By freshtechbro · 1,936 installs
npx skills add freshtechbro/claudedesignskills --skill scroll-reveal-libraries
Source repository · Upstream listing
Scroll Reveal Libraries
Overview
This skill covers AOS (Animate On Scroll), a lightweight CSS driven library for scroll triggered animations. AOS excels at simple fade, slide, and zoom effects activated when elements enter the viewport.
Key Features :
Minimal Setup : Single JavaScript file + CSS
Data Attribute API : Configure animations in HTML
Performance : CSS driven, GPU accelerated animations
50+ Built in Animations : Fades, slides, zooms, flips
Framework Agnostic : Works with vanilla JS, React, Vue, etc.
When to Use :
Marketing/landing pages with simple scroll effects
Content heavy sites (blogs, documentation)
Quick prototypes requiring scroll animations
Projects where GSAP/Framer Motion complexity isn't needed
When NOT to Use :
Complex animation timelines or orchestration → Use GSAP ScrollTrigger
Physics based animations → Use React Spring or Framer Motion
Precise scroll synced animations → Use GSAP ScrollTrigger
Heavy interactive animations → Use Framer Motion
Core Concepts
Installation
CDN (Quickest) :
NPM/Yarn (Recommended) :
Basic Usage
Apply animations using the data aos attribute:
Configuration Options
Global Configuration :
Per Element Overrides :
Common Patterns
1. Landing Page Hero Section
2. Feature Cards Grid
3. Alternating Content Sections
4. Scroll Triggered Testimonials
5. Custom Anchor Triggers
Trigger animations based on a different element's scroll position:
6. Sequential Animation Chain
7. Image Gallery with Zoom Effects
Integration Patterns
React Integration
Basic Setup :
Refreshing on Route Changes :
Dynamic Content Updates :
Component Wrapper Pattern :
Vue.js Integration
Next.js Integration
Performance Optimization
1. Disable on Mobile Devices
2. Use Once for Better Performance
3. Optimize Throttle and Debounce
4. Disable Mutation Observer for Static Content
5. Reduce Animation Complexity
6. Use RequestIdleCallback for Initialization
Common Pitfalls
1. Forgetting to Refresh After DOM Changes
Problem : New elements don't animate after being added dynamically.
Solution : Call AOS.refresh() or AOS.refreshHard() :
2. Animations Not Working in React
Problem : AOS doesn't detect elements on first render or route changes.
Solution : Initialize in useEffect and refresh on route/content changes:
3. Scroll Performance Issues
Problem : Page scrolling feels janky with many animated elements.
Solution : Reduce animated elements and use once: true :
4. CSS Conflicts
Problem : Custom CSS interferes with AOS animations.
Solution : Use more specific selectors and avoid !important :
5. Anchor Placement Confusion
Problem : Animations trigger at unexpected scroll positions.
Solution : Understand anchor placement options:
6. Duration/Delay Limits
Problem : Values above 3000ms don't work.
Solution : Add custom CSS for extended durations:
Built in Animations
Fade Animations
fade in Simple fade in
fade up Fade in from bottom
fade down Fade in from top
fade left Fade in from right
fade right Fade in from left
fade up right Diagonal fade
fade up left Diagonal fade
fade down right Diagonal fade
fade down left Diagonal fade
Slide Animations
slide up Slide from bottom
slide down Slide from top
slide left Slide from right
slide right Slide from left
Zoom Animations
zoom in Zoom in
zoom in up Zoom in from bottom
zoom in down Zoom in from top
zoom in left Zoom in from right
zoom in right Zoom in from left
zoom out Zoom out
zoom out up Zoom out to top
zoom out down Zoom out to bottom
zoom out left Zoom out to left
zoom out right Zoom out to right
Flip Animations
flip up Flip from bottom
flip down Flip from top
flip left Flip from right
flip right Flip from left
Custom Animations
Create custom animations with CSS:
Comparison with Alternatives
AOS vs GSAP ScrollTrigger
Feature AOS GSAP ScrollTrigger
Complexity Simple, data attribute based Advanced, JavaScript API
Use Case Simple reveals Complex timelines
File Size ~13KB ~27KB (GSAP) + ScrollTrigger
Performance CSS driven JavaScript driven
Learning Curve Minutes Hours
Customization Limited Extensive
Best For Marketing pages Interactive experiences
Use AOS when :
Simple fade/slide/zoom effects
Quick implementation needed
Minimal JavaScript preferred
Basic scroll reveals sufficient
Use GSAP ScrollTrigger when :
Complex animation sequences
Precise scroll synced animations
Timeline orchestration needed
Advanced easing/physics required
Resources
Official Documentation
AOS : https://michalsnik.github.io/aos/
GitHub : https://github.com/michalsnik/aos
Key Scripts
scripts/aos generator.py Generate AOS HTML boilerplate
scripts/config builder.py Build AOS configuration
References
references/aos api.md Complete AOS API reference
references/animation catalog.md All built in animations with demos
references/integration patterns.md Framework integration guides
Starter Assets
assets/starter aos/ Complete AOS starter template
assets/examples/ Production ready patterns
Related Skills
gsap scrolltrigger : For complex scroll driven animations
motion framer : For React specific animations with physics
locomotive scroll : For smooth scrolling with parallax
animated component libraries : For pre built animated React components