home / skills / dylantarre / animation-principles / small-200-300ms

This skill helps you design small UI transitions (200-300ms) by applying Disney principles for clear, perceived motion in modals, cards, and navigation.

npx playbooks add skill dylantarre/animation-principles --skill small-200-300ms

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

Files (1)
SKILL.md
2.6 KB
---
name: small-200-300ms
description: Use when building small transitions between 200-300ms - modal appearances, card expansions, navigation transitions that users consciously perceive
---

# Small Transitions (200-300ms)

At 200-300ms, users **consciously perceive motion**. This duration bridges micro-interactions and full animations - ideal for UI state changes.

## Disney Principles at Small Duration

### Works Well

**Squash & Stretch**: Visible but restrained - 10-15% for playful interfaces, 5% for professional.

**Anticipation**: Brief wind-up works - 40-60ms preparation enhances 200ms main action.

**Staging**: Clear hierarchy - primary element leads, secondary follows by 50-100ms.

**Straight Ahead/Pose to Pose**: Pose to pose preferred - keyframes create polished motion.

**Follow Through**: Noticeable overshoot - 5-10% past target adds life.

**Slow In/Slow Out**: Full easing curves - both ease-in-out and custom beziers shine.

**Arcs**: Natural curves enhance - elements can travel on arcs rather than straight lines.

**Secondary Action**: One or two secondary actions - fade + scale, move + rotate.

**Timing**: 12-18 frames at 60fps. Smooth, deliberate motion.

**Exaggeration**: Moderate to pronounced - depends on brand personality.

**Solid Drawing**: Full transform combinations - translate, scale, rotate together.

**Appeal**: Conscious animation that builds brand character.

### Doesn't Work

- Feeling instant (too slow)
- Complex character animation
- Long travel distances
- Multiple sequential stages

## Easing Recommendations

```css
/* Standard smooth transition */
transition: all 250ms ease-out;

/* Modal/card appearance - confident arrival */
transition: all 250ms cubic-bezier(0.16, 1, 0.3, 1);

/* Bouncy personality */
transition: transform 280ms cubic-bezier(0.34, 1.56, 0.64, 1);

/* Professional, subtle */
transition: all 220ms cubic-bezier(0.4, 0, 0.2, 1);
```

## Best Use Cases

- Modal dialogs appearing
- Card expand/collapse
- Navigation drawer slides
- Tab content transitions
- Filter panel toggles
- Image thumbnails expanding
- Alert/notification slides

## Implementation Pattern

```css
.modal {
  opacity: 0;
  transform: translateY(20px) scale(0.95);
  transition: opacity 200ms ease-out,
              transform 250ms cubic-bezier(0.16, 1, 0.3, 1);
}

.modal.open {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.card-expand {
  transition: all 280ms cubic-bezier(0.34, 1.56, 0.64, 1);
}
```

## Key Insight

Small transitions are **seen and understood**. Users track the motion and their brain processes the spatial relationship. Use this to guide attention and communicate hierarchy.

Overview

This skill distills guidance for designing small UI transitions between 200–300ms. It focuses on motion that users consciously perceive—modal appearances, card expansions, and navigation transitions—balancing clarity, personality, and responsiveness. Use these patterns to guide attention and communicate hierarchy without slowing the experience.

How this skill works

The skill recommends timing, easing curves, and animation principles tuned for short-duration motion. It prescribes practical transforms (translate, scale, opacity) and combines Disney animation principles—like anticipation, slow in/slow out, arcs, and follow-through—to create deliberate, readable transitions. Sample CSS snippets show common implementations and suggested cubic-bezier curves.

When to use it

  • Modal dialogs and sheet appearances where users expect a clear arrival
  • Card expand/collapse interactions to emphasize content hierarchy
  • Navigation drawer or tab content transitions that must feel intentional
  • Alert and notification slide-ins that require readable timing
  • Thumbnail or image expand previews that need quick, perceivable motion

Best practices

  • Target 200–300ms total duration; use 12–18 frames at 60fps for smoothness
  • Apply brief anticipation (40–60ms) before a 200ms main action for clarity
  • Prefer pose-to-pose keyframes for polish; avoid multi-stage sequences
  • Use ease-in-out or tailored cubic-bezier curves for natural acceleration
  • Keep exaggeration moderate—brand-dependent—and add 5–10% overshoot for life
  • Limit secondary actions to one or two (e.g., fade + scale) to avoid clutter

Example use cases

  • Opening a modal: opacity + translateY with a confident cubic-bezier arrival
  • Card expansion: scale + subtle overshoot using a bouncy curve (~280ms)
  • Tab content switch: stagger primary element then follow secondary after 50–100ms
  • Notification slide: translateX with 220–250ms professional ease
  • Filter panel toggle: translate + fade using 250ms ease-out for clear state change

FAQ

Are 200–300ms transitions too slow for micro-interactions?

No—this range is consciously perceived and ideal for communicating state changes without feeling sluggish. Keep movement simple and focused.

When should I use bouncy curves versus subtle easing?

Use bouncy curves for playful, expressive brands and subtle easing for professional interfaces. Match personality but avoid excessive travel or many sequential stages.