motion-design
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-
By lottiefiles · 11,779 installs
npx skills add lottiefiles/motion-design-skill --skill motion-design
Source repository · Upstream listing
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:
1. Does it serve a functional purpose (feedback, guidance)? → Timing rules for responsiveness
2. Does it express brand personality? → Motion Personality archetypes
3. Does it tell a story or guide attention? → Disney principles + choreography
4. Is this a complex multi element scene? → 1/3 Rule + stagger patterns
Quick Reference: 8 Step Checklist
Before creating any animation:
1. Emotional target? — joy, calm, urgency, elegance
2. Motion Personality? — Playful, Premium, Corporate, Energetic
3. Primary property? — position, scale, rotation, opacity
4. Duration? — see duration table below
5. Easing family? — entrance=decelerate, exit=accelerate
6. Hero element? — apply staging principles
7. Secondary + ambient layers? — add richness
8. 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](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:
1. Signature easing : One curve for 80% of animations
2. Duration palette : 3 durations (quick / standard / slow)
3. Entrance pattern : One consistent entry style
Deep dive: [director/motion personality.md](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](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](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](reference/timing easing tables.md)
Common Patterns
Button Press (Playful)
1. Anticipation : Scale to 0.97 (50ms, ease out)
2. Squash : Scale to [1.04, 0.96] (100ms, ease in)
3. Follow through : Overshoots to 1.02, settles to 1.0 (spring, 200ms)
4. Secondary : Shadow shrinks during press, icon shifts down 2px
5. Total : ~150ms press + 200ms settle
Card Entrance (Premium)
1. Start : 20px below target, opacity 0
2. Path : Slight curve (10px X offset at midpoint)
3. Easing : ease out cubic deceleration
4. Follow through : Shadow arrives 50ms after card
5. Secondary : Content fades in 100ms after card lands
6. Staging : Other cards dim to 80%
Success State (Playful)
1. Primary : Scale pop with ease out back
2. Secondary : Checkmark draws in
3. Ambient : Subtle particle burst
4. Color : Green fill
5. Total : 300 400ms
Error Shake (Corporate)
1. Primary : Position oscillates 2 3 times, ±10 15px horizontal
2. Easing : ease in out for sharp stops
3. Color : Red tint
4. Total : 300 400ms
5. No overshoot : Errors feel firm
More patterns: [patterns/entrance exit.md](patterns/entrance exit.md) [patterns/state feedback.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](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](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
1. Never linear for spatial movement — always use easing curves (linear only for spinners, progress bars)
2. Never opacity only for important state changes — combine with position or scale
3. Never exceed 1/3 screen without intermediate keyframe
4. Always three motion layers — primary + secondary + ambient
HIGH — strongly follow
1. Match duration to element type (see tables)
2. Use directional easing (ease out entrance, ease in exit)
3. Apply Disney principles (especially anticipation, follow through)
4. Maintain consistent personality across scene
Full checklist: [reference/quality checklist.md](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](reference/troubleshooting.md)
File Reference
Philosophy (director/):
[core philosophy.md](director/core philosophy.md) — Three Pillars deep dive
[decision framework.md](director/decision framework.md) — Full decision pipeline
[disney principles.md](director/disney principles.md) — 12 principles, UI adapted
[motion personality.md](director/motion personality.md) — 4 archetypes + brand identity
[emotion mapping.md](director/emotion mapping.md) — Emotion → motion + color psychology
[choreography.md](director/choreography.md) — Multi element coordination
[narrative structure.md](director/narrative structure.md) — Micro story framework
[context adaptation.md](director/context adaptation.md) — Platform, a11y, performance
Reference (reference/):
[timing easing tables.md](reference/timing easing tables.md) — Duration + easing lookups
[property selection.md](reference/property selection.md) — Property communication guide
[troubleshooting.md](reference/troubleshooting.md) — Animation smells + fixes
[quality checklist.md](reference/quality checklist.md) — Evaluation criteria
Patterns (patterns/):
[entrance exit.md](patterns/entrance exit.md) — Entrance/exit recipes
[state feedback.md](patterns/state feedback.md) — Success, error, loading, hover
[ambient continuous.md](patterns/ambient continuous.md) — Looping, breathing, parallax
[multi element.md](patterns/multi element.md) — Stagger + choreography recipes