SPA router
<OgygiaRouter /> is rendered in this site's root layout, so navigation between
these pages is a client-side swap: the body is replaced, the head is merged, and a View
Transition plays where supported. The heading morphs across pages because it carries a shared view-transition-name. Same-route hash changes skip the transition; going to
another route with a hash (for example /playground/router/a#top) still
transitions, then scrolls.
The persist probe above the page content sits in data-ogygia-persist="router-demo-chrome" in this section's layout. Click +1, then
go to Page A and back — mount id and click count stay put. The route probe below remounts on every navigation (fresh mount id); that is the default for islands outside
persist chrome.
Link prefetch
This site sets data-sveltekit-preload-data="off" on <body> (the sidenav opts hover back in). The links below opt specific triggers back in for
the demo. The router warms its page-HTML cache on the declared trigger; a prefetched page swaps
in on click with no second request.
- Page A — warms on hover
- Page B — warms on press
- Page A (eager) — warmed immediately on load