Motion Implementation Patterns
This guide documents production animation patterns using Motion (Framer Motion) in a Next.js 16 + React 19 environment with React Compiler optimization.Installation & Setup
Package Configuration
Core Patterns
Basic Motion Component
Motion with Base UI Components
Integrate Motion with headless component libraries:components/button/index.tsx
motion.create()wraps third-party components- Preserves all original component functionality
- Adds Motion animation props
AnimatePresence
Basic Exit Animations
components/card.tsx
useIsPresent Hook
Track whether a component is currently mounted:demos/presence-state.tsx
AnimatePresence Modes
- Tab Title
- Tab Title
- Tab Title
Modes Comparison Demo
demos/modes-demo.tsx
Spring Configurations
Spring vs Easing Comparison
- Tab Title
- Tab Title
- Fixed duration
- Predictable timing
- Better for choreographed sequences
Production Spring Values
demos/ease-vs-spring.tsx
Spring Parameter Reference
Common Presets:
Advanced Patterns
Page Transitions
components/page-transition/index.tsx
- Key on
pathnametriggers animation on route change - Blur effect adds depth to transition
- Delay prevents flashing on fast navigation
MotionValues and Velocity
demos/spring-with-velocity.tsx
useMotionValuecreates imperative animation stateuseVelocitytracks rate of change- Pass velocity to spring for momentum preservation
Transform Performance
Layout Animations
When you must animate layout properties:- Reordering lists
- Expanding/collapsing containers
- Grid rearrangement
Timing Standards
Duration Guidelines
Custom Easing Functions
Reduced Motion
Respecting User Preferences
CSS Alternative
styles.module.css
React Compiler Optimization
Memoization Patterns
React Compiler automatically optimizes these patterns:Server Component Boundaries
"use client" to components that use Motion or other client-side features.
Performance Best Practices
Bundle Size Optimization
Dynamic Imports for Heavy Animations
Animate Presence with Lists
Next Steps
Web Audio API
Implement procedural sound generation for UI feedback
Performance Optimization
Learn bundle size and runtime optimization techniques