Framer Motion Animator
Build delightful animations and interactions with Framer Motion's declarative API.
Core Workflow
- Identify animation needs: Entrance, exit, hover, gestures
- Choose animation type: Simple, variants, gestures, layout
- Define motion values: Opacity, scale, position, rotation
- Add transitions: Duration, easing, spring physics
- Orchestrate sequences: Stagger, delay, parent-child
- Optimize performance: GPU-accelerated properties
Installation
Basic Animations
Simple Animation
Exit Animations with AnimatePresence
Variants Pattern
Staggered Children
Interactive Variants
Page Transitions
Next.js App Router
Shared Layout Animations
Gesture Animations
Drag
Swipe to Dismiss
Scroll Animations
Scroll-Triggered
Scroll Progress
Animation Hooks
useAnimate (Imperative)
useMotionValue & useTransform
Reusable Animation Components
AnimatedContainer
AnimatedList
Transition Presets
Reduced Motion Support
Best Practices
- Use GPU-accelerated properties:
opacity,transform(notwidth,height) - Add
layoutfor smooth resizing: Automatic layout animations - Use
AnimatePresence: For exit animations - Prefer springs: More natural than tween for UI
- Respect reduced motion: Use
useReducedMotionhook - Avoid animating layout thrashing: Don't animate
top,left,width - Use
layoutId: For shared element transitions - Stagger children: For list animations
Output Checklist
Every animation implementation should include:
- Appropriate animation type (simple, variants, gestures)
- Smooth transitions with proper easing
- Exit animations with AnimatePresence
- Reduced motion support
- GPU-accelerated properties only
- Spring physics for natural feel
- Staggered children for lists
- Performance tested on low-end devices


