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-animationsReview the files below or copy the command above to add this skill to your agents.
---
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.
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.
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.
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.