|
1 | 1 | --- |
2 | 2 | import type { Props } from '@astrojs/starlight/props'; |
3 | 3 | import Default from '@astrojs/starlight/components/Head.astro'; |
4 | | -import { ClientRouter } from 'astro:transitions'; |
5 | 4 | --- |
6 | 5 |
|
7 | 6 | <Default {...Astro.props}><slot /></Default> |
8 | | -<ClientRouter fallback="none" /> |
9 | | -<style is:inline> |
10 | | - .sl-markdown-content h2, |
11 | | - .sl-markdown-content .sl-heading-wrapper.level-h2 { |
12 | | - margin-top: 2.5rem !important; |
13 | | - margin-bottom: 1rem !important; |
14 | | - } |
15 | | - .sl-markdown-content h3, |
16 | | - .sl-markdown-content .sl-heading-wrapper.level-h3 { |
17 | | - margin-top: 2rem !important; |
18 | | - margin-bottom: 0.75rem !important; |
19 | | - } |
20 | | - .sl-markdown-content h4, |
21 | | - .sl-markdown-content .sl-heading-wrapper.level-h4 { |
22 | | - margin-top: 1.5rem !important; |
23 | | - margin-bottom: 0.5rem !important; |
24 | | - } |
25 | | -</style> |
26 | | -<style is:global> |
27 | | - /* Keep header stable during view transitions */ |
28 | | - header { |
29 | | - view-transition-name: site-header; |
30 | | - } |
31 | | - ::view-transition-old(site-header), |
32 | | - ::view-transition-new(site-header), |
33 | | - ::view-transition-old(site-title), |
34 | | - ::view-transition-new(site-title) { |
35 | | - animation: none; |
36 | | - mix-blend-mode: normal; |
37 | | - } |
38 | | - |
39 | | - /* Preserve sidebar scroll position across page transitions */ |
40 | | - .sidebar-content { |
41 | | - view-transition-name: sidebar; |
42 | | - } |
43 | | - ::view-transition-old(sidebar), |
44 | | - ::view-transition-new(sidebar) { |
45 | | - animation: none; |
46 | | - } |
47 | | -</style> |
48 | | -<script> |
49 | | - // Preserve sidebar scroll position across view transitions |
50 | | - document.addEventListener('astro:before-preparation', () => { |
51 | | - const sidebar = document.querySelector('.sidebar-content'); |
52 | | - if (sidebar) { |
53 | | - sessionStorage.setItem('sidebar-scroll', String(sidebar.scrollTop)); |
54 | | - } |
55 | | - }); |
56 | | - document.addEventListener('astro:after-swap', () => { |
57 | | - const sidebar = document.querySelector('.sidebar-content'); |
58 | | - const saved = sessionStorage.getItem('sidebar-scroll'); |
59 | | - if (sidebar && saved) { |
60 | | - sidebar.scrollTop = parseInt(saved, 10); |
61 | | - } |
62 | | - }); |
63 | | -</script> |
0 commit comments