What problem does it solve? Adding consistent, accessible animations to a React codebase often leads to duplicated Intersection Observer boilerplate, inconsistent easing curves, and missing reduced-motion support. This Skill standardizes how scroll-triggered reveals, entrance animations, and staggered lists are built with Framer Motion. ## Core Features & Use Cases - Shared Animation Variants: Provides reusable variants (fadeInUp, staggerContainer, staggerItem, heroEntrance) with standard easing curves and durations. - Accessibility Enforcement: Every pattern includes useReducedMotion() handling so animations respect user preferences. - Migration Guidance: Step-by-step conversion from CSS/Intersection Observer patterns to Motion's whileInView API. - Use Case: When building a marketing page section that should fade in on scroll with staggered child cards, apply the staggerContainerVariants and staggerItemVariants pattern with viewport={{ once: true, amount: 0.2 }}. ## Quick Start Add a scroll-triggered fade-in animation to my React section component using Framer Motion with reduced motion support.