Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
Claude Skills Maintainers avatar

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-skills

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
repo stars196
Last updatedJuly 25, 2026
Repositorysecondsky/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 DeploymentKnown Issue:

  • Motion has build compatibility issues with Wrangler (GitHub issue #2918)
  • Workaround: Use framer-motion v12.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


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?


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.

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.