Files
secondsky 292c93845e feat(humanize-writing): add skill plugin, lockstep 3.9.0
- Rewrites AI-sounding text to read human; 8 editing passes + review-only mode
- Adapted from jpeggdev/humanize-writing (MIT); npm installer scaffolding dropped
- Frontmatter condensed to 238 chars (sync enforces 250 max for single-skill plugins)
- Lockstep bump 3.8.0 -> 3.9.0: all 145 plugins, both marketplaces, package.json
- CHANGELOG entry for 3.9.0
2026-09-09 17:02:38 +02:00
..

Motion (Framer Motion)

Status: Production Ready ✅ Last Updated: 2026-08-03 Recommended Stack: React 19 + Next.js 16 + 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-motion v12.43.0 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.43.0 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 2026-08-03)

Package Version Status
motion 12.43.0 ✅ Latest stable
framer-motion 12.43.0 ✅ Deprecated alias of motion (Cloudflare Workers workaround)
react 19.2.0 ✅ Latest stable
next 16.2.0 ✅ Latest stable
vite 7.3.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


  • 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


Recommended Stack: ✅ React 19 + Next.js 16 + 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.