home / skills / dylantarre / animation-principles / exit-animations

This skill helps you implement polished exit animations using Disney principles, improving dismissals, modals, toasts, and page transitions.

npx playbooks add skill dylantarre/animation-principles --skill exit-animations

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

Files (1)
SKILL.md
2.6 KB
---
name: exit-animations
description: Use when elements need to leave the screen - closing modals, dismissing notifications, removing items, page transitions out, or any "leaving view" animation.
---

# Exit Animations

Apply Disney's 12 principles when removing elements from view.

## Principle Application

**Squash & Stretch**: Scale down to 95-98% on exit. Element compresses slightly as it departs.

**Anticipation**: Brief pause or micro-movement before departure. A 50ms hesitation acknowledges the exit.

**Staging**: Exit toward logical destinations. Deleted items fall down, dismissed modals shrink to origin, sidebars return to their edge.

**Straight Ahead vs Pose-to-Pose**: Pose-to-pose with clear visible→invisible states. Plan the exit trajectory.

**Follow Through & Overlapping**: Content exits before container. Text fades 50ms before the card collapses.

**Slow In/Slow Out**: Use ease-in for exits. Gentle start, accelerating departure: `cubic-bezier(0.4, 0, 1, 1)`.

**Arcs**: Exit on curves, not straight lines. Dismissed notifications arc upward-and-out.

**Secondary Action**: Combine opacity fade with directional movement. Pure fades feel like errors.

**Timing**:
- Exits should be 20-30% faster than entrances
- Quick exits: 100-150ms (tooltips, dropdowns)
- Standard exits: 150-200ms (modals, toasts)
- Graceful exits: 200-300ms (page transitions)

**Exaggeration**: Scale to 0.9 for dramatic departure, 0.97 for subtle dismissal.

**Solid Drawing**: Maintain spatial logic. Elements should exit the way they came or toward where they "belong."

**Appeal**: Exits confirm user intent. Make dismissals feel decisive, not abrupt.

## Timing Recommendations

| Element Type | Duration | Easing | Notes |
|-------------|----------|--------|-------|
| Tooltip | 100ms | ease-in | Faster than entrance |
| Dropdown | 150ms | ease-in | Collapse upward |
| Toast | 150ms | ease-in | Slide to origin |
| Modal | 200ms | ease-in | Content first, overlay last |
| Deleted Item | 200ms | ease-in | Collapse height after fade |
| Page | 250ms | ease-in | Current page exits, then new enters |

## Implementation Pattern

```css
.exiting {
  animation: exit 200ms cubic-bezier(0.4, 0, 1, 1) forwards;
}

@keyframes exit {
  from {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
  to {
    opacity: 0;
    transform: translateY(-10px) scale(0.98);
  }
}
```

## Collapse Pattern

For removed list items:
1. Fade out content (150ms)
2. Collapse height (150ms, starts at 100ms)
3. Remove from DOM after animation completes

Total perceived time: 250ms. Always use `will-change: opacity, transform` for smooth exits.

Overview

This skill packages Disney’s 12 animation principles into a practical guide for exit animations. It focuses on making elements leave the screen with clarity, appeal, and predictable timing so dismissals feel deliberate and not jarring.

How this skill works

It prescribes concrete rules and patterns for element departures: subtle squash/scale, brief anticipation, staged trajectories, and combined motion+opacity. Timings and easings are recommended per element type, with CSS examples and a collapse pattern for list items to ensure smooth DOM removal.

When to use it

  • Closing modals, dialogs, and overlays
  • Dismissing toasts, notifications, and alerts
  • Removing list items or deleted content
  • Page transitions where the current view exits
  • Collapsing dropdowns, tooltips, and sidebars

Best practices

  • Make exits 20–30% faster than entrances to feel responsive
  • Combine directional movement with opacity; avoid pure fades for core actions
  • Use ease-in (cubic-bezier(0.4, 0, 1, 1)) and keep durations within recommended ranges
  • Stagger content vs container: fade content slightly before collapsing the parent
  • Use will-change: opacity, transform and collapse patterns to avoid layout jank

Example use cases

  • Tooltip: 100ms ease-in with a small upward offset for quick disappearance
  • Toast/notification: 150ms slide toward its origin with a 50ms text fade lead
  • Modal: 200ms content exit then overlay fade; content scales to ~0.98
  • Deleted list item: fade (150ms) then height collapse (150ms, delayed 100ms) before DOM removal
  • Page transition out: 200–300ms graceful exit on an arc or downward slide

FAQ

Should exit animations be faster than entrances?

Yes. Exits should feel snappier—about 20–30% faster—to confirm the action without lingering.

Is it ok to only fade elements out?

Pure fades can feel like errors. Combine opacity with subtle directional movement or scale for clearer intent.