home / skills / dylantarre / animation-principles / orchestrated-sequences

orchestrated-sequences skill

/skills/10-by-time-scale/orchestrated-sequences

This skill helps coordinate multi-part animation sequences by timing, easing, and staging to create cohesive, engaging UI motion.

npx playbooks add skill dylantarre/animation-principles --skill orchestrated-sequences

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
3.9 KB
---
name: orchestrated-sequences
description: Use when building multi-part animation sequences - staggered reveals, choreographed UI, coordinated motion where multiple elements work together
---

# Orchestrated Sequences

Orchestrated sequences coordinate **multiple elements across time**. Like a conductor directing an orchestra, you control when each element enters, how it moves, and how elements relate.

## Disney Principles for Orchestration

### Ensemble Coordination

**Squash & Stretch**: Unified style - all elements should share consistent elasticity. Mix bouncy and stiff looks chaotic.

**Anticipation**: Staggered preparation - lead element anticipates first, others follow in sequence.

**Staging**: Clear hierarchy - primary action leads, secondary elements support but don't compete.

**Straight Ahead/Pose to Pose**: Pose to pose mandatory - choreography requires precise timing control.

**Follow Through**: Cascading settle - elements land in sequence with overlapping follow-through.

**Slow In/Slow Out**: Shared easing family - use variations of same curve for cohesion.

**Arcs**: Coordinated paths - elements should move in complementary directions, not randomly.

**Secondary Action**: Intentional support - every element has a role in the composition.

**Timing**: The heart of orchestration - stagger delays, duration variations, tempo changes.

**Exaggeration**: Proportional emphasis - primary elements more exaggerated, supporting less.

**Solid Drawing**: Consistent dimensional logic - shared perspective, depth, scale relationships.

**Appeal**: Unified performance - the sequence should feel like one composed moment.

## Timing Strategies

```css
/* Linear stagger - equal delays */
.item:nth-child(n) {
  transition-delay: calc(var(--index) * 50ms);
}

/* Accelerating stagger - getting faster */
.item:nth-child(1) { transition-delay: 0ms; }
.item:nth-child(2) { transition-delay: 80ms; }
.item:nth-child(3) { transition-delay: 140ms; }
.item:nth-child(4) { transition-delay: 180ms; }

/* Decelerating stagger - slowing down */
.item:nth-child(1) { transition-delay: 0ms; }
.item:nth-child(2) { transition-delay: 40ms; }
.item:nth-child(3) { transition-delay: 100ms; }
.item:nth-child(4) { transition-delay: 180ms; }
```

## Easing Recommendations

```css
/* Cohesive family - same curve, different durations */
.primary { transition: all 400ms cubic-bezier(0.16, 1, 0.3, 1); }
.secondary { transition: all 350ms cubic-bezier(0.16, 1, 0.3, 1); }
.tertiary { transition: all 300ms cubic-bezier(0.16, 1, 0.3, 1); }

/* Sequence curve - smooth start, confident end */
animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
```

## Best Use Cases

- Page load sequences
- Dashboard reveals
- Card grid animations
- Navigation menu opens
- Feature section reveals
- Data visualization builds
- Onboarding step sequences
- List population animations

## Implementation Pattern

```css
/* Staggered reveal system */
.orchestrated-item {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 300ms ease-out,
              transform 400ms cubic-bezier(0.16, 1, 0.3, 1);
}

.orchestrated-item.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Apply delays via CSS custom properties or nth-child */
.orchestrated-item:nth-child(1) { transition-delay: 0ms; }
.orchestrated-item:nth-child(2) { transition-delay: 75ms; }
.orchestrated-item:nth-child(3) { transition-delay: 150ms; }
.orchestrated-item:nth-child(4) { transition-delay: 225ms; }
```

```javascript
// JS orchestration for complex sequences
const sequence = [
  { el: '.hero', delay: 0, duration: 500 },
  { el: '.title', delay: 100, duration: 400 },
  { el: '.subtitle', delay: 200, duration: 350 },
  { el: '.cta', delay: 350, duration: 400 },
];
```

## Key Insight

Orchestration is **composition in time**. Just as visual design arranges elements in space, animation orchestration arranges motion in time. The goal is a single, coherent performance, not a collection of individual animations.

Overview

This skill helps you design and implement multi-part animation sequences where multiple UI elements act together as a single choreographed performance. It packages Disney-inspired principles into practical timing, easing, and staging patterns for web and app interfaces. Use it to create cohesive, readable, and emotionally expressive sequences like staggered reveals, dashboard builds, and onboarding flows.

How this skill works

The skill inspects the sequence structure and recommends ensemble coordination: consistent squash & stretch, clear staging for hierarchy, and pose-to-pose timing control. It provides concrete stagger patterns (linear, accelerating, decelerating), easing families, and transition presets to apply via CSS or JavaScript. It also suggests follow-through, secondary action roles, and scaling of exaggeration to maintain a unified look.

When to use it

  • Page load or hero reveal sequences to guide attention
  • Dashboard or data-visualization builds where items appear over time
  • Card grids and list population animations for readable entry
  • Navigation or modal opens that require coordinated motion
  • Onboarding steps and micro-interactions that form a narrative

Best practices

  • Establish a clear primary element and let secondary elements support without competing
  • Use a single easing family with duration variations for cohesion
  • Prefer pose-to-pose choreography for precise timing control
  • Stagger with intention: linear for steady flow, accelerating for urgency, decelerating for emphasis
  • Layer follow-through and overlapping motion so elements settle in sequence, not simultaneously
  • Keep scale, perspective, and elasticity consistent across elements

Example use cases

  • Hero section: title, subtitle, image, CTA reveal with staged delays
  • Dashboard: chart bars and key stats build in an accelerating stagger
  • Card grid: sequential reveal using translateY and opacity with shared easing
  • Navigation: menu items slide and fade with decelerating stagger for emphasis
  • Onboarding: step indicators and content panels appear in pose-to-pose order

FAQ

How do I choose stagger timings?

Start with 50–90ms per item for subtle flow; increase spacing for clearer separation or decrease for faster, denser motion. Test with real content and adjust to the perceived tempo.

Should every element use the same easing?

Use the same easing family but vary durations. That keeps motion cohesive while letting primary elements feel stronger and secondary elements feel lighter.