- Skill ID
- lottiefiles/motion-design-skill/motion-design
- Publisher
- lottiefiles
- Repository
- motion-design-skill
- Installs
- 283
- Files
- 17
- License
- MIT
- Synced
- Oct 23, 2026
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
lottiefiles/motion-design-skill/motion-designInstalls these files- SKILL.md
- director/choreography.md
- director/context-adaptation.md
- director/core-philosophy.md
- director/decision-framework.md
- director/disney-principles.md
- director/emotion-mapping.md
- director/motion-personality.md
- director/narrative-structure.md
- patterns/ambient-continuous.md
- patterns/entrance-exit.md
- patterns/multi-element.md
- patterns/state-feedback.md
- reference/property-selection.md
- reference/quality-checklist.md
- reference/timing-easing-tables.md
- reference/troubleshooting.md
What this skill tells the agent
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
Use this skill in a project
Open any RiverX project, search the Skills panel for lottiefiles/motion-design-skill/motion-design, and install it in one click.
