Page Transitions

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

作者 dylantarre83597134ba8f無授權條款99 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫9 個月前更新

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

AI 產生的概覽

將迪士尼十二項動畫原則套用於網頁與行動裝置的頁面切換、導覽與彈窗動畫。

功能
此技能引導代理使用迪士尼十二項動畫原則實作路由切換、檢視轉場以及彈窗開啟與關閉動畫。它將每項原則對應到具體的轉場行為,例如擠壓拉伸、預備動作、舞台調度與時間控制。它也提供淡入淡出、滑動與共享元素轉場的 CSS 與 JavaScript 模式,以及時間與導覽參考表。此技能僅包含說明,不會產生檔案。
適用情境
適用於為網頁或行動應用程式加入或調整導覽動畫時,包括路由切換、檢視轉場、彈窗開啟與關閉,以及分頁或返回導覽。也適合在選擇轉場時間、緩動曲線或階層式導覽方向慣例時使用。
執行需求
不需要指令碼、套件或憑證,僅包含說明。代理需要有一個實作轉場效果的網頁或行動端程式碼庫,其中的模式涉及 CSS 轉場與瀏覽器 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

來源與署名

來源:dylantarre/animation-principles位於skills/01-by-domain/page-transitions提交8359713

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架