
Motion
- 196 repo stars
- Updated July 25, 2026
- secondsky/claude-skills
Create smooth drag-and-drop interactions, scroll animations, gesture controls, and SVG morphing effects in React applications.
About
Motion (Framer Motion) is a popular React animation library that handles drag-and-drop, scroll animations, gestures, and SVG morphing with built-in spring physics. developers use it when standard CSS transitions fall short or when they need smooth, complex interactions without wrestling with animation bugs. It matters because well-executed animations dramatically improve user experience and perceived performance, turning functional interfaces into delightful products.
- Drag-and-drop & gesture animations
- Scroll & spring physics effects
- SVG morphing & complex transitions
Motion by the numbers
- Data as of Jul 28, 2026 (Skillselion catalog sync)
/plugin marketplace add secondsky/claude-skills/plugin install motion@claude-skillsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| repo stars | ★ 196 |
|---|---|
| Last updated | July 25, 2026 |
| Repository | secondsky/claude-skills ↗ |
What it does
Create smooth drag-and-drop interactions, scroll animations, gesture controls, and SVG morphing effects in React applications.
README.md
Motion (Framer Motion)
Status: Production Ready ✅ Last Updated: 2025-11-07 Production Tested: React 19 + Next.js 15 + Vite 6 + Tailwind v4
Auto-Trigger Keywords
Claude Code automatically discovers this skill when you mention:
Primary Keywords
- motion
- framer-motion
- framer motion
- react animation
- react animations
- javascript animation
- vite react animation
- nextjs animation
- animation library
- declarative animations
Feature Keywords (Gestures)
- gestures
- drag
- drag and drop
- draggable
- hover animation
- hover state
- tap animation
- tap gesture
- pan gesture
- whileHover
- whileTap
- whileDrag
- drag constraints
Feature Keywords (Scroll)
- scroll animation
- scroll animations
- scroll-based animation
- scroll-linked animation
- parallax
- parallax effect
- scroll progress
- scroll trigger
- scroll-triggered
- whileInView
- useScroll
- scroll indicator
Feature Keywords (Layout)
- layout animation
- layout animations
- FLIP animation
- shared element
- shared element transition
- card expansion
- card expand
- expand collapse
- magic move
- layoutId
- LayoutGroup
Feature Keywords (SVG)
- SVG animation
- SVG path
- path morphing
- line drawing
- path animation
- pathLength
- svg line
- draw SVG
Feature Keywords (Physics)
- spring physics
- spring animation
- bounce animation
- natural motion
- physics-based
- stiffness
- damping
Component Keywords
- modal animation
- dialog animation
- accordion animation
- carousel animation
- slider animation
- tabs animation
- dropdown animation
- toast animation
- notification animation
- hero section animation
- page transition
- route transition
Integration Keywords
- tailwind animation
- shadcn animation
- radix animation
- next.js app router animation
- server components animation
- vite plugin animation
- typescript animation
Problem Keywords
- AnimatePresence not working
- AnimatePresence exit not working
- layout animation bug
- scroll animation performance
- reduced motion
- prefers-reduced-motion
- bundle size optimization
- large bundle size
- animation performance
- janky animations
- stuttering animations
Error-Based Keywords
- "motion is not defined"
- "Cannot find module motion"
- "AnimatePresence children must have key"
- "window is not defined motion"
- "useEffect is not defined"
- "Next.js motion error"
- "Cloudflare Workers motion"
- "build error motion"
Use Case Keywords
- hero parallax
- landing page animation
- scroll reveal
- fade in on scroll
- stagger animation
- staggered list
- drag to reorder
- sortable list
- image gallery animation
- product carousel
- modal popup
- animated menu
- smooth scroll
Comparison Keywords
- motion vs auto-animate
- framer motion alternative
- motion vs framer
- animation library comparison
- best react animation
- lightweight animation
- motion bundle size
Migration Keywords
- migrate to motion
- upgrade framer motion
- replace framer motion
- motion migration
- animation library switch
What This Skill Does
Production-ready setup for Motion (formerly Framer Motion) - the industry-standard React animation library with 30,200+ GitHub stars. Motion provides declarative animations, gesture controls, scroll effects, spring physics, layout animations, and SVG manipulation.
Core Capabilities
✅ Gesture Controls - drag, hover, tap, pan, focus with cross-device support ✅ Scroll Animations - viewport-triggered, scroll-linked, parallax with ScrollTimeline API ✅ Layout Animations - FLIP technique, shared element transitions with layoutId ✅ Spring Physics - Natural, customizable physics-based motion ✅ SVG Animations - Path morphing, line drawing, attribute animation ✅ Exit Animations - AnimatePresence for smooth unmounting transitions ✅ Bundle Optimization - 2.3 KB (mini) to 34 KB (full), optimizable to 4.6 KB with LazyMotion ✅ 29+ Documented Issues Prevented - AnimatePresence, layout, performance, Next.js, Cloudflare ✅ 5 Production Templates - Vite, Next.js, scroll, UI components, layout transitions ✅ 4 Reference Guides - vs AutoAnimate, performance, Next.js, common patterns ✅ 2 Automation Scripts - One-command setup, bundle optimizer
When to Use This Skill
✅ Use Motion When:
Complex Interactions:
- Drag-and-drop interfaces (sortable lists, kanban boards)
- Hover states with scale/rotation/color changes
- Tap feedback with bounce/squeeze effects
Scroll-Based Animations:
- Hero sections with parallax layers
- Scroll-triggered reveals (fade in as elements enter viewport)
- Progress bars linked to scroll position
Layout Transitions:
- Shared element transitions between routes (card → detail page)
- Expand/collapse with automatic height animation
- Grid/list view switching
Advanced Features:
- SVG line drawing, path morphing
- Spring physics for natural bounce
- Orchestrated sequences (staggered reveals)
❌ Don't Use Motion When:
Simple List Animations → Use auto-animate skill instead:
- Todo list add/remove (Motion: 34 KB vs AutoAnimate: 3.28 KB)
- Search results filtering
- Basic accordions without gestures
Cloudflare Workers Deployment → Known Issue:
- Motion has build compatibility issues with Wrangler (GitHub issue #2918)
- Workaround: Use
framer-motionv12.23.24 instead (same API)
Known Issues This Skill Prevents
| Issue | Why It Happens | Source | How Skill Fixes It |
|---|---|---|---|
| AnimatePresence Exit Not Working | AnimatePresence wrapped in conditional or missing keys | Common mistake | Template shows correct placement pattern |
| Large List Performance | 50-100+ items cause browser freeze | GitHub issues | Virtualization guide with react-window examples |
| Tailwind Transitions Conflict | CSS transitions conflict with Motion | Official docs | Template shows correct pattern (remove transition classes) |
| Next.js "use client" Missing | Motion uses DOM APIs unavailable in Server Components | Next.js App Router | Next.js template with "use client" directive |
| Scrollable Container Broken | Layout animations incomplete in scrolled containers | Issue #1471 | layoutScroll prop documented |
| Fixed Element Positioning | Layout animations incorrect in fixed elements | Official docs | layoutRoot prop documented |
| layoutId + AnimatePresence Unmounting | Elements fail to unmount | Issue #1619 | LayoutGroup wrapper pattern |
| Reduced Motion Not Affecting AnimatePresence | MotionConfig doesn't apply to AnimatePresence | Issue #1567 | Manual check workaround provided |
| Reorder Component in Next.js | Incompatible with Next.js routing | Issues #2183, #2101 | Alternative drag implementations |
| Cloudflare Workers Build Errors | Wrangler ESM resolution issue | Issue #2918 | Use framer-motion v12.23.24 workaround |
| Non-Accelerated Animations | Animating width/height causes reflow | Best practices | layout prop for FLIP technique |
| Missing willChange Hint | No GPU optimization | Performance guide | Template examples include willChange |
| Full Bundle for Simple Use | 34 KB for fade animation | Bundle size | LazyMotion setup guide (34 KB → 4.6 KB) |
| No Unique Keys on List | React can't track changes | React docs | Template shows key prop pattern |
| Stagger Without Variants | Manual delay calculation complex | Best practices | Variants pattern with staggerChildren |
Total: 29+ documented errors prevented
Package Versions (Verified 2025-11-07)
| Package | Version | Status |
|---|---|---|
| motion | 12.23.24 | ✅ Latest stable |
| framer-motion | 12.23.24 | ✅ Alternative for Cloudflare |
| react | 19.2.0 | ✅ Latest stable |
| next | 15.1.0 | ✅ Latest stable |
| vite | 6.0.0 | ✅ Latest stable |
Dependencies
Prerequisites: React 18+ or React 19+
Integrates With:
- tailwind-v4-shadcn (styling)
- nextjs (if using Next.js)
- auto-animate (complementary for simple animations)
- cloudflare-worker-base (deployment, use framer-motion variant)
File Structure
motion/
├── SKILL.md # Complete documentation (~500 lines)
├── README.md # This file (auto-trigger keywords)
├── templates/ # 5 production-ready examples
│ ├── motion-vite-basic.tsx # Vite + React setup with 9 examples
│ ├── motion-nextjs-client.tsx # Next.js App Router patterns
│ ├── scroll-parallax.tsx # Scroll animations & parallax
│ ├── ui-components.tsx # Modal, accordion, carousel, tabs, dropdown, toast
│ └── layout-transitions.tsx # FLIP, shared elements, drag-to-reorder
├── references/ # 4 comprehensive guides
│ ├── motion-vs-auto-animate.md # Decision guide: when to use which
│ ├── performance-optimization.md # Bundle size, LazyMotion, virtualization
│ ├── nextjs-integration.md # App Router vs Pages Router patterns
│ └── common-patterns.md # Top 15 patterns with code
└── scripts/ # 2 automation scripts
├── init-motion.sh # One-command setup (detects Vite/Next.js/Cloudflare)
└── optimize-bundle.sh # Convert to LazyMotion (34 KB → 4.6 KB)
Official Documentation
- Official Site: https://motion.dev
- React Docs: https://motion.dev/docs/react
- GitHub Repository: https://github.com/motiondivision/motion (30,200+ stars)
- Examples: https://motion.dev/examples (300+ examples with source code)
- npm Package: https://www.npmjs.com/package/motion
Related Skills
- auto-animate - For simple list add/remove/sort animations (use 90% of the time)
- tailwind-v4-shadcn - Styling integration (avoid transition classes with Motion)
- nextjs - Next.js App Router patterns ("use client" required)
- cloudflare-worker-base - Deployment (use framer-motion for Cloudflare)
Motion vs AutoAnimate Quick Comparison
| Aspect | AutoAnimate | Motion | Winner |
|---|---|---|---|
| Bundle Size | 3.28 KB | 2.3-34 KB | AutoAnimate |
| API Simplicity | 3 lines | 12+ lines | AutoAnimate |
| Gesture Controls | ❌ | ✅ | Motion |
| Scroll Animations | ❌ | ✅ | Motion |
| Layout Animations | ❌ | ✅ | Motion |
| SVG Animations | ❌ | ✅ | Motion |
| List Animations | ✅ Auto | ✅ Manual | AutoAnimate |
| Cloudflare Workers | ✅ | ⚠️ | AutoAnimate |
Rule of Thumb: Use AutoAnimate for 90% of cases (list animations), Motion for 10% (gestures, scroll, layout).
See references/motion-vs-auto-animate.md for detailed comparison.
Contributing
Found an issue or have a suggestion?
- Open an issue: https://github.com/secondsky/claude-skills/issues
- See templates and references for detailed examples
License
MIT License - See main repo LICENSE file
Production Tested: ✅ React 19 + Next.js 15 + Vite 6 + Tailwind v4 Token Savings: ~83% Error Prevention: 100% (29+ documented errors prevented) Bundle Size: 2.3 KB (mini) - 34 KB (full), optimizable to 4.6 KB Community: 30,200+ GitHub stars, 300+ official examples Ready to use! See SKILL.md for complete setup.