
Modals Dialogs
- 344 installs
- 68 repo stars
- Updated December 30, 2025
- dylantarre/animation-principles
Animate modal open, close, and focus trap flows for confirmations, forms, and drawers so overlays feel grounded and dismiss gestures stay predictable.
About
Modal and dialog animation principles: coordinated backdrop and content timing, scale/fade choreography, mobile sheet behavior, and symmetric dismiss motion so overlays feel intentional and easy to parse.
- Scale and fade combos for overlay entry
- Backdrop timing matched to content
- Focus and scroll lock without jank
- Mobile sheet vs desktop dialog patterns
- Dismiss and cancel motion symmetry
Modals Dialogs by the numbers
- 344 all-time installs (skills.sh)
- Ranked #736 of 1,880 Design & UI/UX skills by installs in the Skillselion catalog
- Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/dylantarre/animation-principles --skill modals-dialogsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 344 |
|---|---|
| repo stars | ★ 68 |
| Last updated | December 30, 2025 |
| Repository | dylantarre/animation-principles ↗ |
What it does
Animate modal open, close, and focus trap flows for confirmations, forms, and drawers so overlays feel grounded and dismiss gestures stay predictable.
Files
Modal & Dialog Animation Principles
Apply Disney's 12 principles to modals for seamless, non-jarring transitions.
Principles Applied to Modals
1. Squash & Stretch
Modal can scale from 0.9 to 1.0 on enter, creating a subtle expansion feel. Exit reverses. Keep it subtle to maintain professionalism.
2. Anticipation
Trigger element (button) should react before modal appears. Brief scale-down of trigger, then modal emerges from that point.
3. Staging
Backdrop dims (0.5-0.7 opacity) to focus attention on modal. Background content can blur slightly (4-8px). Modal is the star.
4. Straight Ahead & Pose to Pose
Define states: hidden, entering, visible, exiting. Clear keyframes for each. Pose-to-pose ensures predictable, controllable animation.
5. Follow Through & Overlapping Action
Modal container arrives first, content fades in 50-100ms after. Close button can have slight bounce at end. Stagger form fields.
6. Ease In & Ease Out
Enter: ease-out (decelerates in). Exit: ease-in (accelerates out). cubic-bezier(0.16, 1, 0.3, 1) for smooth, bouncy enter.
7. Arcs
If modal originates from a button, arc toward center rather than straight line. Creates more organic movement path.
8. Secondary Action
While modal scales in (primary), backdrop fades (secondary), content staggers (tertiary). Each supports without competing.
9. Timing
- Backdrop fade: 200-250ms
- Modal enter: 250-350ms
- Modal exit: 200ms (faster out)
- Content stagger: 30-50ms per item
- Shake on error: 300ms
10. Exaggeration
Dramatic entrance for important alerts. Slight overshoot scale (1.02) before settling at 1.0. Error modals can shake briefly.
11. Solid Drawing
Modal shadows should match interface light source. Maintain consistent border-radius. Content should never overflow during animation.
12. Appeal
Smooth entrances feel polished. Origin-point animation feels connected. Abrupt modals feel jarring. Invest in modal transitions.
CSS Implementation
.modal-backdrop {
transition: opacity 250ms ease-out;
}
.modal {
animation: modalEnter 300ms cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes modalEnter {
from {
opacity: 0;
transform: scale(0.9) translateY(20px);
}
to {
opacity: 1;
transform: scale(1) translateY(0);
}
}Key Properties
transform: scale, translate (origin point)opacity: fade in/outbackdrop-filter: blur backgroundanimation: keyframe sequencestransform-origin: source point