UNPKG

astro-vtbot

Version:

The 👜 Bag of Tricks ✨ for Astro's View Transitions

71 lines (64 loc) • 1.33 kB
/* Enable cross document view transitions */ @media (prefers-reduced-motion: no-preference) { @view-transition { navigation: auto; } } /* Define view transition groups */ main { view-transition-name: main; background-color: var(--sl-color-bg); } h1 { view-transition-name: title; width: fit-content; } nav.sidebar [aria-current='page'] { view-transition-name: current-page; } /* Animate the page Title */ ::view-transition-old(title), ::view-transition-new(title) { height: 100%; width: auto; } ::view-transition-group(title) { overflow: clip; } /* Animate the main area */ ::view-transition-old(main), ::view-transition-new(main) { animation-name: none; } :active-view-transition-type(forward)::view-transition-new(main) { animation-name: main-mask-forward; } :active-view-transition-type(backward)::view-transition-new(main) { animation-name: main-mask-backward; } ::view-transition-group(main) { animation-timing-function: linear; } @keyframes main-mask-forward { 0% { clip-path: inset(0 0 0 100%); } 100% { clip-path: inset(0); } } @keyframes main-mask-backward { 0% { clip-path: inset(0 100% 0 0); } 100% { clip-path: inset(0); } } /* Fix stacking order */ header.header { view-transition-name: header; } mobile-starlight-toc nav { view-transition-name: mobile-starlight-toc-nav; }