Page Transitions

dylantarre/animation-principles/skills/01-by-domain/page-transitions

by dylantarre83597134ba8fNo license99 starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated 9 months ago

Use when implementing route changes, view transitions, modal opens/closes, or navigation animation in web and mobile applications.

AI-generated overview

Applies Disney's 12 animation principles to web and mobile page transitions, navigation, and modal animations.

What it does
This skill guides an agent in implementing route changes, view transitions, and modal open/close animations using Disney's 12 animation principles. It maps each principle to concrete transition behavior, such as squash and stretch, anticipation, staging, and timing. It also provides CSS and JavaScript patterns for crossfade, slide, and shared-element transitions, plus timing and navigation reference tables. It is instruction-only and produces no files.
When to use it
Use it when adding or refining navigation animation in a web or mobile application, including route changes, view transitions, modal opens and closes, and tab or back navigation. It is also useful when choosing transition durations, easing curves, or direction conventions for hierarchical navigation.
Requirements
No scripts, packages, or credentials are required; it is instructions only. The agent needs a web or mobile codebase where transitions are implemented, and the patterns reference CSS transitions and the browser View Transitions API.

Page Transition Animation

Apply Disney's 12 animation principles to route changes, view transitions, and navigation patterns.

Quick Reference

PrinciplePage Transition Implementation
Squash & StretchEntering page elastic effect
AnticipationExit animation before enter
StagingHero elements bridge views
Straight Ahead / Pose to PoseShared element vs crossfade
Follow Through / OverlappingContent settles after nav
Slow In / Slow OutAsymmetric enter/exit easing
ArcSlide transitions with curve
Secondary ActionBackground, nav state changes
Timing200-500ms total transition
ExaggerationReserved for emphasis moments
Solid DrawingConsistent spatial model
AppealSmooth, oriented navigation

Principle Applications

Squash & Stretch: Incoming pages can have subtle elastic settle. Modal sheets bounce slightly on full open. Pull-to-navigate stretches before triggering.

Anticipation: Current page begins exit before new page enters. Slight fade or scale prepares for change. Navigation indicator updates before page swaps.

Staging: Shared/hero elements maintain context across views. Common elements (nav, footer) stay stable. New content area receives transition focus.

Straight Ahead vs Pose to Pose: Shared element transitions morph continuously (straight ahead). Crossfades swap between discrete states (pose to pose). Choose based on content relationship.

Follow Through & Overlapping: Page content settles after initial position. Staggered content entry—header, then body, then footer. Images load with subtle fade after container.

Slow In / Slow Out: Exit: ease-in (accelerate away). Enter: ease-out (decelerate in). Combined: ease-in-out for shared elements. Never linear—feels broken.

Arc: Slide transitions can curve slightly. Stack navigation implies z-depth. Circular reveals expand from trigger point.

Secondary Action: Header updates title during transition. Bottom nav indicator moves. Background color shifts. Scroll position resets with transition.

Timing: Quick transitions: 200-300ms. Standard: 300-400ms. Complex: 400-500ms. Modal/sheet: 250-350ms. Back navigation often faster than forward.

Exaggeration: Save exaggeration for key moments—onboarding, achievement. Regular navigation should be smooth, not theatrical. Users navigate frequently.

Solid Drawing: Maintain consistent spatial metaphor. If pages stack, maintain z-order. If pages slide, direction should be consistent. Users build mental model from transitions.

Appeal: Transitions should feel helpful, not impressive. Fast, smooth, oriented. Users should understand where they came from and went to.

Transition Patterns

Crossfade (Default)

css
.page-exit {    opacity: 1;}.page-exit-active {    opacity: 0;    transition: opacity 200ms ease-in;}.page-enter {    opacity: 0;}.page-enter-active {    opacity: 1;    transition: opacity 200ms ease-out;}

Slide (Hierarchical)

css
/* Forward navigation */.page-enter {    transform: translateX(100%);}.page-enter-active {    transform: translateX(0);    transition: transform 300ms ease-out;}.page-exit-active {    transform: translateX(-30%);    transition: transform 300ms ease-in;}
/* Back navigation - reversed */.page-enter {    transform: translateX(-30%);}.page-exit-active {    transform: translateX(100%);}

Shared Element (Hero)

javascript
// View Transitions APIdocument.startViewTransition(() => {    updateDOM();});
// CSS for specific element.hero-image {    view-transition-name: hero;}::view-transition-old(hero),::view-transition-new(hero) {    animation-duration: 300ms;}

Timing Reference

Transition TypeDurationExitEnter
Crossfade200-300msease-inease-out
Slide forward300-400msease-inease-out
Slide back250-350msease-inease-out
Modal open250-350ms—ease-out
Modal close200-300msease-in—
Shared element300-400msn/aease-in-out
Tab switch150-200msinstantease-out

Navigation Patterns

PatternTransitionDirection
Drill-down (list→detail)Slide left / shared elementRight = forward
Tab barFade / slideHorizontal
Bottom sheetSlide upVertical
ModalScale + fadeZ-axis
Back buttonReverse of forwardLeft = back

Performance

  1. Use transform and opacity only
  2. Hardware acceleration: will-change: transform
  3. Reduce motion: instant transitions
  4. Test on slow devices—transitions must not block
  5. View Transitions API: native performance

Source and attribution

Source:dylantarre/animation-principlesinskills/01-by-domain/page-transitionsat commit8359713

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal