motion-dev-animations
Creates 120fps GPU-accelerated animations with Motion.dev (Framer Motion successor) for React, Next.js, Svelte, and Astro projects. Use when user requests animation, motion, scroll effects, parallax, hero animations, gestures, drag interactions, spring physics, whileHover effects, whileInView animat
By 199-biotechnologies · 414 installs
npx skills add 199-biotechnologies/motion-dev-animations-skill --skill motion-dev-animations
Source repository · Upstream listing
Motion Dev Animations
Motion.dev 10M+ downloads/month, successor to Framer Motion
120fps GPU accelerated animations for React, Next.js, Svelte, Astro, Vue
Purpose
Generate production grade animations using Motion.dev following Apple/Jon Ive principles:
Purposeful (serves function) Smooth (120fps) Accessible (reduced motion) Performant (GPU only) Elegant (subtle) Consistent (unified timing)
When to Use
✅ Use for :
React 19+/Next.js 15+/Svelte 5+/Astro 4+ animation implementation
Scroll effects (parallax, reveal), gestures (hover, drag, tap), layout animations
Hero sections, cards, micro interactions requiring 60fps+ performance
Projects needing spring physics, natural motion, accessibility
❌ Don't use for :
CSS only transitions (use native transition property)
Static sites without JavaScript frameworks
Vue projects (use motion v package different API)
SVG/Canvas complex animations (GSAP better suited)
Form only CRUD apps (overkill)
Workflow: Clarify → Plan → Implement → Verify
Step 1: Clarify Requirements
Determine project context and animation goals:
Framework (React 19+, Next.js 15+, Svelte 5+, Astro 4+)
Animation type (entrance, gesture, scroll, layout)
Design goal (subtle, prominent, playful, professional)
Performance constraints (target device, bundle limits, accessibility requirements)
Trigger mechanism (mount, viewport, user interaction)
Step 2: Plan Animation Strategy
Define implementation approach:
Components to animate (headers, cards, buttons, sections)
Motion patterns (fade, slide, scale, spring, parallax)
Timing specifications (duration, delay, stagger intervals)
Physics parameters (stiffness: 300 400, damping: 20, mass: 1)
Accessibility fallbacks (prefers reduced motion alternatives)
Step 3: Implement in Phases
Build animations incrementally:
Setup : Install Motion.dev, configure imports, prepare component structure
Core Animation : Apply motion properties (initial, animate, transition)
Refinement : Tune timing, easing curves, spring physics for natural feel
Accessibility : Add reduced motion detection, keyboard navigation support
Optimization : Verify GPU acceleration, minimize bundle size, test performance
Step 4: Verify Quality Standards
Check against requirements:
Performance : ≥60fps (Chrome DevTools → Performance tab)
Layout Stability : CLS = 0 (Lighthouse audit)
Accessibility : Honors prefers reduced motion (system settings test)
Keyboard Navigation : All interactive elements keyboard accessible
Mobile Responsive : Touch friendly gestures, tested on iOS/Android
Animation Pattern Decision Tree
API Quick Reference
Component/Hook Usage When
motion.div <motion.div animate={{x: 100}} Basic animations
whileHover whileHover={{scale: 1.05}} Hover states (0.2 0.3s)
whileTap whileTap={{scale: 0.95}} Click feedback
whileInView whileInView={{opacity: 1}} Scroll reveal
drag drag="x" dragConstraints Draggable elements
layout <motion.div layout / Auto FLIP animation
useScroll Track scroll progress Parallax, progress bars
useTransform Map values Scroll linked effects
useSpring Spring physics Smooth value changes
useInView Viewport detection Trigger animations
Full API : See [Complete API Reference](./reference/api reference.md)
Framework Integration
Framework Import Components Exit Animations
React/Next.js "motion/react" <motion.div <AnimatePresence
Svelte "motion" Vanilla API N/A
Astro "motion" Client scripts N/A
Vue "motion v" <motion.div Similar to React
Quality Standards
Category Requirement How to Verify
Performance ≥60fps Chrome DevTools → Performance
GPU accel transform/opacity only No width/height/left/top
Bundle <50KB webpack bundle analyzer
Accessibility prefers reduced motion System settings test
Mobile Touch friendly iOS/Android testing
Layout shift CLS = 0 Lighthouse audit
Examples Library (Progressive Loading)
Load on demand based on animation type:
Hero Sections
[Hero Fade Up](./examples/hero fade up.md) Classic Apple style entrance
Hero Stagger Orchestrated elements
Hero Split Text Character reveal
Scroll Effects
[Scroll Reveal](./examples/scroll reveal.md) Intersection Observer fade in
[Parallax Layers](./examples/parallax layers.md) Multi speed depth
Scroll Progress Reading indicator
Gestures & Interactions
[Card Hover](./examples/card hover.md) Elegant lift + shadow
[Magnetic Button](./examples/magnetic button.md) Cursor following
Drag Carousel Touch slider
Layout Animations
List Reorder Drag to reorder FLIP
Accordion Expand/collapse
Tab Switch Shared layout
Full examples : All files in ./examples/ directory
Reference Documentation (Load On Demand)
[Complete API Reference](./reference/api reference.md) All components, hooks, props
[Spring Physics Guide](./reference/spring physics.md) Tuning stiffness, damping, mass
Performance Optimization GPU, will change, lazy loading
Accessibility Guide Reduced motion, keyboard, screen readers
Troubleshooting Common issues, solutions
Framer Motion Migration Upgrade guide
Templates (Production Ready)
[Next.js Page Template](./templates/nextjs page.tsx) Hero + features + testimonials
[Component Library](./templates/component library.tsx) 10+ reusable components
Scroll Template Parallax + reveal patterns
Dashboard Template Interactive cards, charts
Installation
Common Patterns (Copy Paste Ready)
Pattern 1: Fade Up Entrance
Pattern 2: Hover Card
Pattern 3: Scroll Reveal
More patterns : Staggered lists, exit animations, layout transitions → ./examples/ directory
Error Handling
Issue Solution
Animation doesn't trigger Check initial ≠ animate values
Poor performance Use transform/opacity only + will change CSS
Layout shift Set explicit dimensions, use layout prop
Exit not working Wrap with <AnimatePresence , add key prop
Implementation Best Practices
1. Start simple → Build from fade + slide, add complexity incrementally
2. Extract variants → Define animation states as named variants for maintainability
3. Prefer spring physics → Default to spring transitions (more natural than tween)
4. Stagger list items → Use staggerChildren (0.1 0.2s) for rhythm and hierarchy
5. Test mobile thoroughly → Verify touch gestures, performance on iOS/Android devices
6. Include reduced motion → Always provide prefers reduced motion fallback animations
7. Profile performance → Use Chrome DevTools Performance tab, target ≥60fps
Design Philosophy (Apple/Jon Ive Principles)
Apply these design principles to all animations:
Simplicity : Use 200 400ms durations, minimize simultaneous motion, prefer transform properties
Natural Physics : Implement spring based transitions, avoid linear easing, apply mass based movement
Purposeful Motion : Guide user attention, provide interaction feedback, establish visual hierarchy
Elegant Restraint : Apply "less is more" principle, maintain consistent timing, respect user motion preferences
Validation
For structured output validation, see:
[Motion Config Schema](./schema/motion config.schema.json) JSON schema
[Validation Script](./scripts/validate motion config.py) Automated checks
Metadata
Version : 3.0.0 (Research Backed Optimization)
Optimization : Imperative language, few shot patterns (3 examples), layered complexity, progressive loading
Token Efficiency : 87% core reduction (15K → 2K) + auto caching
Motion.dev : v11+
Frameworks : React 19+, Next.js 15+, Svelte 5+, Astro 4+, Vue 3+
Research : arXiv 2402.07927v1, 2211.01910, 2310.14735v5, PubMed 40334089
License : MIT