motion-design
lottiefiles/motion-design-skill
Apply motion design principles to create emotionally-driven animations and transitions across any animation system.
What is motion-design?
This skill provides a structured framework for creating UI animations, micro-interactions, and motion sequences using Disney animation principles adapted for digital interfaces. Use it when designing buttons, transitions, loading states, scroll effects, or any motion work—regardless of whether you're using CSS, Framer Motion, GSAP, Lottie, or Spring.
- Select motion personality archetypes (Playful, Premium, Corporate, Energetic) with pre-defined timing and easing curves
- Apply three-pillar animation framework: emotional intent, visual narrative, and motion craft
- Choose appropriate durations (80ms–1200ms) and easing functions based on element type and entrance/exit direction
- Implement choreography patterns including staging, secondary motion, and the 1/3 rule for multi-element sequences
- Reference common animation patterns: button press, card entrance, success states, error shakes with step-by-step timing
- Build brand motion identity by defining signature easing, duration palette, and entrance patterns
How to install motion-design
npx skills add https://github.com/lottiefiles/motion-design-skill --skill motion-designHow to use motion-design
- 1.Identify the animation's emotional target (joy, calm, urgency, elegance) and select a motion personality archetype
- 2.Determine the primary animated property (position, scale, rotation, opacity) and any secondary properties
- 3.Select duration from the reference table based on element type and distance traveled
- 4.Choose easing function: decelerate (ease-out) for entrances, accelerate (ease-in) for exits, ease-in-out for on-screen motion
- 5.Apply staging principles: lead with hero element, add secondary motion (shadows, icons), and ambient layers (subtle pulses)
- 6.Implement choreography using the 1/3 rule: no motion travels more than 1/3 of screen without a keyframe change, and coordinate multi-element timing
- 7.Test the animation against the three pillars: does it convey emotional intent, tell a micro-story, and feel physically believable?
Use cases
- Designing button press feedback and hover states with anticipation and follow-through
- Creating card and modal entrance animations with staging and secondary motion layers
- Building loading spinners, success confirmations, and error shake feedback states
- Choreographing page transitions and scroll-triggered animations with coordinated multi-element timing
- Establishing consistent motion personality across a product or brand identity
- UI/UX designers creating interactive animations
- Frontend developers implementing motion across CSS, Framer Motion, GSAP, or Lottie
- Design systems teams establishing brand motion guidelines
- Product teams building micro-interactions and state feedback
- Developers working on complex multi-element animation sequences
motion-design FAQ
Entrances should be 30-50% longer than exits and use decelerate easing (ease-out family) because users care more about what appears. Exits use accelerate easing (ease-in family) for quick dismissals.
Playful (150-300ms, ease-out-back, 10-20% overshoot) suits illustrations and friendly interfaces. Premium (350-600ms, cubic-bezier(0.4,0,0.2,1), 0% overshoot) conveys luxury and sophistication. Corporate (200-400ms, cubic-bezier(0.2,0,0,1)) is professional and clean. Energetic (100-250ms, ease-out-expo, 15-30% overshoot) feels dynamic and bold.
Primary layer is the main action the viewer follows. Secondary layer adds supporting richness like shadows or icon shifts. Ambient layer provides background life such as subtle pulses or gradient shifts. Flat animations missing layers feel incomplete.
Use the duration table: tooltips 80-120ms, button presses 120-180ms, card enters 200-350ms, modals 300-400ms, page transitions 400-600ms. Scale duration by distance: 100px is base, 200px is 1.3x, 400px is 1.6x.
The 1/3 rule has two parts: no motion should travel more than 1/3 of the screen without a keyframe change, and with 3+ simultaneous elements, stagger timing so they don't all move at once. This prevents overwhelming the viewer and maintains visual hierarchy.
Full instructions (SKILL.md)
Source of truth, from lottiefiles/motion-design-skill.
name: motion-design description: > Applies motion design principles to create emotionally-driven, technically sound animations and transitions. Provides timing, easing, choreography, and Disney animation principles adapted for UI. Use when creating animations, transitions, micro-interactions, loading states, page transitions, scroll-triggered effects, or any motion work. Works with CSS, Framer Motion, GSAP, Lottie, Spring, or any animation system. license: MIT metadata: author: LottieFiles version: "1.0.0"
Motion Design Skill
When to Apply
Use this skill when:
- Creating UI animations (buttons, cards, modals, page transitions)
- Designing micro-interactions and feedback animations
- Building loading, success, or error states
- Animating illustrations or decorative elements
- Planning scroll-triggered or progress-based animations
- Establishing brand motion identity
- Choreographing multi-element sequences
Decision tree:
- Does it serve a functional purpose (feedback, guidance)? → Timing rules for responsiveness
- Does it express brand personality? → Motion Personality archetypes
- Does it tell a story or guide attention? → Disney principles + choreography
- Is this a complex multi-element scene? → 1/3 Rule + stagger patterns
Quick Reference: 8-Step Checklist
Before creating any animation:
- Emotional target? — joy, calm, urgency, elegance
- Motion Personality? — Playful, Premium, Corporate, Energetic
- Primary property? — position, scale, rotation, opacity
- Duration? — see duration table below
- Easing family? — entrance=decelerate, exit=accelerate
- Hero element? — apply staging principles
- Secondary + ambient layers? — add richness
- 1/3 rules? — motion distance, simultaneous elements
Three Pillars (CRITICAL)
Every animation must satisfy three pillars before any technical decisions:
| Pillar | Question | Drives |
|---|---|---|
| Emotional Intent | What should the viewer FEEL? | Easing, timing, amplitude |
| Visual Narrative | What's the micro-story? | Setup → Action → Resolution |
| Motion Craft | How do we make it believable? | Physics, secondary motion, paths |
Three motion layers (flat animation = missing layers):
- Primary: Main action the viewer follows
- Secondary: Supporting richness (shadows, icons shifting)
- Ambient: Background life (gradients, subtle pulses)
Deep dive: director/core-philosophy.md
Motion Personality
Select ONE archetype per project. Apply consistently.
| Archetype | Duration | Easing | Overshoot | Keywords |
|---|---|---|---|---|
| Playful | 150-300ms | ease-out-back | 10-20% | fun, whimsical, bouncy, cute |
| Premium | 350-600ms | cubic-bezier(0.4,0,0.2,1) | 0% | elegant, minimal, luxury, sophisticated |
| Corporate | 200-400ms | cubic-bezier(0.2,0,0,1) | 0-3% | clean, professional, business, dashboard |
| Energetic | 100-250ms | ease-out-expo | 15-30% | dynamic, energetic, bold, exciting |
Default: Corporate for UI, Playful for illustrations.
Brand Motion Identity — define three constants:
- Signature easing: One curve for 80% of animations
- Duration palette: 3 durations (quick / standard / slow)
- Entrance pattern: One consistent entry style
Deep dive: director/motion-personality.md
Property Selection
| Effect Goal | Primary Property | Secondary Properties |
|---|---|---|
| Entrance/Exit | position | opacity, scale |
| Emphasis/Attention | scale | rotation (subtle), opacity pulse |
| State Change | opacity, color | scale (press feedback) |
| Direction/Flow | position | rotation (follow path) |
| Depth/3D Feel | scale + shadow | position (parallax) |
| Loading/Progress | rotation (spinner) | scale, opacity pulse |
| Success | scale (pop) | color, rotation (checkmark draw) |
| Error/Alert | position (shake) | color, rotation (wobble) |
Simplicity threshold: Use the minimum properties needed. One = direct. Two = polished. Three+ = potentially overwhelming.
Deep dive: reference/property-selection.md
Duration Table
| Element Type | Duration | Rationale |
|---|---|---|
| Tooltip / micro-feedback | 80-120ms | Must feel instant |
| Button press / toggle | 120-180ms | Responsive feedback |
| Icon transition | 150-250ms | Clear state change |
| Card enter / exit | 200-350ms | Spatial awareness |
| Modal / dialog | 300-400ms | Focus shift |
| Page transition | 400-600ms | Context switch |
| Dramatic reveal | 600-1200ms | Theatrical build |
Distance scales duration: 100px = base. 200px = 1.3x. 400px = 1.6x.
Enter > Exit: Entrances 30-50% longer than exits. Users care about what appears.
Interactive feedback:
- Hover: <100ms
- Press: <150ms
- Release/settle: 200-300ms
- Error shake: 300-400ms (2-3 oscillations)
Deep dive: reference/timing-easing-tables.md
Easing Selection
Directional rules:
- Entrance → decelerate (fast start, gentle landing): ease-out family
- Exit → accelerate (gentle start, fast departure): ease-in family
- On-screen → smooth both ends: ease-in-out family
- Looping ambient → seamless: sine-based ease-in-out
Industry standards:
| Standard | Cubic Bezier | Use For |
|---|---|---|
| Material Design 3 | (0.2, 0, 0, 1) | Default on-screen |
| MD3 Emphasized | (0.05, 0.7, 0.1, 1) | Entrances, attention |
| MD3 Accelerate | (0.3, 0, 1, 1) | Exits, dismissals |
| Apple HIG | (0.25, 0.1, 0.25, 1) | Standard iOS |
| Snappy UI | (0.2, 0, 0, 1) | Fast, decisive |
| Gentle float | (0.4, 0, 0.2, 1) | Ambient, background |
| Bounce settle | (0.175, 0.885, 0.32, 1.275) | Overshoot, playful |
Material-based easing:
| Material | Duration Scale | Overshoot |
|---|---|---|
| Rigid (metal, stone) | 1.2x | 0% |
| Elastic (rubber, gel) | 0.8x | 15-25% |
| Fluid (water, paint) | 1.5x | 5% |
| Paper (cards, sheets) | 1.0x | 3-5% |
| Gas (smoke, fog) | 2.0x | 0% |
| Glass (brittle) | 0.9x | 0% |
Deep dive: reference/timing-easing-tables.md
Common Patterns
Button Press (Playful)
- Anticipation: Scale to 0.97 (50ms, ease-out)
- Squash: Scale to [1.04, 0.96] (100ms, ease-in)
- Follow through: Overshoots to 1.02, settles to 1.0 (spring, 200ms)
- Secondary: Shadow shrinks during press, icon shifts down 2px
- Total: ~150ms press + 200ms settle
Card Entrance (Premium)
- Start: 20px below target, opacity 0
- Path: Slight curve (10px X offset at midpoint)
- Easing: ease-out-cubic deceleration
- Follow through: Shadow arrives 50ms after card
- Secondary: Content fades in 100ms after card lands
- Staging: Other cards dim to 80%
Success State (Playful)
- Primary: Scale pop with ease-out-back
- Secondary: Checkmark draws in
- Ambient: Subtle particle burst
- Color: Green fill
- Total: 300-400ms
Error Shake (Corporate)
- Primary: Position oscillates 2-3 times, ±10-15px horizontal
- Easing: ease-in-out for sharp stops
- Color: Red tint
- Total: 300-400ms
- No overshoot: Errors feel firm
More patterns: patterns/entrance-exit.md | patterns/state-feedback.md
Choreography Essentials
Coordinated entry:
- Lead with the hero — primary element enters first or most prominently
- Spatial consistency — all elements enter from same direction
- Counter-motion — hero moves right → ambient moves left at 20-30% speed
1/3 Rule (distance): No motion travels more than 1/3 of screen without a keyframe change.
1/3 Rule (elements): With 3+ elements, no more than 1/3 in active motion simultaneously.
Stagger budgets:
| Pattern | Delay | Total Budget | Use Case |
|---|---|---|---|
| Micro cascade | 20-40ms | <200ms | List items, grid cells |
| Standard | 50-100ms | <400ms | Cards, panels, nav |
| Dramatic | 100-200ms | <600ms | Hero sections |
| Wave | 30-60ms | <500ms | Data visualizations |
Critical: Total stagger must stay under 500ms.
Deep dive: director/choreography.md
Emotion-to-Motion Map
| Emotion | Character | Path | Easing | Duration |
|---|---|---|---|---|
| Joy | Bouncy, arcs | Curved, upward | ease-out-back | 200-400ms |
| Calm | Smooth, flowing | Gentle curves | sine ease-in-out | 500-1000ms |
| Urgency | Sharp, fast | Straight lines | ease-out | 100-200ms |
| Sadness | Slow, downward | Drooping curves | cubic ease-in-out | 600-1200ms |
| Surprise | Sudden, expanding | Radial outward | ease-out-expo | 150-300ms |
| Elegance | Slow, controlled | Long arcs | (0.4,0,0.2,1) | 400-700ms |
| Playfulness | Bouncy, irregular | Arcs, squiggly | ease-out-back | 200-350ms |
Path as language: Angular = tense. Curved = friendly. Spiral = whimsical. Diagonal = purposeful. Vertical = growth/weight. Horizontal = progress.
Deep dive: director/emotion-mapping.md
Weight Classification
| Weight | Examples | Duration | Overshoot | Easing |
|---|---|---|---|---|
| Heavy | Modals, overlays | 300-500ms | 0% | Gentle, high damping |
| Medium | Cards, panels | 200-350ms | 3-5% | Moderate |
| Light | Tooltips, badges, icons | 80-200ms | 5-15% | Responsive |
Quality Rules
CRITICAL — never break
- Never linear for spatial movement — always use easing curves (linear only for spinners, progress bars)
- Never opacity-only for important state changes — combine with position or scale
- Never exceed 1/3 screen without intermediate keyframe
- Always three motion layers — primary + secondary + ambient
HIGH — strongly follow
- Match duration to element type (see tables)
- Use directional easing (ease-out entrance, ease-in exit)
- Apply Disney principles (especially anticipation, follow-through)
- Maintain consistent personality across scene
Full checklist: reference/quality-checklist.md
Troubleshooting Quick Reference
| Problem | Likely Cause | Fix |
|---|---|---|
| Looks robotic | Linear easing or no arcs | Add easing curves + arc paths |
| Feels too slow | Duration too long for element type | Check duration table, use ease-out |
| Feels cheap/flat | Missing secondary + ambient | Add shadow motion + background life |
| Too distracting | Too many elements moving | Apply 1/3 rule, reduce amplitude |
| No personality | Generic easing everywhere | Apply personality archetype consistently |
Deep dive: reference/troubleshooting.md
File Reference
Philosophy (director/):
- core-philosophy.md — Three Pillars deep dive
- decision-framework.md — Full decision pipeline
- disney-principles.md — 12 principles, UI-adapted
- motion-personality.md — 4 archetypes + brand identity
- emotion-mapping.md — Emotion → motion + color psychology
- choreography.md — Multi-element coordination
- narrative-structure.md — Micro-story framework
- context-adaptation.md — Platform, a11y, performance
Reference (reference/):
- timing-easing-tables.md — Duration + easing lookups
- property-selection.md — Property communication guide
- troubleshooting.md — Animation smells + fixes
- quality-checklist.md — Evaluation criteria
Patterns (patterns/):
- entrance-exit.md — Entrance/exit recipes
- state-feedback.md — Success, error, loading, hover
- ambient-continuous.md — Looping, breathing, parallax
- multi-element.md — Stagger + choreography recipes
Related skills
More from lottiefiles/motion-design-skill and the wider catalog.

find-skills
Discover and install agent skills to extend your coding agent's capabilities on demand

frontend-design
Build visually distinctive UI with opinionated aesthetic direction, typography, and layout choices that avoid templated defaults.

vercel-react-best-practices
70 React/Next.js performance rules from Vercel Engineering, prioritized by impact for writing, reviewing, and refactoring code.

agent-browser
Fast browser automation CLI for AI agents — navigate, click, scrape, screenshot, and test via Chrome CDP

web-design-guidelines
Review UI code against Web Interface Guidelines for accessibility, UX, and design best practices

finetuning
Fine-tune models on Azure AI Foundry with SFT, DPO, or RFT training methods.