@janga/norna 0.7.17 → 0.7.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (533) hide show
  1. package/README.md +32 -13
  2. package/astro.config.mjs +22 -0
  3. package/bin/norna-cli.mjs +7 -1
  4. package/package.json +46 -12
  5. package/schemas/category.schema.json +20 -0
  6. package/schemas/config.schema.json +55 -4
  7. package/schemas/content-frontmatter.schema.json +5 -5
  8. package/schemas/manifest.json +4 -2
  9. package/schemas/page-theme.schema.json +192 -0
  10. package/schemas/sitewide-content.schema.json +18 -18
  11. package/schemas/theme.schema.json +364 -226
  12. package/scripts/add-site-node.mjs +251 -0
  13. package/scripts/check-config.mjs +12 -3
  14. package/scripts/deploy-site.mjs +6 -9
  15. package/scripts/generate-images.mjs +18 -29
  16. package/scripts/generate-schemas.mjs +7 -1
  17. package/scripts/init-site.mjs +35 -0
  18. package/scripts/lib/astro-command.mjs +14 -9
  19. package/scripts/lib/editor-language-service.mjs +28 -191
  20. package/scripts/lib/heading-ids.mjs +3 -1
  21. package/scripts/lib/navigation-model.mjs +23 -17
  22. package/scripts/lib/norna-markdown-blocks.mjs +64 -145
  23. package/scripts/lib/norna-markdown-render-plugin.mjs +37 -0
  24. package/scripts/lib/object.mjs +28 -0
  25. package/scripts/lib/page-markdown.mjs +282 -0
  26. package/scripts/lib/page-model.mjs +26 -7
  27. package/scripts/lib/presentation-contract.mjs +266 -0
  28. package/scripts/lib/presentation-palette-metadata.mjs +51 -0
  29. package/scripts/lib/presentation.mjs +548 -93
  30. package/scripts/lib/project-config.mjs +73 -16
  31. package/scripts/lib/schema-definitions.mjs +89 -21
  32. package/scripts/lib/schema-editor-metadata.mjs +166 -33
  33. package/scripts/lib/schema-value-definitions.mjs +32 -4
  34. package/scripts/lib/site-content.mjs +33 -223
  35. package/scripts/lib/site-conventions.mjs +1 -0
  36. package/scripts/lib/site-paths.mjs +11 -6
  37. package/scripts/lib/site-structure.mjs +189 -0
  38. package/scripts/lib/theme-config.mjs +3 -2
  39. package/scripts/lib/theme-presets.mjs +105 -101
  40. package/scripts/lib/theme-profiles.mjs +221 -0
  41. package/scripts/lib/typography.mjs +220 -35
  42. package/scripts/lib/yaml-config.mjs +46 -6
  43. package/scripts/lib/yaml-indentation.mjs +86 -0
  44. package/scripts/show-typography.mjs +3 -36
  45. package/scripts/sync-content-sections.mjs +88 -79
  46. package/src/components/DisplaySettings.astro +107 -0
  47. package/src/components/ImageCarousel.astro +34 -13
  48. package/src/components/NavigationPageTree.astro +154 -34
  49. package/src/components/PageContentsLinks.astro +40 -0
  50. package/src/components/SectionNavigationScript.astro +68 -7
  51. package/src/components/SiteBreadcrumbs.astro +24 -18
  52. package/src/components/SiteNavigation.astro +130 -46
  53. package/src/components/SitePage.astro +65 -55
  54. package/src/components/SiteSection.astro +37 -198
  55. package/src/components/SiteTreeNavigation.astro +36 -0
  56. package/src/components/TreeNavigationScript.astro +83 -0
  57. package/src/content.config.ts +2 -8
  58. package/src/layouts/BaseLayout.astro +52 -2
  59. package/src/lib/generatedImages.ts +0 -7
  60. package/src/lib/pageThemes.ts +11 -9
  61. package/src/lib/readerPreferencesScript.mjs +141 -0
  62. package/src/lib/sectionContent.ts +120 -206
  63. package/src/lib/siteNavigation.ts +38 -19
  64. package/src/lib/sitePages.ts +115 -33
  65. package/src/pages/[...slug].astro +2 -2
  66. package/src/pages/index.astro +2 -1
  67. package/src/styles/global.css +1110 -279
  68. package/starters/basic/README.md +8 -8
  69. package/starters/basic/site/theme.yaml +1 -105
  70. package/docs/README.md +0 -135
  71. package/docs/assets/norna-dog-shelter.jpg +0 -0
  72. package/docs/commands.md +0 -189
  73. package/docs/configuration.md +0 -119
  74. package/docs/content.md +0 -342
  75. package/docs/design/command-organization.md +0 -414
  76. package/docs/design/navigation-and-theme-plan.md +0 -115
  77. package/docs/design/norna-diagram-design.md +0 -159
  78. package/docs/design/site-examples-structure.md +0 -115
  79. package/docs/engine-development.md +0 -218
  80. package/docs/getting-started.md +0 -206
  81. package/docs/how-to/embedded-site.md +0 -35
  82. package/docs/images-and-metadata.md +0 -186
  83. package/docs/local-development.md +0 -82
  84. package/docs/pages.md +0 -134
  85. package/docs/public-files.md +0 -118
  86. package/docs/publishing.md +0 -117
  87. package/docs/requirements.md +0 -54
  88. package/docs/site-files.md +0 -145
  89. package/docs/sitewide-content.md +0 -73
  90. package/docs/theme.md +0 -271
  91. package/docs/typography.md +0 -180
  92. package/examples/README.md +0 -43
  93. package/examples/complete-sites/dog-shelter-multi-page/.astro/collections/site.schema.json +0 -35
  94. package/examples/complete-sites/dog-shelter-multi-page/.astro/collections/sitewide.schema.json +0 -97
  95. package/examples/complete-sites/dog-shelter-multi-page/.astro/collections/theme.schema.json +0 -852
  96. package/examples/complete-sites/dog-shelter-multi-page/.astro/content-assets.mjs +0 -4
  97. package/examples/complete-sites/dog-shelter-multi-page/.astro/content-modules.mjs +0 -1
  98. package/examples/complete-sites/dog-shelter-multi-page/.astro/content.d.ts +0 -183
  99. package/examples/complete-sites/dog-shelter-multi-page/.astro/data-store.json +0 -1
  100. package/examples/complete-sites/dog-shelter-multi-page/.astro/dev-local.json +0 -8
  101. package/examples/complete-sites/dog-shelter-multi-page/.astro/dev.json +0 -13
  102. package/examples/complete-sites/dog-shelter-multi-page/.astro/dev.log +0 -36
  103. package/examples/complete-sites/dog-shelter-multi-page/.astro/settings.json +0 -5
  104. package/examples/complete-sites/dog-shelter-multi-page/.astro/types.d.ts +0 -2
  105. package/examples/complete-sites/dog-shelter-multi-page/README.md +0 -24
  106. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/_metadata.json +0 -74
  107. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro-B3JHJyiv.js +0 -434
  108. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro-B3JHJyiv.js.map +0 -1
  109. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_aria-query.js +0 -6390
  110. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -1
  111. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_axobject-query.js +0 -2702
  112. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -1
  113. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_html-escaper.js +0 -65
  114. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -1
  115. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -455
  116. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -1
  117. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/audit-C3SVr7dT.js +0 -1534
  118. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/audit-C3SVr7dT.js.map +0 -1
  119. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/highlight-BLtvqtzO.js +0 -48
  120. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +0 -1
  121. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/icons-C92i61-2.js +0 -42
  122. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/icons-C92i61-2.js.map +0 -1
  123. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/package.json +0 -3
  124. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -4
  125. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/settings-v5GgKks_.js +0 -190
  126. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/settings-v5GgKks_.js.map +0 -1
  127. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/toolbar-BFvJVp26.js +0 -458
  128. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/toolbar-BFvJVp26.js.map +0 -1
  129. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/ui-library-Cd35oAvo.js +0 -1016
  130. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/ui-library-Cd35oAvo.js.map +0 -1
  131. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/window-vo3A6TMn.js +0 -32
  132. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/window-vo3A6TMn.js.map +0 -1
  133. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/xray-DwhzGckb.js +0 -111
  134. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/xray-DwhzGckb.js.map +0 -1
  135. package/examples/complete-sites/dog-shelter-multi-page/site/.norna/generated-images.json +0 -98
  136. package/examples/complete-sites/dog-shelter-multi-page/site/config.yaml +0 -1
  137. package/examples/complete-sites/dog-shelter-multi-page/site/content.md +0 -23
  138. package/examples/complete-sites/dog-shelter-multi-page/site/images/shelter-dog.jpg +0 -0
  139. package/examples/complete-sites/dog-shelter-multi-page/site/pages/010-dogs/content.md +0 -21
  140. package/examples/complete-sites/dog-shelter-multi-page/site/pages/010-dogs/images/rex.jpg +0 -0
  141. package/examples/complete-sites/dog-shelter-multi-page/site/pages/010-dogs/images/rover.jpg +0 -0
  142. package/examples/complete-sites/dog-shelter-multi-page/site/pages/020-adopt/content.md +0 -22
  143. package/examples/complete-sites/dog-shelter-multi-page/site/pages/020-adopt/images/adoption-dog.jpg +0 -0
  144. package/examples/complete-sites/dog-shelter-multi-page/site/public/favicon.svg +0 -10
  145. package/examples/complete-sites/dog-shelter-multi-page/site/public/logo.svg +0 -9
  146. package/examples/complete-sites/dog-shelter-multi-page/site/public/robots.txt +0 -2
  147. package/examples/complete-sites/dog-shelter-multi-page/site/sitewide-content.yaml +0 -4
  148. package/examples/complete-sites/dog-shelter-multi-page/site/theme.yaml +0 -1
  149. package/examples/complete-sites/dog-shelter-single-page/.astro/collections/site.schema.json +0 -35
  150. package/examples/complete-sites/dog-shelter-single-page/.astro/collections/sitewide.schema.json +0 -97
  151. package/examples/complete-sites/dog-shelter-single-page/.astro/collections/theme.schema.json +0 -852
  152. package/examples/complete-sites/dog-shelter-single-page/.astro/content-assets.mjs +0 -4
  153. package/examples/complete-sites/dog-shelter-single-page/.astro/content-modules.mjs +0 -1
  154. package/examples/complete-sites/dog-shelter-single-page/.astro/content.d.ts +0 -183
  155. package/examples/complete-sites/dog-shelter-single-page/.astro/data-store.json +0 -1
  156. package/examples/complete-sites/dog-shelter-single-page/.astro/dev-local.json +0 -8
  157. package/examples/complete-sites/dog-shelter-single-page/.astro/dev.json +0 -13
  158. package/examples/complete-sites/dog-shelter-single-page/.astro/dev.log +0 -18
  159. package/examples/complete-sites/dog-shelter-single-page/.astro/settings.json +0 -5
  160. package/examples/complete-sites/dog-shelter-single-page/.astro/types.d.ts +0 -2
  161. package/examples/complete-sites/dog-shelter-single-page/README.md +0 -24
  162. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/_metadata.json +0 -74
  163. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro-B3JHJyiv.js +0 -434
  164. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro-B3JHJyiv.js.map +0 -1
  165. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_aria-query.js +0 -6390
  166. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -1
  167. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_axobject-query.js +0 -2702
  168. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -1
  169. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_html-escaper.js +0 -65
  170. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -1
  171. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -455
  172. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -1
  173. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/audit-C3SVr7dT.js +0 -1534
  174. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/audit-C3SVr7dT.js.map +0 -1
  175. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/highlight-BLtvqtzO.js +0 -48
  176. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +0 -1
  177. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/icons-C92i61-2.js +0 -42
  178. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/icons-C92i61-2.js.map +0 -1
  179. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/package.json +0 -3
  180. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -4
  181. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/settings-v5GgKks_.js +0 -190
  182. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/settings-v5GgKks_.js.map +0 -1
  183. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/toolbar-BFvJVp26.js +0 -458
  184. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/toolbar-BFvJVp26.js.map +0 -1
  185. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/ui-library-Cd35oAvo.js +0 -1016
  186. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/ui-library-Cd35oAvo.js.map +0 -1
  187. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/window-vo3A6TMn.js +0 -32
  188. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/window-vo3A6TMn.js.map +0 -1
  189. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/xray-DwhzGckb.js +0 -111
  190. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/xray-DwhzGckb.js.map +0 -1
  191. package/examples/complete-sites/dog-shelter-single-page/site/.norna/generated-images.json +0 -50
  192. package/examples/complete-sites/dog-shelter-single-page/site/config.yaml +0 -1
  193. package/examples/complete-sites/dog-shelter-single-page/site/content.md +0 -37
  194. package/examples/complete-sites/dog-shelter-single-page/site/images/foster-dog.jpg +0 -0
  195. package/examples/complete-sites/dog-shelter-single-page/site/images/rescue-dog.jpg +0 -0
  196. package/examples/complete-sites/dog-shelter-single-page/site/public/favicon.svg +0 -10
  197. package/examples/complete-sites/dog-shelter-single-page/site/public/logo.svg +0 -9
  198. package/examples/complete-sites/dog-shelter-single-page/site/public/robots.txt +0 -2
  199. package/examples/complete-sites/dog-shelter-single-page/site/sitewide-content.yaml +0 -4
  200. package/examples/complete-sites/dog-shelter-single-page/site/theme.yaml +0 -1
  201. package/examples/feature-demos/media-and-surfaces/.astro/collections/site.schema.json +0 -35
  202. package/examples/feature-demos/media-and-surfaces/.astro/collections/sitewide.schema.json +0 -97
  203. package/examples/feature-demos/media-and-surfaces/.astro/collections/theme.schema.json +0 -852
  204. package/examples/feature-demos/media-and-surfaces/.astro/content-assets.mjs +0 -4
  205. package/examples/feature-demos/media-and-surfaces/.astro/content-modules.mjs +0 -1
  206. package/examples/feature-demos/media-and-surfaces/.astro/content.d.ts +0 -183
  207. package/examples/feature-demos/media-and-surfaces/.astro/data-store.json +0 -1
  208. package/examples/feature-demos/media-and-surfaces/.astro/dev.log +0 -14
  209. package/examples/feature-demos/media-and-surfaces/.astro/settings.json +0 -5
  210. package/examples/feature-demos/media-and-surfaces/.astro/types.d.ts +0 -2
  211. package/examples/feature-demos/media-and-surfaces/README.md +0 -21
  212. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/_metadata.json +0 -80
  213. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro-B3JHJyiv.js +0 -434
  214. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro-B3JHJyiv.js.map +0 -1
  215. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_aria-query.js +0 -6390
  216. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -1
  217. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_axobject-query.js +0 -2702
  218. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -1
  219. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_html-escaper.js +0 -65
  220. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -1
  221. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -455
  222. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -1
  223. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/audit-C3SVr7dT.js +0 -1534
  224. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/audit-C3SVr7dT.js.map +0 -1
  225. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/embla-carousel.js +0 -1389
  226. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/embla-carousel.js.map +0 -1
  227. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/highlight-BLtvqtzO.js +0 -48
  228. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +0 -1
  229. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/icons-C92i61-2.js +0 -42
  230. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/icons-C92i61-2.js.map +0 -1
  231. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/package.json +0 -3
  232. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -4
  233. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/settings-v5GgKks_.js +0 -190
  234. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/settings-v5GgKks_.js.map +0 -1
  235. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/toolbar-BFvJVp26.js +0 -458
  236. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/toolbar-BFvJVp26.js.map +0 -1
  237. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/ui-library-Cd35oAvo.js +0 -1016
  238. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/ui-library-Cd35oAvo.js.map +0 -1
  239. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/window-vo3A6TMn.js +0 -32
  240. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/window-vo3A6TMn.js.map +0 -1
  241. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/xray-DwhzGckb.js +0 -111
  242. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/xray-DwhzGckb.js.map +0 -1
  243. package/examples/feature-demos/media-and-surfaces/site/.norna/generated-images.json +0 -66
  244. package/examples/feature-demos/media-and-surfaces/site/config.yaml +0 -1
  245. package/examples/feature-demos/media-and-surfaces/site/content.md +0 -15
  246. package/examples/feature-demos/media-and-surfaces/site/pages/010-media/content.md +0 -71
  247. package/examples/feature-demos/media-and-surfaces/site/pages/010-media/images/card-carousel.svg +0 -11
  248. package/examples/feature-demos/media-and-surfaces/site/pages/010-media/images/card-stack.svg +0 -9
  249. package/examples/feature-demos/media-and-surfaces/site/pages/010-media/images/card-surfaces.svg +0 -8
  250. package/examples/feature-demos/media-and-surfaces/site/pages/010-media/images/carousel-one.svg +0 -8
  251. package/examples/feature-demos/media-and-surfaces/site/pages/010-media/images/carousel-three.svg +0 -13
  252. package/examples/feature-demos/media-and-surfaces/site/pages/010-media/images/carousel-two.svg +0 -8
  253. package/examples/feature-demos/media-and-surfaces/site/pages/010-media/images/stack-one.svg +0 -8
  254. package/examples/feature-demos/media-and-surfaces/site/pages/010-media/images/stack-two.svg +0 -9
  255. package/examples/feature-demos/media-and-surfaces/site/pages/020-surfaces/content.md +0 -41
  256. package/examples/feature-demos/media-and-surfaces/site/pages/020-surfaces/theme.yaml +0 -3
  257. package/examples/feature-demos/media-and-surfaces/site/public/robots.txt +0 -2
  258. package/examples/feature-demos/media-and-surfaces/site/sitewide-content.yaml +0 -2
  259. package/examples/feature-demos/media-and-surfaces/site/theme.yaml +0 -1
  260. package/examples/feature-demos/sitewide-content/.astro/collections/site.schema.json +0 -59
  261. package/examples/feature-demos/sitewide-content/.astro/collections/sitewide.schema.json +0 -138
  262. package/examples/feature-demos/sitewide-content/.astro/collections/theme.schema.json +0 -755
  263. package/examples/feature-demos/sitewide-content/.astro/content-assets.mjs +0 -1
  264. package/examples/feature-demos/sitewide-content/.astro/content-modules.mjs +0 -1
  265. package/examples/feature-demos/sitewide-content/.astro/content.d.ts +0 -183
  266. package/examples/feature-demos/sitewide-content/.astro/data-store.json +0 -1
  267. package/examples/feature-demos/sitewide-content/.astro/dev.json +0 -13
  268. package/examples/feature-demos/sitewide-content/.astro/dev.log +0 -18
  269. package/examples/feature-demos/sitewide-content/.astro/settings.json +0 -5
  270. package/examples/feature-demos/sitewide-content/.astro/types.d.ts +0 -2
  271. package/examples/feature-demos/sitewide-content/README.md +0 -26
  272. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/_metadata.json +0 -74
  273. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro-B3JHJyiv.js +0 -434
  274. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro-B3JHJyiv.js.map +0 -1
  275. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_aria-query.js +0 -6390
  276. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -1
  277. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_axobject-query.js +0 -2702
  278. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -1
  279. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_html-escaper.js +0 -65
  280. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -1
  281. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -455
  282. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -1
  283. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/audit-C3SVr7dT.js +0 -1534
  284. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/audit-C3SVr7dT.js.map +0 -1
  285. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/highlight-BLtvqtzO.js +0 -48
  286. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +0 -1
  287. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/icons-C92i61-2.js +0 -42
  288. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/icons-C92i61-2.js.map +0 -1
  289. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/package.json +0 -3
  290. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -4
  291. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/settings-v5GgKks_.js +0 -190
  292. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/settings-v5GgKks_.js.map +0 -1
  293. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/toolbar-BFvJVp26.js +0 -458
  294. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/toolbar-BFvJVp26.js.map +0 -1
  295. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/ui-library-Cd35oAvo.js +0 -1016
  296. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/ui-library-Cd35oAvo.js.map +0 -1
  297. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/window-vo3A6TMn.js +0 -32
  298. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/window-vo3A6TMn.js.map +0 -1
  299. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/xray-DwhzGckb.js +0 -111
  300. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/xray-DwhzGckb.js.map +0 -1
  301. package/examples/feature-demos/sitewide-content/site/.norna/generated-images.json +0 -1
  302. package/examples/feature-demos/sitewide-content/site/config.yaml +0 -1
  303. package/examples/feature-demos/sitewide-content/site/content.md +0 -17
  304. package/examples/feature-demos/sitewide-content/site/pages/010-logo-and-navigation/content.md +0 -17
  305. package/examples/feature-demos/sitewide-content/site/pages/020-notices/content.md +0 -23
  306. package/examples/feature-demos/sitewide-content/site/pages/030-footer/content.md +0 -18
  307. package/examples/feature-demos/sitewide-content/site/public/logo.svg +0 -6
  308. package/examples/feature-demos/sitewide-content/site/public/robots.txt +0 -2
  309. package/examples/feature-demos/sitewide-content/site/sitewide-content.yaml +0 -14
  310. package/examples/feature-demos/sitewide-content/site/theme.yaml +0 -1
  311. package/examples/feature-demos/theme-presets/.astro/collections/routeTheme.schema.json +0 -746
  312. package/examples/feature-demos/theme-presets/.astro/collections/site.schema.json +0 -59
  313. package/examples/feature-demos/theme-presets/.astro/collections/sitewide.schema.json +0 -138
  314. package/examples/feature-demos/theme-presets/.astro/collections/theme.schema.json +0 -755
  315. package/examples/feature-demos/theme-presets/.astro/content-assets.mjs +0 -4
  316. package/examples/feature-demos/theme-presets/.astro/content-modules.mjs +0 -1
  317. package/examples/feature-demos/theme-presets/.astro/content.d.ts +0 -183
  318. package/examples/feature-demos/theme-presets/.astro/data-store.json +0 -1
  319. package/examples/feature-demos/theme-presets/.astro/dev-local.json +0 -8
  320. package/examples/feature-demos/theme-presets/.astro/dev.json +0 -15
  321. package/examples/feature-demos/theme-presets/.astro/dev.log +0 -164
  322. package/examples/feature-demos/theme-presets/.astro/settings.json +0 -5
  323. package/examples/feature-demos/theme-presets/.astro/types.d.ts +0 -2
  324. package/examples/feature-demos/theme-presets/README.md +0 -18
  325. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/_metadata.json +0 -80
  326. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/astro-D_GIpJIE.js +0 -434
  327. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/astro-D_GIpJIE.js.map +0 -1
  328. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/astro_n_aria-query.js +0 -6390
  329. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -1
  330. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/astro_n_axobject-query.js +0 -2702
  331. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -1
  332. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/astro_n_html-escaper.js +0 -65
  333. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -1
  334. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -455
  335. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -1
  336. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/audit-DM9Hkl5B.js +0 -1534
  337. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/audit-DM9Hkl5B.js.map +0 -1
  338. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/embla-carousel.js +0 -1389
  339. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/embla-carousel.js.map +0 -1
  340. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/highlight-DnZ1ULOL.js +0 -48
  341. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +0 -1
  342. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/icons-RyebKi45.js +0 -42
  343. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/icons-RyebKi45.js.map +0 -1
  344. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/package.json +0 -3
  345. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -4
  346. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/settings-DaU-gNnK.js +0 -190
  347. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/settings-DaU-gNnK.js.map +0 -1
  348. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/toolbar-63PA619H.js +0 -458
  349. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/toolbar-63PA619H.js.map +0 -1
  350. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/ui-library--bkcNSYz.js +0 -1016
  351. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +0 -1
  352. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/window-jPkpKVcy.js +0 -32
  353. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/window-jPkpKVcy.js.map +0 -1
  354. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/xray-BXCHpEJP.js +0 -111
  355. package/examples/feature-demos/theme-presets/node_modules/.vite/deps/xray-BXCHpEJP.js.map +0 -1
  356. package/examples/feature-demos/theme-presets/site/.norna/generated-images.json +0 -290
  357. package/examples/feature-demos/theme-presets/site/config.yaml +0 -1
  358. package/examples/feature-demos/theme-presets/site/content.md +0 -14
  359. package/examples/feature-demos/theme-presets/site/pages/010-portfolio/content.md +0 -31
  360. package/examples/feature-demos/theme-presets/site/pages/010-portfolio/images/puppy-portrait.jpg +0 -0
  361. package/examples/feature-demos/theme-presets/site/pages/010-portfolio/images/shepherd-portrait.jpg +0 -0
  362. package/examples/feature-demos/theme-presets/site/pages/010-portfolio/images/white-puppy.jpg +0 -0
  363. package/examples/feature-demos/theme-presets/site/pages/010-portfolio/theme.yaml +0 -1
  364. package/examples/feature-demos/theme-presets/site/pages/020-documentation/content.md +0 -30
  365. package/examples/feature-demos/theme-presets/site/pages/020-documentation/images/black-schnauzer.jpg +0 -0
  366. package/examples/feature-demos/theme-presets/site/pages/020-documentation/images/retriever-portrait.jpg +0 -0
  367. package/examples/feature-demos/theme-presets/site/pages/020-documentation/images/schnauzer-portrait.jpg +0 -0
  368. package/examples/feature-demos/theme-presets/site/pages/020-documentation/theme.yaml +0 -1
  369. package/examples/feature-demos/theme-presets/site/pages/030-project/content.md +0 -31
  370. package/examples/feature-demos/theme-presets/site/pages/030-project/images/boxer-portrait.jpg +0 -0
  371. package/examples/feature-demos/theme-presets/site/pages/030-project/images/grass-puppy.jpg +0 -0
  372. package/examples/feature-demos/theme-presets/site/pages/030-project/images/grey-street-dog.jpg +0 -0
  373. package/examples/feature-demos/theme-presets/site/pages/030-project/theme.yaml +0 -1
  374. package/examples/feature-demos/theme-presets/site/pages/040-statement/content.md +0 -31
  375. package/examples/feature-demos/theme-presets/site/pages/040-statement/images/black-pedigree.jpg +0 -0
  376. package/examples/feature-demos/theme-presets/site/pages/040-statement/images/sheepdog-grass.jpg +0 -0
  377. package/examples/feature-demos/theme-presets/site/pages/040-statement/images/sheepdog-wide.jpg +0 -0
  378. package/examples/feature-demos/theme-presets/site/pages/040-statement/theme.yaml +0 -1
  379. package/examples/feature-demos/theme-presets/site/public/robots.txt +0 -2
  380. package/examples/feature-demos/theme-presets/site/sitewide-content.yaml +0 -3
  381. package/examples/feature-demos/theme-presets/site/theme.yaml +0 -1
  382. package/fixtures/basic/site/.norna/generated-images.json +0 -1
  383. package/fixtures/basic/site/config.yaml +0 -1
  384. package/fixtures/basic/site/content.md +0 -14
  385. package/fixtures/basic/site/public/robots.txt +0 -2
  386. package/fixtures/basic/site/sitewide-content.yaml +0 -3
  387. package/fixtures/basic/site/theme.yaml +0 -8
  388. package/fixtures/content-model-v2/.astro/collections/site.schema.json +0 -776
  389. package/fixtures/content-model-v2/.astro/collections/theme.schema.json +0 -668
  390. package/fixtures/content-model-v2/.astro/content-assets.mjs +0 -4
  391. package/fixtures/content-model-v2/.astro/content-modules.mjs +0 -1
  392. package/fixtures/content-model-v2/.astro/content.d.ts +0 -175
  393. package/fixtures/content-model-v2/.astro/data-store.json +0 -1
  394. package/fixtures/content-model-v2/.astro/dev-local.json +0 -8
  395. package/fixtures/content-model-v2/.astro/dev.json +0 -13
  396. package/fixtures/content-model-v2/.astro/dev.log +0 -231
  397. package/fixtures/content-model-v2/.astro/settings.json +0 -5
  398. package/fixtures/content-model-v2/.astro/types.d.ts +0 -2
  399. package/fixtures/content-model-v2/dist/_astro/GalleryGrid.astro_astro_type_script_index_0_lang.B0kxDyGz.js +0 -1
  400. package/fixtures/content-model-v2/dist/_astro/SitePage.BbfZub4g.css +0 -1
  401. package/fixtures/content-model-v2/dist/guide/index.html +0 -3
  402. package/fixtures/content-model-v2/dist/images/generated/intro/detail-27930b14-480.webp +0 -0
  403. package/fixtures/content-model-v2/dist/images/generated/intro/detail-27930b14-768.webp +0 -0
  404. package/fixtures/content-model-v2/dist/images/generated/intro/detail-27930b14-971.webp +0 -0
  405. package/fixtures/content-model-v2/dist/images/generated/intro/duplicate-49c98f6c-480.webp +0 -0
  406. package/fixtures/content-model-v2/dist/images/generated/intro/duplicate-49c98f6c-768.webp +0 -0
  407. package/fixtures/content-model-v2/dist/images/generated/intro/duplicate-49c98f6c-971.webp +0 -0
  408. package/fixtures/content-model-v2/dist/images/generated/intro/hero-6d588a83-480.webp +0 -0
  409. package/fixtures/content-model-v2/dist/images/generated/intro/hero-6d588a83-768.webp +0 -0
  410. package/fixtures/content-model-v2/dist/images/generated/intro/hero-6d588a83-971.webp +0 -0
  411. package/fixtures/content-model-v2/dist/images/generated/plain/image-3770d763-1080.webp +0 -0
  412. package/fixtures/content-model-v2/dist/images/generated/plain/image-3770d763-1440.webp +0 -0
  413. package/fixtures/content-model-v2/dist/images/generated/plain/image-3770d763-1600.webp +0 -0
  414. package/fixtures/content-model-v2/dist/images/generated/plain/image-3770d763-480.webp +0 -0
  415. package/fixtures/content-model-v2/dist/images/generated/plain/image-3770d763-768.webp +0 -0
  416. package/fixtures/content-model-v2/dist/images/generated/routes/010-guide/images/intro/duplicate-5cf614d2-480.webp +0 -0
  417. package/fixtures/content-model-v2/dist/images/generated/routes/010-guide/images/intro/duplicate-5cf614d2-768.webp +0 -0
  418. package/fixtures/content-model-v2/dist/images/generated/routes/010-guide/images/intro/duplicate-5cf614d2-960.webp +0 -0
  419. package/fixtures/content-model-v2/dist/images/generated/timed/slide-one-3770d763-1080.webp +0 -0
  420. package/fixtures/content-model-v2/dist/images/generated/timed/slide-one-3770d763-1440.webp +0 -0
  421. package/fixtures/content-model-v2/dist/images/generated/timed/slide-one-3770d763-1600.webp +0 -0
  422. package/fixtures/content-model-v2/dist/images/generated/timed/slide-one-3770d763-480.webp +0 -0
  423. package/fixtures/content-model-v2/dist/images/generated/timed/slide-one-3770d763-768.webp +0 -0
  424. package/fixtures/content-model-v2/dist/images/generated/timed/slide-three-5bdec65e-1080.webp +0 -0
  425. package/fixtures/content-model-v2/dist/images/generated/timed/slide-three-5bdec65e-1440.webp +0 -0
  426. package/fixtures/content-model-v2/dist/images/generated/timed/slide-three-5bdec65e-1600.webp +0 -0
  427. package/fixtures/content-model-v2/dist/images/generated/timed/slide-three-5bdec65e-480.webp +0 -0
  428. package/fixtures/content-model-v2/dist/images/generated/timed/slide-three-5bdec65e-768.webp +0 -0
  429. package/fixtures/content-model-v2/dist/images/generated/timed/slide-two-26c08aee-1080.webp +0 -0
  430. package/fixtures/content-model-v2/dist/images/generated/timed/slide-two-26c08aee-1440.webp +0 -0
  431. package/fixtures/content-model-v2/dist/images/generated/timed/slide-two-26c08aee-1600.webp +0 -0
  432. package/fixtures/content-model-v2/dist/images/generated/timed/slide-two-26c08aee-480.webp +0 -0
  433. package/fixtures/content-model-v2/dist/images/generated/timed/slide-two-26c08aee-768.webp +0 -0
  434. package/fixtures/content-model-v2/dist/index.html +0 -8
  435. package/fixtures/content-model-v2/node_modules/.vite/deps/_metadata.json +0 -80
  436. package/fixtures/content-model-v2/node_modules/.vite/deps/astro-D_GIpJIE.js +0 -434
  437. package/fixtures/content-model-v2/node_modules/.vite/deps/astro-D_GIpJIE.js.map +0 -1
  438. package/fixtures/content-model-v2/node_modules/.vite/deps/astro_n_aria-query.js +0 -6390
  439. package/fixtures/content-model-v2/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -1
  440. package/fixtures/content-model-v2/node_modules/.vite/deps/astro_n_axobject-query.js +0 -2702
  441. package/fixtures/content-model-v2/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -1
  442. package/fixtures/content-model-v2/node_modules/.vite/deps/astro_n_html-escaper.js +0 -65
  443. package/fixtures/content-model-v2/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -1
  444. package/fixtures/content-model-v2/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -455
  445. package/fixtures/content-model-v2/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -1
  446. package/fixtures/content-model-v2/node_modules/.vite/deps/audit-DM9Hkl5B.js +0 -1534
  447. package/fixtures/content-model-v2/node_modules/.vite/deps/audit-DM9Hkl5B.js.map +0 -1
  448. package/fixtures/content-model-v2/node_modules/.vite/deps/embla-carousel.js +0 -1389
  449. package/fixtures/content-model-v2/node_modules/.vite/deps/embla-carousel.js.map +0 -1
  450. package/fixtures/content-model-v2/node_modules/.vite/deps/highlight-DnZ1ULOL.js +0 -48
  451. package/fixtures/content-model-v2/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +0 -1
  452. package/fixtures/content-model-v2/node_modules/.vite/deps/icons-RyebKi45.js +0 -42
  453. package/fixtures/content-model-v2/node_modules/.vite/deps/icons-RyebKi45.js.map +0 -1
  454. package/fixtures/content-model-v2/node_modules/.vite/deps/package.json +0 -3
  455. package/fixtures/content-model-v2/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -4
  456. package/fixtures/content-model-v2/node_modules/.vite/deps/settings-DaU-gNnK.js +0 -190
  457. package/fixtures/content-model-v2/node_modules/.vite/deps/settings-DaU-gNnK.js.map +0 -1
  458. package/fixtures/content-model-v2/node_modules/.vite/deps/toolbar-63PA619H.js +0 -458
  459. package/fixtures/content-model-v2/node_modules/.vite/deps/toolbar-63PA619H.js.map +0 -1
  460. package/fixtures/content-model-v2/node_modules/.vite/deps/ui-library--bkcNSYz.js +0 -1016
  461. package/fixtures/content-model-v2/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +0 -1
  462. package/fixtures/content-model-v2/node_modules/.vite/deps/window-jPkpKVcy.js +0 -32
  463. package/fixtures/content-model-v2/node_modules/.vite/deps/window-jPkpKVcy.js.map +0 -1
  464. package/fixtures/content-model-v2/node_modules/.vite/deps/xray-BXCHpEJP.js +0 -111
  465. package/fixtures/content-model-v2/node_modules/.vite/deps/xray-BXCHpEJP.js.map +0 -1
  466. package/fixtures/content-model-v2/site/.norna/generated-images.json +0 -210
  467. package/fixtures/content-model-v2/site/config.yaml +0 -1
  468. package/fixtures/content-model-v2/site/content.md +0 -79
  469. package/fixtures/content-model-v2/site/images/adopt.svg +0 -9
  470. package/fixtures/content-model-v2/site/images/detail.jpg +0 -0
  471. package/fixtures/content-model-v2/site/images/duplicate.jpg +0 -0
  472. package/fixtures/content-model-v2/site/images/foster.svg +0 -12
  473. package/fixtures/content-model-v2/site/images/hero.jpg +0 -0
  474. package/fixtures/content-model-v2/site/images/image.jpg +0 -0
  475. package/fixtures/content-model-v2/site/images/slide-one.jpg +0 -0
  476. package/fixtures/content-model-v2/site/images/slide-three.jpg +0 -0
  477. package/fixtures/content-model-v2/site/images/slide-two.jpg +0 -0
  478. package/fixtures/content-model-v2/site/pages/010-guide/content.md +0 -18
  479. package/fixtures/content-model-v2/site/pages/010-guide/images/duplicate.jpg +0 -0
  480. package/fixtures/content-model-v2/site/theme.yaml +0 -4
  481. package/fixtures/nested-pages/site/.norna/generated-images.json +0 -10
  482. package/fixtures/nested-pages/site/config.yaml +0 -1
  483. package/fixtures/nested-pages/site/content.md +0 -15
  484. package/fixtures/nested-pages/site/pages/010-guides/content.md +0 -15
  485. package/fixtures/nested-pages/site/pages/010-guides/pages/010-installation/content.md +0 -21
  486. package/fixtures/nested-pages/site/pages/010-guides/pages/010-installation/images/diagram.svg +0 -21
  487. package/fixtures/nested-pages/site/pages/010-guides/pages/010-installation/pages/010-macos/content.md +0 -14
  488. package/fixtures/nested-pages/site/pages/010-guides/pages/020-workflows/content.md +0 -11
  489. package/fixtures/nested-pages/site/pages/010-guides/theme.yaml +0 -3
  490. package/fixtures/nested-pages/site/pages/020-reference/content.md +0 -10
  491. package/fixtures/nested-pages/site/pages/020-reference/pages/010-installation/content.md +0 -11
  492. package/fixtures/nested-pages/site/theme.yaml +0 -3
  493. package/scripts/build-pages.mjs +0 -69
  494. package/scripts/lib/example-sites.mjs +0 -37
  495. package/scripts/lib/frontmatter-yaml.mjs +0 -113
  496. package/scripts/lib/git-status.mjs +0 -7
  497. package/scripts/release.mjs +0 -153
  498. package/scripts/test-banner-visibility.mjs +0 -80
  499. package/scripts/test-ci-lockfile.mjs +0 -65
  500. package/scripts/test-cli-discovery.mjs +0 -124
  501. package/scripts/test-client-javascript.mjs +0 -218
  502. package/scripts/test-content-check.mjs +0 -621
  503. package/scripts/test-content-model-v2.mjs +0 -1629
  504. package/scripts/test-documentation.mjs +0 -187
  505. package/scripts/test-editor-language-service.mjs +0 -302
  506. package/scripts/test-engine-commands.mjs +0 -204
  507. package/scripts/test-examples.mjs +0 -24
  508. package/scripts/test-heading-ids.mjs +0 -68
  509. package/scripts/test-navigation-model.mjs +0 -63
  510. package/scripts/test-navigation-preview.mjs +0 -108
  511. package/scripts/test-navigation.mjs +0 -148
  512. package/scripts/test-nested-pages.mjs +0 -110
  513. package/scripts/test-package-check.mjs +0 -531
  514. package/scripts/test-page-model.mjs +0 -80
  515. package/scripts/test-project-config.mjs +0 -144
  516. package/scripts/test-schemas.mjs +0 -154
  517. package/scripts/test-site-public.mjs +0 -85
  518. package/scripts/test-theme-presets.mjs +0 -182
  519. package/src/components/SiteNotesScript.astro +0 -43
  520. package/starters/basic/site/images/.gitkeep +0 -1
  521. package/starters/project/.github/workflows/deploy.yml +0 -64
  522. package/starters/project/README.md +0 -84
  523. package/starters/project/package-lock.json +0 -4296
  524. package/starters/project/package.json +0 -37
  525. package/starters/project/site/config.yaml +0 -1
  526. package/starters/project/site/content.md +0 -119
  527. package/starters/project/site/pages/010-guide/content.md +0 -80
  528. package/starters/project/site/public/robots.txt +0 -2
  529. package/starters/project/site/sitewide-content.yaml +0 -3
  530. package/starters/project/site/theme.yaml +0 -31
  531. package/tsconfig.json +0 -5
  532. /package/starters/basic/site/{content.md → pages/000-home/content.md} +0 -0
  533. /package/{fixtures/basic/site → starters/basic/site/pages/000-home}/images/.gitkeep +0 -0
@@ -5,15 +5,47 @@
5
5
  }
6
6
 
7
7
  :root {
8
- --color-page: #000;
9
- --color-surface: #101010;
10
- --color-text: #f7f4ee;
11
- --color-muted: #aaa49a;
12
- --color-soft: #302f2c;
13
- --color-accent: #d8d2c8;
14
- --color-border: rgb(255 255 255 / 14%);
15
- --color-nav-background: rgb(0 0 0 / 90%);
16
- --color-nav-separator: rgb(255 255 255 / 28%);
8
+ --color-page: var(--palette-light-page-background, #fff);
9
+ --color-primary-text: var(--palette-light-primary-text, var(--palette-light-page-text, #17201d));
10
+ --color-secondary-text: var(--palette-light-secondary-text, #5e655f);
11
+ --color-link-text: var(--palette-light-link-text, #38645a);
12
+ --color-focus-ring: var(--palette-light-focus-ring, #17201d);
13
+ --color-focus-ring-contrast: var(--palette-light-focus-ring-contrast, #fff);
14
+ --color-selection-background: var(--palette-light-selection-background, #17201d);
15
+ --color-selection-text: var(--palette-light-selection-text, #fff);
16
+ --color-control-background: var(--palette-light-control-background, rgb(0 0 0 / 70%));
17
+ --color-control-background-active: var(--palette-light-control-background-active, rgb(0 0 0 / 86%));
18
+ --color-control-text: var(--palette-light-control-text, #fff);
19
+ --color-code-background: var(--palette-light-code-background, #0d1117);
20
+ --color-code-text: var(--palette-light-code-text, #f0f6fc);
21
+ --color-warning-accent: var(--palette-light-warning-accent, #7a5600);
22
+ --color-warning-surface: var(--palette-light-warning-surface, #fff4c2);
23
+ --color-warning-text: var(--palette-light-warning-text, #3b2b00);
24
+ --color-error-accent: var(--palette-light-error-accent, #a12d2d);
25
+ --color-error-surface: var(--palette-light-error-surface, #fce8e8);
26
+ --color-error-text: var(--palette-light-error-text, #5f1616);
27
+ --color-success-accent: var(--palette-light-success-accent, #17643c);
28
+ --color-success-surface: var(--palette-light-success-surface, #e4f4e9);
29
+ --color-success-text: var(--palette-light-success-text, #12472e);
30
+ --color-text: var(--color-primary-text);
31
+ --color-surface: var(--palette-light-surface, #f7f8f7);
32
+ --color-muted: var(--color-secondary-text);
33
+ --color-soft: var(--palette-light-soft, #d9dfda);
34
+ --color-accent: var(--color-link-text);
35
+ --color-border: var(--palette-light-border, rgb(0 0 0 / 14%));
36
+ --color-nav-background: var(--palette-light-nav-background, rgb(255 255 255 / 92%));
37
+ --color-nav-separator: var(--palette-light-nav-separator, rgb(0 0 0 / 20%));
38
+ --color-frame-background: var(--palette-light-frame-background, #fff);
39
+ --color-frame-text: var(--palette-light-frame-text, #17201d);
40
+ --color-surface-base-background: var(--palette-light-surface-base-background, #fff);
41
+ --color-surface-base-text: var(--palette-light-surface-base-text, #17201d);
42
+ --color-surface-base-secondary-text: var(--palette-light-surface-base-secondary-text, #555b57);
43
+ --color-surface-soft-background: var(--palette-light-surface-soft-background, #f1f4f2);
44
+ --color-surface-soft-text: var(--palette-light-surface-soft-text, #17201d);
45
+ --color-surface-soft-secondary-text: var(--palette-light-surface-soft-secondary-text, #555b57);
46
+ --color-surface-emphasis-background: var(--palette-light-surface-emphasis-background, #dde7e1);
47
+ --color-surface-emphasis-text: var(--palette-light-surface-emphasis-text, #17201d);
48
+ --color-surface-emphasis-secondary-text: var(--palette-light-surface-emphasis-secondary-text, #555b57);
17
49
  --font-sans: Arial, 'Helvetica Neue', Helvetica, sans-serif;
18
50
  --font-serif: Georgia, 'Times New Roman', serif;
19
51
  --page-width: 1180px;
@@ -55,11 +87,118 @@
55
87
  --content-gutter-mobile: 1rem;
56
88
  --content-gutter: var(--content-gutter-desktop);
57
89
  --site-top-anchor-offset: 4.5rem;
58
- color-scheme: var(--color-scheme, dark);
90
+ --focus-indicator-width: 2px;
91
+ --target-size-minimum: 1.5rem;
92
+ --target-size-comfortable: 2.75rem;
93
+ color-scheme: light;
59
94
  scroll-behavior: smooth;
60
95
  scroll-padding-top: var(--site-top-anchor-offset);
61
96
  }
62
97
 
98
+ :root[data-color-mode='dark'] {
99
+ --color-page: var(--palette-dark-page-background);
100
+ --color-primary-text: var(--palette-dark-primary-text);
101
+ --color-secondary-text: var(--palette-dark-secondary-text);
102
+ --color-link-text: var(--palette-dark-link-text);
103
+ --color-focus-ring: var(--palette-dark-focus-ring);
104
+ --color-focus-ring-contrast: var(--palette-dark-focus-ring-contrast);
105
+ --color-selection-background: var(--palette-dark-selection-background);
106
+ --color-selection-text: var(--palette-dark-selection-text);
107
+ --color-control-background: var(--palette-dark-control-background);
108
+ --color-control-background-active: var(--palette-dark-control-background-active);
109
+ --color-control-text: var(--palette-dark-control-text);
110
+ --color-code-background: var(--palette-dark-code-background);
111
+ --color-code-text: var(--palette-dark-code-text);
112
+ --color-warning-accent: var(--palette-dark-warning-accent);
113
+ --color-warning-surface: var(--palette-dark-warning-surface);
114
+ --color-warning-text: var(--palette-dark-warning-text);
115
+ --color-error-accent: var(--palette-dark-error-accent);
116
+ --color-error-surface: var(--palette-dark-error-surface);
117
+ --color-error-text: var(--palette-dark-error-text);
118
+ --color-success-accent: var(--palette-dark-success-accent);
119
+ --color-success-surface: var(--palette-dark-success-surface);
120
+ --color-success-text: var(--palette-dark-success-text);
121
+ --color-text: var(--color-primary-text);
122
+ --color-surface: var(--palette-dark-surface);
123
+ --color-muted: var(--color-secondary-text);
124
+ --color-soft: var(--palette-dark-soft);
125
+ --color-accent: var(--color-link-text);
126
+ --color-border: var(--palette-dark-border);
127
+ --color-nav-background: var(--palette-dark-nav-background);
128
+ --color-nav-separator: var(--palette-dark-nav-separator);
129
+ --color-frame-background: var(--palette-dark-frame-background);
130
+ --color-frame-text: var(--palette-dark-frame-text);
131
+ --color-surface-base-background: var(--palette-dark-surface-base-background);
132
+ --color-surface-base-text: var(--palette-dark-surface-base-text);
133
+ --color-surface-base-secondary-text: var(--palette-dark-surface-base-secondary-text);
134
+ --color-surface-soft-background: var(--palette-dark-surface-soft-background);
135
+ --color-surface-soft-text: var(--palette-dark-surface-soft-text);
136
+ --color-surface-soft-secondary-text: var(--palette-dark-surface-soft-secondary-text);
137
+ --color-surface-emphasis-background: var(--palette-dark-surface-emphasis-background);
138
+ --color-surface-emphasis-text: var(--palette-dark-surface-emphasis-text);
139
+ --color-surface-emphasis-secondary-text: var(--palette-dark-surface-emphasis-secondary-text);
140
+ color-scheme: dark;
141
+ }
142
+
143
+ @media (prefers-color-scheme: dark) {
144
+ :root[data-color-mode='system'] {
145
+ --color-page: var(--palette-dark-page-background);
146
+ --color-primary-text: var(--palette-dark-primary-text);
147
+ --color-secondary-text: var(--palette-dark-secondary-text);
148
+ --color-link-text: var(--palette-dark-link-text);
149
+ --color-focus-ring: var(--palette-dark-focus-ring);
150
+ --color-focus-ring-contrast: var(--palette-dark-focus-ring-contrast);
151
+ --color-selection-background: var(--palette-dark-selection-background);
152
+ --color-selection-text: var(--palette-dark-selection-text);
153
+ --color-control-background: var(--palette-dark-control-background);
154
+ --color-control-background-active: var(--palette-dark-control-background-active);
155
+ --color-control-text: var(--palette-dark-control-text);
156
+ --color-code-background: var(--palette-dark-code-background);
157
+ --color-code-text: var(--palette-dark-code-text);
158
+ --color-warning-accent: var(--palette-dark-warning-accent);
159
+ --color-warning-surface: var(--palette-dark-warning-surface);
160
+ --color-warning-text: var(--palette-dark-warning-text);
161
+ --color-error-accent: var(--palette-dark-error-accent);
162
+ --color-error-surface: var(--palette-dark-error-surface);
163
+ --color-error-text: var(--palette-dark-error-text);
164
+ --color-success-accent: var(--palette-dark-success-accent);
165
+ --color-success-surface: var(--palette-dark-success-surface);
166
+ --color-success-text: var(--palette-dark-success-text);
167
+ --color-text: var(--color-primary-text);
168
+ --color-surface: var(--palette-dark-surface);
169
+ --color-muted: var(--color-secondary-text);
170
+ --color-soft: var(--palette-dark-soft);
171
+ --color-accent: var(--color-link-text);
172
+ --color-border: var(--palette-dark-border);
173
+ --color-nav-background: var(--palette-dark-nav-background);
174
+ --color-nav-separator: var(--palette-dark-nav-separator);
175
+ --color-frame-background: var(--palette-dark-frame-background);
176
+ --color-frame-text: var(--palette-dark-frame-text);
177
+ --color-surface-base-background: var(--palette-dark-surface-base-background);
178
+ --color-surface-base-text: var(--palette-dark-surface-base-text);
179
+ --color-surface-base-secondary-text: var(--palette-dark-surface-base-secondary-text);
180
+ --color-surface-soft-background: var(--palette-dark-surface-soft-background);
181
+ --color-surface-soft-text: var(--palette-dark-surface-soft-text);
182
+ --color-surface-soft-secondary-text: var(--palette-dark-surface-soft-secondary-text);
183
+ --color-surface-emphasis-background: var(--palette-dark-surface-emphasis-background);
184
+ --color-surface-emphasis-text: var(--palette-dark-surface-emphasis-text);
185
+ --color-surface-emphasis-secondary-text: var(--palette-dark-surface-emphasis-secondary-text);
186
+ color-scheme: dark;
187
+ }
188
+ }
189
+
190
+ :root[data-reading-width='narrow'] {
191
+ --reader-text-width: min(60ch, var(--text-width));
192
+ }
193
+
194
+ :root[data-reading-width='standard'] {
195
+ --reader-text-width: min(72ch, var(--text-width));
196
+ }
197
+
198
+ :root[data-reading-width='wide'] {
199
+ --reader-text-width: min(80ch, var(--image-layout-width));
200
+ }
201
+
63
202
  html {
64
203
  min-height: 100%;
65
204
  background: var(--color-page);
@@ -69,6 +208,15 @@ html {
69
208
  html {
70
209
  scroll-behavior: auto !important;
71
210
  }
211
+
212
+ *,
213
+ *::before,
214
+ *::after {
215
+ animation-duration: 0.01ms !important;
216
+ animation-iteration-count: 1 !important;
217
+ scroll-behavior: auto !important;
218
+ transition-duration: 0.01ms !important;
219
+ }
72
220
  }
73
221
 
74
222
  body {
@@ -91,12 +239,32 @@ img {
91
239
 
92
240
  a {
93
241
  color: var(--color-accent);
242
+ overflow-wrap: anywhere;
94
243
  transition: color 0.18s ease, opacity 0.18s ease;
95
244
  }
96
245
 
97
246
  ::selection {
98
- background: var(--color-text);
99
- color: var(--color-page);
247
+ background: var(--color-selection-background);
248
+ color: var(--color-selection-text);
249
+ }
250
+
251
+ :where(a, button, summary, [tabindex]:not([tabindex='-1'])):focus-visible {
252
+ outline: var(--focus-indicator-width) solid var(--color-focus-ring);
253
+ outline-offset: var(--focus-indicator-width);
254
+ box-shadow: 0 0 0 calc(var(--focus-indicator-width) + var(--focus-indicator-width)) var(--color-focus-ring-contrast);
255
+ }
256
+
257
+ .visually-hidden {
258
+ position: absolute;
259
+ width: 1px;
260
+ height: 1px;
261
+ margin: -1px;
262
+ padding: 0;
263
+ border: 0;
264
+ overflow: hidden;
265
+ clip: rect(0 0 0 0);
266
+ clip-path: inset(50%);
267
+ white-space: nowrap;
100
268
  }
101
269
 
102
270
  .skip-link {
@@ -139,6 +307,230 @@ a {
139
307
  padding: 0.8rem 0 0.7rem;
140
308
  }
141
309
 
310
+ .site-top[data-navigation-mode='tree'] .site-nav-row {
311
+ width: min(calc(100% - (var(--content-gutter) * 2)), max(var(--page-width), 76rem));
312
+ }
313
+
314
+ .site-nav-row-mobile-only {
315
+ display: none;
316
+ }
317
+
318
+ .site-nav-actions {
319
+ display: flex;
320
+ align-items: center;
321
+ justify-content: flex-end;
322
+ gap: clamp(0.65rem, 1.5vw, 1rem);
323
+ min-width: 0;
324
+ margin-left: auto;
325
+ }
326
+
327
+ .site-nav-leading {
328
+ display: flex;
329
+ align-items: center;
330
+ gap: 0.35rem;
331
+ min-width: 0;
332
+ flex: 0 0 auto;
333
+ }
334
+
335
+ :root:not([data-reader-preferences-ready='true']) .display-settings {
336
+ display: none;
337
+ }
338
+
339
+ .display-settings {
340
+ position: relative;
341
+ display: block;
342
+ flex: 0 0 auto;
343
+ font-family: var(--font-sans);
344
+ }
345
+
346
+ .display-settings summary {
347
+ display: grid;
348
+ place-items: center;
349
+ width: 2.25rem;
350
+ height: 2.25rem;
351
+ border: 1px solid color-mix(in srgb, currentColor 38%, transparent);
352
+ border-radius: 50%;
353
+ background-color: transparent;
354
+ color: currentColor;
355
+ cursor: pointer;
356
+ list-style: none;
357
+ transition: border-color 0.18s ease, background-color 0.18s ease;
358
+ }
359
+
360
+ :root[data-focus-reading='on'] .display-settings summary {
361
+ grid-template-columns: auto auto;
362
+ gap: 0.4rem;
363
+ width: auto;
364
+ padding: 0 0.65rem;
365
+ border-color: currentColor;
366
+ background: color-mix(in srgb, currentColor 9%, transparent);
367
+ }
368
+
369
+ .display-settings summary::-webkit-details-marker {
370
+ display: none;
371
+ }
372
+
373
+ .display-settings summary:hover,
374
+ .display-settings[open] summary {
375
+ border-color: currentColor;
376
+ background: color-mix(in srgb, currentColor 9%, transparent);
377
+ }
378
+
379
+ .display-settings summary:focus-visible,
380
+ .display-settings button:focus-visible,
381
+ .display-settings input:focus-visible + span {
382
+ outline-color: var(--color-focus-ring);
383
+ }
384
+
385
+ .display-settings-trigger-icon {
386
+ display: block;
387
+ width: 1.05rem;
388
+ height: 1.05rem;
389
+ fill: none;
390
+ stroke: currentColor;
391
+ stroke-width: 2;
392
+ stroke-linecap: round;
393
+ stroke-linejoin: round;
394
+ }
395
+
396
+ .display-settings-focus-status {
397
+ display: none;
398
+ font-size: 0.72rem;
399
+ font-weight: 650;
400
+ white-space: nowrap;
401
+ }
402
+
403
+ :root[data-focus-reading='on'] .display-settings-focus-status {
404
+ display: block;
405
+ }
406
+
407
+ .display-settings-panel {
408
+ position: absolute;
409
+ top: calc(100% + 0.45rem);
410
+ right: 0;
411
+ z-index: 30;
412
+ display: grid;
413
+ gap: 0.9rem;
414
+ width: min(20rem, calc(100vw - (var(--content-gutter) * 2)));
415
+ max-height: calc(100svh - var(--site-top-anchor-offset) - 1rem);
416
+ margin: 0;
417
+ padding: 0.85rem;
418
+ border: 1px solid var(--color-border);
419
+ border-radius: var(--corner-radius-medium, 4px);
420
+ background: var(--color-surface-base-background);
421
+ color: var(--color-surface-base-text);
422
+ font-size: 0.82rem;
423
+ box-shadow: 0 0.6rem 1.6rem rgb(0 0 0 / 16%);
424
+ overflow-y: auto;
425
+ }
426
+
427
+ .display-settings-title {
428
+ margin: 0;
429
+ font-size: 0.78rem;
430
+ font-weight: 700;
431
+ text-transform: uppercase;
432
+ }
433
+
434
+ .display-settings fieldset {
435
+ display: grid;
436
+ gap: 0.4rem;
437
+ margin: 0;
438
+ padding: 0;
439
+ border: 0;
440
+ }
441
+
442
+ .display-settings legend {
443
+ margin: 0 0 0.4rem;
444
+ padding: 0;
445
+ color: var(--color-surface-base-secondary-text);
446
+ font-size: 0.72rem;
447
+ font-weight: 650;
448
+ }
449
+
450
+ .display-settings-segmented {
451
+ display: grid;
452
+ grid-template-columns: repeat(3, minmax(0, 1fr));
453
+ gap: 1px;
454
+ width: 100%;
455
+ border: 1px solid var(--color-border);
456
+ border-radius: var(--corner-radius-small, 2px);
457
+ background: var(--color-border);
458
+ overflow: hidden;
459
+ }
460
+
461
+ .display-settings-segmented label {
462
+ position: relative;
463
+ min-width: 0;
464
+ cursor: pointer;
465
+ }
466
+
467
+ .display-settings-segmented input {
468
+ position: absolute;
469
+ width: 1px;
470
+ height: 1px;
471
+ opacity: 0;
472
+ }
473
+
474
+ .display-settings-segmented span {
475
+ display: grid;
476
+ place-items: center;
477
+ min-height: var(--target-size-comfortable);
478
+ padding: 0.35rem 0.45rem;
479
+ background: var(--color-surface-base-background);
480
+ color: inherit;
481
+ font-size: 0.75rem;
482
+ font-weight: 600;
483
+ text-align: center;
484
+ transition: background-color 0.18s ease, color 0.18s ease;
485
+ }
486
+
487
+ .display-settings-segmented label:hover span {
488
+ background: color-mix(in srgb, currentColor 8%, var(--color-surface-base-background));
489
+ }
490
+
491
+ .display-settings-segmented input:checked + span {
492
+ background: color-mix(in srgb, var(--color-accent) 14%, transparent);
493
+ color: var(--color-surface-base-text);
494
+ }
495
+
496
+ .display-settings-segmented input:focus-visible + span {
497
+ position: relative;
498
+ z-index: 1;
499
+ outline: var(--focus-indicator-width) solid var(--color-focus-ring);
500
+ outline-offset: calc(0px - var(--focus-indicator-width));
501
+ box-shadow: inset 0 0 0 var(--focus-indicator-width) var(--color-focus-ring-contrast);
502
+ }
503
+
504
+ .display-settings-toggle {
505
+ display: flex;
506
+ align-items: center;
507
+ gap: 0.55rem;
508
+ min-height: var(--target-size-minimum);
509
+ font-weight: 600;
510
+ cursor: pointer;
511
+ }
512
+
513
+ .display-settings-toggle input {
514
+ width: 1rem;
515
+ height: 1rem;
516
+ margin: 0;
517
+ accent-color: var(--color-accent);
518
+ }
519
+
520
+ .display-settings-reset {
521
+ justify-self: start;
522
+ min-height: var(--target-size-minimum);
523
+ border: 0;
524
+ padding: 0;
525
+ background: transparent;
526
+ color: var(--color-accent);
527
+ font: inherit;
528
+ font-weight: 650;
529
+ text-decoration: underline;
530
+ text-underline-offset: 0.2em;
531
+ cursor: pointer;
532
+ }
533
+
142
534
  .site-brand,
143
535
  .site-nav a,
144
536
  .mobile-nav-menu summary,
@@ -187,11 +579,12 @@ a {
187
579
  .site-nav a,
188
580
  .mobile-nav-panel a {
189
581
  display: block;
582
+ min-height: var(--target-size-minimum);
583
+ color: var(--color-secondary-text);
190
584
  font-size: 0.78rem;
191
585
  font-weight: 500;
192
586
  letter-spacing: 0.08em;
193
587
  line-height: 1.2;
194
- opacity: 0.72;
195
588
  text-transform: uppercase;
196
589
  }
197
590
 
@@ -201,7 +594,7 @@ a {
201
594
  .mobile-nav-panel a:hover,
202
595
  .mobile-nav-panel a:focus-visible,
203
596
  .mobile-nav-panel a[aria-current='page'] {
204
- opacity: 1;
597
+ color: var(--site-top-text-color, var(--color-primary-text));
205
598
  }
206
599
 
207
600
  .site-nav > ul > .site-nav-item > a:hover,
@@ -219,6 +612,7 @@ a {
219
612
  left: 50%;
220
613
  z-index: 10;
221
614
  width: max-content;
615
+ max-width: min(24rem, calc(100vw - (var(--content-gutter) * 2)));
222
616
  min-width: 12rem;
223
617
  padding-top: 0.7rem;
224
618
  opacity: 0;
@@ -258,15 +652,14 @@ a {
258
652
  font-size: 0.76rem;
259
653
  letter-spacing: 0.03em;
260
654
  line-height: 1.3;
261
- opacity: 0.78;
262
655
  text-transform: none;
263
- white-space: nowrap;
656
+ white-space: normal;
264
657
  }
265
658
 
266
659
  .site-nav-submenu a:hover,
267
660
  .site-nav-submenu a:focus-visible,
268
661
  .site-nav-submenu a[aria-current='location'] {
269
- opacity: 1;
662
+ color: var(--site-top-text-color, var(--color-primary-text));
270
663
  text-decoration: underline;
271
664
  text-underline-offset: 0.25em;
272
665
  }
@@ -294,6 +687,10 @@ a {
294
687
  border-top: 1px solid color-mix(in srgb, currentColor 14%, transparent);
295
688
  }
296
689
 
690
+ .site-top:not(.site-top-has-navigation-row) .page-nav {
691
+ border-top: 0;
692
+ }
693
+
297
694
  .page-nav-inner {
298
695
  display: flex;
299
696
  align-items: center;
@@ -308,7 +705,7 @@ a {
308
705
  font-size: 0.7rem;
309
706
  font-weight: 650;
310
707
  letter-spacing: 0.08em;
311
- opacity: 0.55;
708
+ color: var(--color-secondary-text);
312
709
  text-transform: uppercase;
313
710
  white-space: nowrap;
314
711
  }
@@ -339,13 +736,13 @@ a {
339
736
 
340
737
  .page-nav a {
341
738
  display: block;
739
+ min-height: var(--target-size-minimum);
342
740
  padding: 1.05rem 0 0.95rem;
343
- color: currentColor;
741
+ color: var(--color-secondary-text);
344
742
  font-size: 0.76rem;
345
743
  font-weight: 500;
346
744
  letter-spacing: 0.08em;
347
745
  line-height: 1.2;
348
- opacity: 0.72;
349
746
  text-decoration: none;
350
747
  text-transform: uppercase;
351
748
  }
@@ -353,12 +750,21 @@ a {
353
750
  .page-nav a:hover,
354
751
  .page-nav a:focus-visible,
355
752
  .page-nav a[aria-current='location'] {
356
- opacity: 1;
753
+ color: var(--site-top-text-color, var(--color-primary-text));
357
754
  text-decoration: underline;
358
755
  text-decoration-thickness: 1px;
359
756
  text-underline-offset: 0.35em;
360
757
  }
361
758
 
759
+ .page-nav .page-nav-page-top {
760
+ font-size: 0.82rem;
761
+ font-weight: 700;
762
+ }
763
+
764
+ .page-nav-page-top-item:not(:last-child) {
765
+ margin-right: clamp(0.3rem, 1vw, 0.7rem);
766
+ }
767
+
362
768
  .mobile-nav-sections a[aria-current='location'] {
363
769
  opacity: 1;
364
770
  text-decoration: underline;
@@ -380,12 +786,313 @@ a {
380
786
  padding: 0;
381
787
  }
382
788
 
789
+ .site-page-layout:not(.site-page-layout-tree) {
790
+ display: contents;
791
+ }
792
+
793
+ .site-page-layout-tree {
794
+ --tree-layout-width: max(var(--page-width), 76rem);
795
+ --tree-layout-outer-margin: max(var(--content-gutter), calc((100vw - var(--tree-layout-width)) / 2));
796
+ --tree-navigation-width: 14rem;
797
+ --tree-layout-gap: var(--local-navigation-gap, clamp(1.5rem, 3vw, 3rem));
798
+ display: grid;
799
+ grid-template-columns: var(--tree-navigation-width) minmax(0, 1fr);
800
+ align-items: start;
801
+ gap: var(--tree-layout-gap);
802
+ min-height: calc(100svh - var(--site-top-anchor-offset));
803
+ width: min(calc(100% - (var(--content-gutter) * 2)), var(--tree-layout-width));
804
+ margin: 0 auto;
805
+ }
806
+
807
+ .site-page-layout-tree > .site-content {
808
+ width: 100%;
809
+ min-width: 0;
810
+ }
811
+
812
+ .site-page-layout-tree .site-section {
813
+ background-color: transparent;
814
+ }
815
+
816
+ @media (min-width: 701px) {
817
+ .site-page-layout-tree :is(.site-breadcrumbs, .section-header, .section-markdown) {
818
+ margin-right: auto;
819
+ margin-left: 0;
820
+ }
821
+
822
+ .site-page-layout-tree .card-list {
823
+ margin-right: auto;
824
+ margin-left: 0;
825
+ }
826
+
827
+ .site-page-layout-tree .image-stack .managed-image-item {
828
+ width: min(100%, var(--image-layout-width));
829
+ margin-right: auto;
830
+ margin-left: 0;
831
+ }
832
+
833
+ .site-page-layout-tree .image-carousel-stage,
834
+ .site-page-layout-tree .image-carousel-captions {
835
+ margin-right: auto;
836
+ margin-left: 0;
837
+ }
838
+
839
+ }
840
+
841
+ .tree-local-navigation {
842
+ position: sticky;
843
+ top: calc(var(--site-top-anchor-offset) + 1.25rem);
844
+ z-index: 3;
845
+ min-height: 0;
846
+ max-height: calc(100svh - var(--site-top-anchor-offset) - 2.5rem);
847
+ padding: 1.5rem 0;
848
+ background: var(--color-page);
849
+ overflow-y: auto;
850
+ overscroll-behavior: contain;
851
+ }
852
+
853
+ .navigation-page-sections {
854
+ margin: 0.15rem 0 0.55rem 0.3rem;
855
+ border-left: 2px solid color-mix(in srgb, currentColor 38%, transparent);
856
+ padding: 0.2rem 0 0.25rem 0.85rem;
857
+ }
858
+
859
+ .navigation-page-tree,
860
+ .page-contents-links {
861
+ margin: 0;
862
+ padding: 0;
863
+ list-style: none;
864
+ }
865
+
866
+ .navigation-page-node {
867
+ position: relative;
868
+ }
869
+
870
+ .navigation-page-tree-sidebar .navigation-page-link {
871
+ display: block;
872
+ padding: 0.45rem 2rem 0.45rem 0;
873
+ color: var(--color-secondary-text);
874
+ font-size: 0.86rem;
875
+ line-height: 1.35;
876
+ text-decoration: none;
877
+ }
878
+
879
+ .navigation-page-tree-sidebar > .navigation-page-node > .navigation-page-link {
880
+ color: var(--color-primary-text);
881
+ font-size: 0.94rem;
882
+ font-weight: 700;
883
+ }
884
+
885
+ .navigation-page-tree-sidebar .navigation-page-link:hover,
886
+ .navigation-page-tree-sidebar .navigation-page-link:focus-visible,
887
+ .navigation-page-tree-sidebar .navigation-page-link[aria-current='page'] {
888
+ color: var(--color-primary-text);
889
+ text-decoration: underline;
890
+ text-decoration-thickness: 1px;
891
+ text-underline-offset: 0.28em;
892
+ }
893
+
894
+ .navigation-page-tree-sidebar .navigation-page-tree-sidebar {
895
+ margin: 0.25rem 0 0.25rem 0.3rem;
896
+ border-left: 1px solid color-mix(in srgb, currentColor 18%, transparent);
897
+ padding-left: 0.85rem;
898
+ }
899
+
900
+ .navigation-page-branch:not(.navigation-page-disclosure) > summary {
901
+ position: absolute;
902
+ top: 0.25rem;
903
+ right: 0;
904
+ display: grid;
905
+ place-items: center;
906
+ width: 1.8rem;
907
+ height: 1.8rem;
908
+ border: 0;
909
+ border-radius: var(--corner-radius-small, 2px);
910
+ list-style: none;
911
+ cursor: pointer;
912
+ color: var(--color-secondary-text);
913
+ }
914
+
915
+ .navigation-page-branch:not(.navigation-page-disclosure) > summary::-webkit-details-marker {
916
+ display: none;
917
+ }
918
+
919
+ .navigation-page-branch:not(.navigation-page-disclosure) > summary:hover,
920
+ .navigation-page-branch:not(.navigation-page-disclosure) > summary:focus-visible {
921
+ background: color-mix(in srgb, currentColor 8%, transparent);
922
+ color: var(--color-primary-text);
923
+ }
924
+
925
+ .navigation-page-branch:not(.navigation-page-disclosure) > summary > [aria-hidden='true']::before {
926
+ content: "+";
927
+ }
928
+
929
+ .navigation-page-branch:not(.navigation-page-disclosure)[open] > summary > [aria-hidden='true']::before {
930
+ content: "−";
931
+ }
932
+
933
+ .navigation-page-disclosure > .navigation-page-summary {
934
+ display: flex;
935
+ align-items: center;
936
+ justify-content: space-between;
937
+ width: 100%;
938
+ border: 0;
939
+ border-radius: var(--corner-radius-small, 2px);
940
+ padding: 0.45rem 0;
941
+ font-size: 0.86rem;
942
+ line-height: 1.35;
943
+ list-style: none;
944
+ cursor: pointer;
945
+ color: var(--color-secondary-text);
946
+ }
947
+
948
+ .navigation-page-disclosure {
949
+ position: relative;
950
+ }
951
+
952
+ .navigation-page-disclosure > .navigation-page-summary::-webkit-details-marker {
953
+ display: none;
954
+ }
955
+
956
+ .navigation-page-disclosure > .navigation-page-summary:hover,
957
+ .navigation-page-disclosure > .navigation-page-summary:focus-visible,
958
+ .navigation-page-disclosure[data-current-page='true'] > .navigation-page-summary {
959
+ color: var(--color-primary-text);
960
+ }
961
+
962
+ .navigation-page-disclosure > .navigation-page-summary:hover > :first-child,
963
+ .navigation-page-disclosure > .navigation-page-summary:focus-visible > :first-child,
964
+ .navigation-page-disclosure[data-current-page='true'] > .navigation-page-summary > :first-child {
965
+ text-decoration: underline;
966
+ text-decoration-thickness: 1px;
967
+ text-underline-offset: 0.28em;
968
+ }
969
+
970
+ .navigation-page-disclosure:not(.navigation-category-disclosure)[open]
971
+ > .navigation-page-summary > .navigation-page-summary-title {
972
+ opacity: 0;
973
+ }
974
+
975
+ .navigation-category-disclosure[data-current-branch='true'] > .navigation-page-summary {
976
+ color: var(--color-primary-text);
977
+ }
978
+
979
+ .navigation-page-open-link {
980
+ position: absolute;
981
+ top: 0;
982
+ left: 0;
983
+ display: none;
984
+ width: calc(100% - 2rem);
985
+ padding: 0.45rem 0;
986
+ color: var(--color-secondary-text);
987
+ font-size: 0.86rem;
988
+ line-height: 1.35;
989
+ overflow: visible;
990
+ overflow-wrap: anywhere;
991
+ text-decoration: none;
992
+ white-space: normal;
993
+ }
994
+
995
+ .navigation-page-disclosure[open] > .navigation-page-open-link {
996
+ display: block;
997
+ }
998
+
999
+ .navigation-page-open-link:hover,
1000
+ .navigation-page-open-link:focus-visible,
1001
+ .navigation-page-open-link[aria-current='page'] {
1002
+ color: var(--color-primary-text);
1003
+ text-decoration: underline;
1004
+ text-decoration-thickness: 1px;
1005
+ text-underline-offset: 0.28em;
1006
+ }
1007
+
1008
+ .navigation-page-chevron::before {
1009
+ display: block;
1010
+ content: "›";
1011
+ font-size: 1.15rem;
1012
+ line-height: 1;
1013
+ transition: transform 140ms ease;
1014
+ }
1015
+
1016
+ .navigation-page-disclosure[open] > .navigation-page-summary .navigation-page-chevron::before {
1017
+ transform: rotate(90deg);
1018
+ }
1019
+
1020
+ .navigation-page-tree-sidebar > .navigation-page-node > .navigation-page-disclosure > .navigation-page-summary {
1021
+ color: var(--color-primary-text);
1022
+ font-size: 0.94rem;
1023
+ font-weight: 700;
1024
+ }
1025
+
1026
+ .navigation-page-tree-sidebar > .navigation-page-node > .navigation-page-disclosure > .navigation-page-open-link {
1027
+ color: var(--color-primary-text);
1028
+ font-size: 0.94rem;
1029
+ font-weight: 700;
1030
+ }
1031
+
1032
+ .navigation-page-tree-sidebar .navigation-page-disclosure > .navigation-page-branch-content {
1033
+ margin: 0.1rem 0 0.25rem 0.3rem;
1034
+ border-left: 1px solid color-mix(in srgb, currentColor 18%, transparent);
1035
+ padding-left: 0.85rem;
1036
+ }
1037
+
1038
+ .navigation-page-tree-sidebar .navigation-page-disclosure .navigation-page-tree-sidebar {
1039
+ margin: 0.25rem 0;
1040
+ border-left: 0;
1041
+ padding-left: 0;
1042
+ }
1043
+
1044
+ .navigation-page-disclosure[data-current-branch='true']:not([data-current-page='true']):not([data-sections-open='true'])
1045
+ > .navigation-page-branch-content > .navigation-page-sections {
1046
+ display: none;
1047
+ }
1048
+
1049
+ .page-contents-links li + li {
1050
+ margin-top: 0.45rem;
1051
+ }
1052
+
1053
+ .page-contents-links ol {
1054
+ margin: 0.45rem 0 0;
1055
+ padding-left: 0.8rem;
1056
+ border-left: 1px solid color-mix(in srgb, currentColor 16%, transparent);
1057
+ list-style: none;
1058
+ }
1059
+
1060
+ .page-contents-links a {
1061
+ position: relative;
1062
+ display: block;
1063
+ color: var(--color-secondary-text);
1064
+ font-size: 0.8rem;
1065
+ line-height: 1.4;
1066
+ text-decoration: none;
1067
+ }
1068
+
1069
+ .page-contents-links a:hover,
1070
+ .page-contents-links a:focus-visible,
1071
+ .page-contents-links a[aria-current='location'] {
1072
+ color: var(--color-primary-text);
1073
+ text-decoration: underline;
1074
+ text-underline-offset: 0.25em;
1075
+ }
1076
+
1077
+ .page-contents-links a[aria-current='location']::before {
1078
+ position: absolute;
1079
+ top: 0.15em;
1080
+ bottom: 0.15em;
1081
+ left: -0.85rem;
1082
+ width: 2px;
1083
+ border-radius: 1px;
1084
+ background: currentColor;
1085
+ content: '';
1086
+ }
1087
+
383
1088
  .site-breadcrumbs {
384
- width: min(100%, 60ch, var(--text-width));
1089
+ min-height: calc(clamp(1rem, 2.5vw, 1.5rem) + 1.35rem);
1090
+ width: min(100%, var(--reader-text-width, var(--page-text-width, var(--text-width))));
385
1091
  margin: 0 auto;
386
1092
  padding-top: clamp(1rem, 2.5vw, 1.5rem);
387
1093
  font-size: 1rem;
388
1094
  line-height: 1.4;
1095
+ overflow: visible;
389
1096
  }
390
1097
 
391
1098
  .site-breadcrumbs ol {
@@ -400,9 +1107,14 @@ a {
400
1107
 
401
1108
  .site-breadcrumbs li {
402
1109
  display: flex;
1110
+ min-width: 0;
403
1111
  align-items: center;
404
1112
  }
405
1113
 
1114
+ .site-breadcrumbs li:last-child {
1115
+ flex: 0 1 auto;
1116
+ }
1117
+
406
1118
  .site-breadcrumbs li + li::before {
407
1119
  margin: 0 0.55rem;
408
1120
  content: "/";
@@ -410,19 +1122,26 @@ a {
410
1122
  }
411
1123
 
412
1124
  .site-breadcrumbs a {
413
- color: inherit;
414
- opacity: 0.72;
1125
+ display: block;
1126
+ min-width: 0;
1127
+ color: var(--color-secondary-text);
1128
+ overflow: visible;
1129
+ overflow-wrap: anywhere;
415
1130
  text-decoration: none;
416
1131
  }
417
1132
 
418
1133
  .site-breadcrumbs a:hover,
419
1134
  .site-breadcrumbs a:focus-visible {
420
- opacity: 1;
1135
+ color: var(--color-primary-text);
421
1136
  text-decoration: underline;
422
1137
  text-underline-offset: 0.25em;
423
1138
  }
424
1139
 
425
1140
  .site-breadcrumbs [aria-current='page'] {
1141
+ display: block;
1142
+ min-width: 0;
1143
+ overflow: visible;
1144
+ overflow-wrap: anywhere;
426
1145
  font-weight: 650;
427
1146
  }
428
1147
 
@@ -442,15 +1161,15 @@ a {
442
1161
 
443
1162
  .site-banner {
444
1163
  display: flex;
445
- align-items: flex-start;
1164
+ align-items: center;
446
1165
  width: 100%;
447
1166
  min-width: 0;
448
1167
  gap: 1rem;
449
- border: 1px solid color-mix(in srgb, #ffd84d 42%, var(--color-border));
450
- border-inline-start: 0.35rem solid #ffd84d;
1168
+ border: 1px solid var(--color-warning-accent);
1169
+ border-inline-start: 0.35rem solid var(--color-warning-accent);
451
1170
  padding: 0.8rem 0.9rem;
452
- background: color-mix(in srgb, #ffd84d 12%, var(--color-surface));
453
- color: var(--color-text);
1171
+ background: var(--color-warning-surface);
1172
+ color: var(--color-warning-text);
454
1173
  }
455
1174
 
456
1175
  .site-banner[hidden] {
@@ -460,6 +1179,7 @@ a {
460
1179
  .site-banner-copy {
461
1180
  display: flex;
462
1181
  align-items: baseline;
1182
+ flex-wrap: wrap;
463
1183
  gap: 0.65rem;
464
1184
  min-width: 0;
465
1185
  flex: 1 1 auto;
@@ -478,11 +1198,8 @@ a {
478
1198
 
479
1199
  .site-banner-text {
480
1200
  min-width: 0;
481
- overflow: hidden;
482
- text-overflow: ellipsis;
483
- white-space: nowrap;
484
1201
  margin-top: 0.2rem;
485
- color: color-mix(in srgb, currentColor 86%, transparent);
1202
+ overflow-wrap: anywhere;
486
1203
  }
487
1204
 
488
1205
  .site-banner-dismiss {
@@ -550,6 +1267,11 @@ a {
550
1267
  pointer-events: none;
551
1268
  }
552
1269
 
1270
+ .site-page-layout-tree .site-section::before {
1271
+ left: 0;
1272
+ right: calc(0px - var(--tree-layout-outer-margin));
1273
+ }
1274
+
553
1275
  .site-section + .site-section {
554
1276
  margin-top: 0;
555
1277
  padding-top: var(--space-section-to-section);
@@ -577,7 +1299,7 @@ a {
577
1299
  }
578
1300
 
579
1301
  .section-header {
580
- width: min(100%, var(--section-heading-width-desktop, 760px));
1302
+ width: min(100%, var(--reader-text-width, var(--section-heading-width-desktop, 760px)));
581
1303
  margin: 0 auto;
582
1304
  padding: 0;
583
1305
  text-align: var(--section-heading-align-desktop, center);
@@ -610,6 +1332,7 @@ ul {
610
1332
 
611
1333
  .section-body {
612
1334
  display: flow-root;
1335
+ container-type: inline-size;
613
1336
  width: 100%;
614
1337
  margin: 0 auto;
615
1338
  color: inherit;
@@ -617,38 +1340,15 @@ ul {
617
1340
  font-size: clamp(0.96rem, 0.94rem + 0.08vw, 1rem);
618
1341
  }
619
1342
 
620
- .section-reading-layout {
621
- display: grid;
622
- --section-reading-body-width: var(--section-body-width-desktop, var(--text-width));
623
- --section-reading-inline-start: max(0px, calc((100% - var(--section-reading-body-width)) / 2));
624
- grid-template-columns: minmax(0, var(--section-reading-body-width)) minmax(0, 13rem);
625
- column-gap: 1.5rem;
626
- row-gap: var(--section-body-paragraph-spacing, 1em);
627
- width: min(
628
- calc(100% - var(--section-reading-inline-start)),
629
- calc(var(--section-reading-body-width) + 13rem + 1.5rem)
630
- );
631
- margin: 0 0 0 var(--section-reading-inline-start);
632
- align-items: start;
633
- }
634
-
635
- .section-reading-layout .section-markdown {
636
- grid-column: 1;
637
- width: 100%;
638
- margin: 0;
639
- }
640
-
641
1343
  .section-note {
642
- grid-column: 2;
643
1344
  display: grid;
644
1345
  grid-template-columns: auto minmax(0, 1fr);
645
1346
  column-gap: 0.25rem;
646
- align-self: start;
647
- margin: 0;
648
- margin-top: var(--section-note-offset, 0px);
1347
+ width: 100%;
1348
+ margin: var(--section-body-paragraph-spacing, 0.85em) 0 0;
649
1349
  border-inline-start: 2px solid color-mix(in srgb, currentColor 35%, transparent);
650
1350
  padding: 0 0 0 0.35rem;
651
- color: color-mix(in srgb, currentColor 76%, transparent);
1351
+ color: var(--section-secondary-text-color, var(--color-secondary-text));
652
1352
  font-size: 0.88em;
653
1353
  line-height: 1.45;
654
1354
  scroll-margin-top: calc(var(--site-top-anchor-offset) + 1rem);
@@ -680,35 +1380,93 @@ ul {
680
1380
  text-underline-offset: 0.15em;
681
1381
  }
682
1382
 
683
- .section-note.is-referenced,
684
1383
  .section-note:target {
685
1384
  border-inline-start-color: currentColor;
686
1385
  background: color-mix(in srgb, currentColor 6%, transparent);
687
1386
  }
688
1387
 
689
- .section-note-ref a.is-referenced,
1388
+ .section-note-ref:has(+ .section-note:hover) a,
690
1389
  .section-note-ref a:hover,
691
1390
  .section-note-ref a:focus-visible {
692
1391
  text-decoration-thickness: 0.16em;
693
1392
  }
694
1393
 
695
- .section-note-content > :first-child {
696
- margin-top: 0;
1394
+ .section-note-content {
1395
+ min-width: 0;
697
1396
  }
698
1397
 
699
- .section-note-content > :last-child {
700
- margin-bottom: 0;
1398
+ @media (min-width: 1101px) {
1399
+ @container (min-width: 55rem) {
1400
+ .section-note {
1401
+ float: right;
1402
+ clear: right;
1403
+ width: var(--section-note-width, 12rem);
1404
+ margin: 0 calc(0px - var(--section-note-width, 12rem) - var(--section-note-gap, 1.25rem)) 0.75rem var(--section-note-gap, 1.25rem);
1405
+ }
1406
+ }
701
1407
  }
702
1408
 
703
1409
  .section-markdown {
704
- width: min(100%, var(--section-body-width-desktop, var(--text-width)));
705
- max-width: 72ch;
1410
+ width: min(100%, var(--reader-text-width, var(--section-body-width-desktop, var(--text-width))));
1411
+ max-width: none;
706
1412
  margin: 0 auto;
707
1413
  font-size: var(--section-body-font-size-desktop, clamp(0.96rem, 0.94rem + 0.08vw, 1rem));
708
1414
  line-height: var(--section-body-line-height, 1.6);
709
1415
  text-align: var(--section-body-align-desktop, left);
710
1416
  }
711
1417
 
1418
+ :root[data-focus-reading='on'] :is(
1419
+ .site-nav-leading,
1420
+ .site-nav,
1421
+ .mobile-nav-menu,
1422
+ .page-nav,
1423
+ .tree-local-navigation,
1424
+ .site-breadcrumbs,
1425
+ .site-footer
1426
+ ) {
1427
+ display: none !important;
1428
+ }
1429
+
1430
+ :root[data-focus-reading='on'] .site-nav-row {
1431
+ justify-content: flex-end;
1432
+ }
1433
+
1434
+ @media (min-width: 701px) {
1435
+ :root[data-focus-reading='on'] .site-page-layout-tree {
1436
+ display: grid;
1437
+ grid-template-columns: var(--tree-navigation-width) minmax(0, 1fr);
1438
+ gap: var(--tree-layout-gap);
1439
+ width: min(calc(100% - (var(--content-gutter) * 2)), var(--tree-layout-width));
1440
+ }
1441
+
1442
+ :root[data-focus-reading='on'] .site-page-layout-tree > .site-content {
1443
+ grid-column: 2;
1444
+ width: 100%;
1445
+ }
1446
+
1447
+ :root[data-focus-reading='on'] .site-page-layout-tree
1448
+ :is(.site-breadcrumbs, .section-header) {
1449
+ margin-right: auto;
1450
+ margin-left: 0;
1451
+ max-width: none;
1452
+ }
1453
+
1454
+ :root[data-focus-reading='on'] .site-page-layout-tree .section-body {
1455
+ width: 100%;
1456
+ margin-right: auto;
1457
+ margin-left: auto;
1458
+ }
1459
+
1460
+ :root[data-focus-reading='on'] .site-page-layout-tree .site-section::before {
1461
+ left: 0;
1462
+ right: calc(0px - var(--tree-layout-outer-margin));
1463
+ }
1464
+ }
1465
+
1466
+ :root[data-focus-reading='on'] .site-content-has-breadcrumbs > .site-section:first-of-type {
1467
+ padding-top: var(--space-nav-to-first-section);
1468
+ }
1469
+
712
1470
  .section-markdown p {
713
1471
  margin: 0 0 var(--section-body-paragraph-spacing, 1em);
714
1472
  }
@@ -726,9 +1484,10 @@ ul {
726
1484
  .section-markdown pre.astro-code {
727
1485
  margin: 0 0 var(--section-body-paragraph-spacing, 1em);
728
1486
  border: 1px solid color-mix(in srgb, currentColor 18%, transparent);
729
- border-radius: 6px;
1487
+ border-radius: var(--corner-radius-medium, 6px);
730
1488
  padding: 0.78rem 0.9rem;
731
- background: #0d1117 !important;
1489
+ background: var(--color-code-background) !important;
1490
+ color: var(--color-code-text);
732
1491
  font-size: 0.92em;
733
1492
  line-height: 1.45;
734
1493
  text-align: left;
@@ -738,6 +1497,11 @@ ul {
738
1497
  font: inherit;
739
1498
  }
740
1499
 
1500
+ .section-markdown :not(pre) > code {
1501
+ overflow-wrap: anywhere;
1502
+ word-break: break-word;
1503
+ }
1504
+
741
1505
  .section-markdown > :last-child,
742
1506
  .image-meta :last-child {
743
1507
  margin-bottom: 0;
@@ -811,12 +1575,15 @@ ul {
811
1575
  --card-list-text-scale: 1;
812
1576
  }
813
1577
 
814
- .section-body > .section-reading-layout:not(:last-child),
815
1578
  .section-body > .section-markdown:not(:last-child),
816
1579
  .section-body > :is(.image-stack, .managed-images):not(:last-child) {
817
1580
  margin-bottom: var(--space-content-block-gap);
818
1581
  }
819
1582
 
1583
+ .section-body > :is(.image-stack, .managed-images, .card-list) {
1584
+ clear: both;
1585
+ }
1586
+
820
1587
  .section-body > .card-list:not(:last-child) {
821
1588
  margin-bottom: calc(var(--space-content-block-gap) + var(--space-card-list-after));
822
1589
  }
@@ -825,31 +1592,8 @@ ul {
825
1592
  margin-bottom: var(--space-card-list-after);
826
1593
  }
827
1594
 
828
- @media (max-width: 1100px) {
829
- .section-reading-layout {
830
- display: block;
831
- width: 100%;
832
- margin: 0;
833
- }
834
-
835
- .section-reading-layout .section-markdown,
836
- .section-reading-layout .section-note {
837
- width: min(100%, var(--section-reading-body-width, var(--section-body-width-desktop, var(--text-width))));
838
- margin-right: auto;
839
- margin-left: auto;
840
- }
841
-
842
- .section-reading-layout .section-note {
843
- margin-top: var(--section-body-paragraph-spacing, 0.85em);
844
- }
845
-
846
- .section-reading-layout .section-markdown + .section-markdown {
847
- margin-top: var(--section-body-paragraph-spacing, 1em);
848
- }
849
- }
850
-
851
1595
  .card-list-width-text {
852
- --card-list-width: var(--text-width);
1596
+ --card-list-width: var(--reader-text-width, var(--text-width));
853
1597
  }
854
1598
 
855
1599
  .card-list-width-narrow {
@@ -903,9 +1647,9 @@ ul {
903
1647
  align-content: start;
904
1648
  margin: 0;
905
1649
  border: 1px solid color-mix(in srgb, currentColor 18%, transparent);
906
- border-radius: 8px;
1650
+ border-radius: var(--corner-radius-large, 8px);
907
1651
  padding: var(--card-list-padding);
908
- background: color-mix(in srgb, var(--section-background-color, var(--color-page)) 92%, currentColor 8%);
1652
+ background: var(--color-surface);
909
1653
  color: inherit;
910
1654
  }
911
1655
 
@@ -1045,11 +1789,15 @@ ul {
1045
1789
 
1046
1790
  .image-carousel {
1047
1791
  position: relative;
1792
+ --image-carousel-width-from-height: var(--image-carousel-width-from-height-desktop, var(--image-layout-width));
1793
+ --image-carousel-control-background: var(--color-control-background);
1794
+ --image-carousel-control-background-active: var(--color-control-background-active);
1795
+ --image-carousel-control-color: var(--color-control-text);
1048
1796
  outline: none;
1049
1797
  }
1050
1798
 
1051
1799
  .image-carousel:focus-visible {
1052
- outline: 2px solid currentColor;
1800
+ outline: var(--focus-indicator-width) solid var(--color-focus-ring);
1053
1801
  outline-offset: 0.5rem;
1054
1802
  }
1055
1803
 
@@ -1062,7 +1810,11 @@ ul {
1062
1810
  .image-carousel-stage {
1063
1811
  position: relative;
1064
1812
  display: grid;
1065
- width: min(100%, var(--image-layout-width));
1813
+ width: min(
1814
+ 100%,
1815
+ var(--image-layout-width),
1816
+ var(--image-carousel-width-from-height, var(--image-layout-width))
1817
+ );
1066
1818
  max-height: var(--image-max-height);
1067
1819
  margin: 0 auto;
1068
1820
  aspect-ratio: var(--image-carousel-aspect-ratio, auto);
@@ -1076,6 +1828,7 @@ ul {
1076
1828
  display: grid;
1077
1829
  width: 100%;
1078
1830
  height: 100%;
1831
+ min-height: 0;
1079
1832
  place-items: center;
1080
1833
  }
1081
1834
 
@@ -1092,21 +1845,18 @@ ul {
1092
1845
  .image-carousel[data-carousel-ready='true'] .image-carousel-slide {
1093
1846
  display: grid;
1094
1847
  height: 100%;
1848
+ min-height: 0;
1095
1849
  align-content: start;
1096
1850
  }
1097
1851
 
1098
- .image-carousel-frame .managed-image.managed-image-landscape {
1852
+ .image-carousel-frame .managed-image {
1099
1853
  width: 100%;
1100
- height: auto;
1101
- max-width: 100%;
1102
- max-height: 100%;
1103
- }
1104
-
1105
- .image-carousel-frame .managed-image:not(.managed-image-landscape) {
1106
- width: auto;
1107
1854
  height: 100%;
1855
+ min-width: 0;
1856
+ min-height: 0;
1108
1857
  max-width: 100%;
1109
1858
  max-height: 100%;
1859
+ object-fit: contain;
1110
1860
  }
1111
1861
 
1112
1862
  .image-carousel-button,
@@ -1123,28 +1873,40 @@ ul {
1123
1873
  position: absolute;
1124
1874
  top: 50%;
1125
1875
  z-index: 2;
1126
- width: 2.625rem;
1127
- height: 2.625rem;
1876
+ width: 2.75rem;
1877
+ height: 2.75rem;
1128
1878
  padding: 0;
1129
1879
  place-items: center;
1130
- border: 1px solid currentColor;
1880
+ border: 0;
1131
1881
  border-radius: 999px;
1132
- background: var(--section-background-color, var(--color-page));
1133
- box-shadow: 0 0.25rem 1rem rgb(0 0 0 / 0.12);
1134
- color: inherit;
1882
+ background: var(--image-carousel-control-background);
1883
+ box-shadow: 0 0.125rem 0.5rem rgb(0 0 0 / 18%);
1884
+ color: var(--image-carousel-control-color);
1135
1885
  cursor: pointer;
1136
- font: inherit;
1137
- font-size: 2rem;
1138
- line-height: 1;
1139
- opacity: 0.88;
1140
1886
  transform: translateY(-50%);
1141
1887
  }
1142
1888
 
1889
+ .image-carousel-button svg {
1890
+ width: 1.5rem;
1891
+ height: 1.5rem;
1892
+ fill: none;
1893
+ stroke: currentColor;
1894
+ stroke-linecap: round;
1895
+ stroke-linejoin: round;
1896
+ stroke-width: 2;
1897
+ }
1898
+
1143
1899
  .image-carousel-button:hover:not(:disabled),
1144
1900
  .image-carousel-button:focus-visible:not(:disabled) {
1145
- background: currentColor;
1146
- color: var(--section-background-color, var(--color-page));
1147
- opacity: 1;
1901
+ background: var(--image-carousel-control-background-active);
1902
+ }
1903
+
1904
+ .image-carousel-button:focus-visible:not(:disabled) {
1905
+ outline: var(--focus-indicator-width) solid var(--image-carousel-control-color);
1906
+ outline-offset: 2px;
1907
+ box-shadow:
1908
+ 0 0 0 4px var(--image-carousel-control-background-active),
1909
+ 0 0 0 6px var(--color-focus-ring);
1148
1910
  }
1149
1911
 
1150
1912
  .image-carousel-button:disabled {
@@ -1166,19 +1928,29 @@ ul {
1166
1928
  right: 0.75rem;
1167
1929
  bottom: 0.75rem;
1168
1930
  z-index: 2;
1169
- min-width: 3.25rem;
1170
- min-height: 1.75rem;
1931
+ min-width: 3rem;
1932
+ min-height: 1.875rem;
1933
+ padding: 0.35rem 0.65rem;
1171
1934
  place-items: center;
1172
- border: 1px solid currentColor;
1173
- background: var(--section-background-color, var(--color-page));
1174
- box-shadow: 0 0.25rem 1rem rgb(0 0 0 / 0.12);
1175
- font-size: 0.85rem;
1935
+ border: 0;
1936
+ border-radius: 999px;
1937
+ background: var(--image-carousel-control-background);
1938
+ box-shadow: 0 0.125rem 0.5rem rgb(0 0 0 / 18%);
1939
+ color: var(--image-carousel-control-color);
1940
+ font-size: 0.8125rem;
1941
+ font-variant-numeric: tabular-nums;
1942
+ font-weight: 600;
1176
1943
  line-height: 1;
1177
1944
  text-align: center;
1178
1945
  }
1179
1946
 
1180
1947
  .image-carousel-captions {
1181
- width: min(100%, var(--image-layout-width), 72ch);
1948
+ width: min(
1949
+ 100%,
1950
+ var(--image-layout-width),
1951
+ var(--image-carousel-width-from-height, var(--image-layout-width)),
1952
+ 72ch
1953
+ );
1182
1954
  margin: 0 auto;
1183
1955
  }
1184
1956
 
@@ -1215,7 +1987,7 @@ ul {
1215
1987
  justify-content: var(--section-caption-justify-desktop, center);
1216
1988
  gap: 0.5rem;
1217
1989
  margin-bottom: 0;
1218
- color: inherit;
1990
+ color: var(--section-secondary-text-color, var(--color-secondary-text));
1219
1991
  font-size: inherit;
1220
1992
  font-family: var(--font-sans);
1221
1993
  letter-spacing: 0;
@@ -1241,11 +2013,19 @@ ul {
1241
2013
  backdrop-filter: none;
1242
2014
  }
1243
2015
 
2016
+ .image-carousel {
2017
+ --image-carousel-width-from-height: var(--image-carousel-width-from-height-mobile, var(--image-layout-width));
2018
+ }
2019
+
1244
2020
  .site-nav-row {
1245
2021
  width: min(calc(100% - (var(--content-gutter) * 2)), var(--page-width));
1246
2022
  padding: 0.75rem 0;
1247
2023
  }
1248
2024
 
2025
+ .site-nav-row-mobile-only {
2026
+ display: flex;
2027
+ }
2028
+
1249
2029
  .site-brand {
1250
2030
  max-width: min(70vw, 26rem);
1251
2031
  font-size: 0.76rem;
@@ -1272,6 +2052,10 @@ ul {
1272
2052
  display: none;
1273
2053
  }
1274
2054
 
2055
+ .page-nav.page-nav-title-only {
2056
+ display: block;
2057
+ }
2058
+
1275
2059
  .mobile-nav-menu > summary {
1276
2060
  display: flex;
1277
2061
  align-items: center;
@@ -1284,7 +2068,7 @@ ul {
1284
2068
  letter-spacing: 0.1em;
1285
2069
  line-height: 1;
1286
2070
  list-style: none;
1287
- opacity: 0.9;
2071
+ color: var(--site-top-text-color, var(--color-primary-text));
1288
2072
  text-transform: uppercase;
1289
2073
  }
1290
2074
 
@@ -1335,9 +2119,12 @@ ul {
1335
2119
  text-transform: none;
1336
2120
  }
1337
2121
 
1338
- .mobile-nav-panel ul {
2122
+ .mobile-nav-panel :is(ul, ol) {
1339
2123
  display: grid;
1340
2124
  gap: 0;
2125
+ margin: 0;
2126
+ padding: 0;
2127
+ list-style: none;
1341
2128
  }
1342
2129
 
1343
2130
  .navigation-page-tree-mobile > .navigation-page-node {
@@ -1348,180 +2135,139 @@ ul {
1348
2135
  border-top: 0;
1349
2136
  }
1350
2137
 
1351
- .navigation-page-tree-mobile .navigation-page-link,
1352
- .mobile-navigation-branch > summary,
1353
- .mobile-navigation-page-links a {
2138
+ .navigation-page-tree-mobile .navigation-page-link {
1354
2139
  display: flex;
1355
2140
  align-items: center;
1356
2141
  width: 100%;
1357
2142
  min-height: 3.25rem;
1358
- padding: 0.75rem 0;
1359
- }
1360
-
1361
- .mobile-navigation-branch > summary {
1362
- justify-content: space-between;
1363
- border: 0;
2143
+ padding: 0.75rem 2.5rem 0.75rem 0;
2144
+ color: var(--color-secondary-text);
1364
2145
  font-size: 0.94rem;
1365
- font-weight: 650;
1366
2146
  letter-spacing: 0;
1367
2147
  line-height: 1.35;
1368
- list-style: none;
2148
+ text-decoration: none;
1369
2149
  text-transform: none;
1370
- cursor: pointer;
1371
- }
1372
-
1373
- .mobile-nav-menu .mobile-navigation-branch > summary::after {
1374
- content: "+";
1375
- font-size: 1.1rem;
1376
- font-weight: 400;
1377
- opacity: 0.7;
1378
2150
  }
1379
2151
 
1380
- .mobile-nav-menu .mobile-navigation-branch[open] > summary::after {
1381
- content: "−";
2152
+ .navigation-page-tree-mobile .navigation-page-disclosure > .navigation-page-summary {
2153
+ position: static;
2154
+ display: flex;
2155
+ align-items: center;
2156
+ justify-content: space-between;
2157
+ width: 100%;
2158
+ height: auto;
2159
+ min-height: 3.25rem;
2160
+ padding: 0.75rem 0;
2161
+ font-size: 0.94rem;
2162
+ line-height: 1.35;
2163
+ color: var(--color-secondary-text);
1382
2164
  }
1383
2165
 
1384
- .mobile-navigation-branch > summary::-webkit-details-marker {
2166
+ .navigation-page-tree-mobile .navigation-page-disclosure > .navigation-page-open-link {
1385
2167
  display: none;
2168
+ align-items: center;
2169
+ min-height: 3.25rem;
2170
+ width: calc(100% - 2.5rem);
2171
+ padding: 0.75rem 0;
2172
+ font-size: 0.94rem;
2173
+ line-height: 1.35;
2174
+ color: var(--color-secondary-text);
2175
+ overflow-wrap: anywhere;
1386
2176
  }
1387
2177
 
1388
- .mobile-navigation-branch-content {
1389
- margin-left: 0.35rem;
1390
- border-left: 1px solid color-mix(in srgb, currentColor 20%, transparent);
1391
- padding-left: 1rem;
1392
- }
1393
-
1394
- .mobile-navigation-page-links li,
1395
- .mobile-navigation-branch-content > .navigation-page-tree-mobile > .navigation-page-node {
1396
- border-top: 1px solid color-mix(in srgb, currentColor 10%, transparent);
1397
- }
1398
-
1399
- .mobile-navigation-page-links li:first-child {
1400
- border-top: 0;
2178
+ .navigation-page-tree-mobile .navigation-page-disclosure[open] > .navigation-page-open-link {
2179
+ display: flex;
1401
2180
  }
1402
2181
 
1403
- .mobile-navigation-page-links a,
1404
- .navigation-page-tree-mobile .navigation-page-link {
1405
- font-size: 0.9rem;
1406
- letter-spacing: 0;
1407
- line-height: 1.35;
1408
- text-transform: none;
2182
+ .navigation-page-tree-mobile .navigation-page-disclosure > .navigation-page-summary:hover,
2183
+ .navigation-page-tree-mobile .navigation-page-disclosure > .navigation-page-summary:focus-visible,
2184
+ .navigation-page-node-current > .navigation-page-disclosure > .navigation-page-summary {
2185
+ background: transparent;
2186
+ color: var(--color-primary-text);
1409
2187
  }
1410
2188
 
1411
- .navigation-page-node-current > .navigation-page-link,
1412
- .navigation-page-node-current > .mobile-navigation-branch > summary > span,
1413
- .navigation-page-node-current-branch > .mobile-navigation-branch > summary > span {
2189
+ .navigation-page-tree-mobile .navigation-page-disclosure > .navigation-page-summary:hover > :first-child,
2190
+ .navigation-page-tree-mobile .navigation-page-disclosure > .navigation-page-summary:focus-visible > :first-child,
2191
+ .navigation-page-node-current > .navigation-page-disclosure > .navigation-page-summary > :first-child {
1414
2192
  text-decoration: underline;
1415
2193
  text-decoration-thickness: 1px;
1416
2194
  text-underline-offset: 0.3em;
1417
2195
  }
1418
2196
 
1419
- .mobile-nav-panel a,
1420
- .mobile-nav-page-open,
1421
- .mobile-nav-back {
1422
- font-family: inherit;
1423
- font-size: 0.94rem;
1424
- letter-spacing: 0;
1425
- line-height: 1.35;
1426
- text-transform: none;
2197
+ .navigation-page-chevron::before {
2198
+ display: block;
2199
+ content: "›";
2200
+ font-size: 1.25rem;
2201
+ line-height: 1;
2202
+ transition: transform 140ms ease;
1427
2203
  }
1428
2204
 
1429
- .mobile-nav-page {
1430
- border-top: 1px solid color-mix(in srgb, currentColor 14%, transparent);
1431
- padding: 0;
2205
+ .navigation-page-disclosure[open] > .navigation-page-summary .navigation-page-chevron::before {
2206
+ transform: rotate(90deg);
1432
2207
  }
1433
2208
 
1434
- .mobile-nav-page:first-child {
1435
- border-top: 0;
2209
+ .navigation-page-tree-mobile .navigation-page-disclosure > .navigation-page-summary > [aria-hidden='true']::before,
2210
+ .navigation-page-tree-mobile .navigation-page-disclosure[open] > .navigation-page-summary > [aria-hidden='true']::before {
2211
+ content: "›";
1436
2212
  }
1437
2213
 
1438
- .mobile-nav-page > a,
1439
- .mobile-nav-page-open {
1440
- display: flex;
1441
- align-items: center;
1442
- justify-content: space-between;
1443
- width: 100%;
1444
- min-height: 3.4rem;
1445
- padding: 0.8rem 0;
1446
- font-weight: 600;
2214
+ .navigation-page-tree-mobile .navigation-page-branch-content {
2215
+ margin-left: 0.35rem;
2216
+ border-left: 1px solid color-mix(in srgb, currentColor 20%, transparent);
2217
+ padding-left: 1rem;
1447
2218
  }
1448
2219
 
1449
- .mobile-nav-page-open {
1450
- display: none;
1451
- border: 0;
1452
- background: transparent;
1453
- color: currentColor;
1454
- cursor: pointer;
1455
- font-weight: 600;
1456
- text-align: left;
2220
+ .navigation-page-tree-mobile .navigation-page-sections {
2221
+ margin: 0 0 0.45rem;
1457
2222
  }
1458
2223
 
1459
- .mobile-nav-page-open::after {
1460
- content: "›";
1461
- font-size: 1.35rem;
1462
- line-height: 1;
1463
- opacity: 0.68;
2224
+ .navigation-page-branch-content > .navigation-page-tree-mobile > .navigation-page-node {
2225
+ border-top: 1px solid color-mix(in srgb, currentColor 10%, transparent);
1464
2226
  }
1465
2227
 
1466
- .mobile-nav-page-open:hover > span,
1467
- .mobile-nav-page-open:focus-visible > span,
1468
- .mobile-nav-page-open[aria-current='page'] > span {
2228
+ .navigation-page-tree-mobile .navigation-page-link:hover,
2229
+ .navigation-page-tree-mobile .navigation-page-link:focus-visible,
2230
+ .navigation-page-tree-mobile .navigation-page-link[aria-current='page'] {
2231
+ color: var(--color-primary-text);
1469
2232
  text-decoration: underline;
1470
2233
  text-decoration-thickness: 1px;
1471
2234
  text-underline-offset: 0.3em;
1472
2235
  }
1473
2236
 
1474
- .mobile-nav-menu[data-mobile-navigation-ready='true'] .mobile-nav-page-open,
1475
- .mobile-nav-menu[data-mobile-navigation-ready='true'] .mobile-nav-back {
1476
- display: flex;
1477
- }
1478
-
1479
- .mobile-nav-menu[data-mobile-navigation-ready='true'] .mobile-nav-page-fallback {
1480
- display: none;
1481
- }
1482
-
1483
- .mobile-nav-view[hidden] {
1484
- display: none;
2237
+ .page-contents-links-mobile {
2238
+ margin-top: 0.25rem;
1485
2239
  }
1486
2240
 
1487
- .mobile-nav-menu:not([data-mobile-navigation-ready='true']) .mobile-nav-page-view:not([data-current-page='true']) {
1488
- display: none;
2241
+ .page-contents-links-mobile > li {
2242
+ border-bottom: 1px solid color-mix(in srgb, currentColor 12%, transparent);
1489
2243
  }
1490
2244
 
1491
- .mobile-nav-page-view + .mobile-nav-page-view,
1492
- .mobile-nav-view + .mobile-nav-view {
1493
- margin-top: 2rem;
2245
+ .page-contents-links-mobile li + li {
2246
+ margin-top: 0;
1494
2247
  }
1495
2248
 
1496
- .mobile-nav-menu[data-mobile-navigation-ready='true'] .mobile-nav-view {
1497
- margin-top: 0;
2249
+ .page-contents-links-mobile ol {
2250
+ border-left: 1px solid color-mix(in srgb, currentColor 16%, transparent);
2251
+ padding-left: 1rem;
1498
2252
  }
1499
2253
 
1500
- .mobile-nav-back {
1501
- display: none;
1502
- align-items: center;
1503
- gap: 0.55rem;
1504
- min-height: 2.75rem;
1505
- margin: -0.4rem 0 0.65rem;
1506
- border: 0;
1507
- padding: 0;
1508
- background: transparent;
1509
- color: currentColor;
1510
- cursor: pointer;
1511
- opacity: 0.78;
2254
+ .page-contents-links-mobile a {
2255
+ min-height: 3.2rem;
2256
+ padding: 0.85rem 0;
2257
+ font-size: 0.92rem;
2258
+ color: var(--color-secondary-text);
1512
2259
  }
1513
2260
 
1514
- .mobile-nav-back::before {
1515
- content: "‹";
1516
- font-size: 1.35rem;
1517
- line-height: 1;
2261
+ .mobile-nav-panel a {
2262
+ font-family: inherit;
2263
+ font-size: 0.94rem;
2264
+ letter-spacing: 0;
2265
+ line-height: 1.35;
2266
+ text-transform: none;
1518
2267
  }
1519
2268
 
1520
- .mobile-nav-back:hover,
1521
- .mobile-nav-back:focus-visible {
1522
- opacity: 1;
1523
- text-decoration: underline;
1524
- text-underline-offset: 0.25em;
2269
+ .mobile-nav-view + .mobile-nav-view {
2270
+ margin-top: 2rem;
1525
2271
  }
1526
2272
 
1527
2273
  .mobile-nav-sections {
@@ -1536,17 +2282,21 @@ ul {
1536
2282
  min-height: 3.2rem;
1537
2283
  padding: 0.85rem 0;
1538
2284
  font-size: 0.92rem;
1539
- opacity: 0.78;
2285
+ color: var(--color-secondary-text);
1540
2286
  }
1541
2287
 
1542
- .mobile-nav-sections .mobile-nav-overview {
2288
+ .mobile-nav-sections .mobile-nav-page-top {
1543
2289
  font-weight: 650;
1544
2290
  }
1545
2291
 
2292
+ .mobile-nav-sections li:not(.mobile-nav-page-top-item) a {
2293
+ padding-left: 1rem;
2294
+ }
2295
+
1546
2296
  .mobile-nav-sections a:hover,
1547
2297
  .mobile-nav-sections a:focus-visible,
1548
2298
  .mobile-nav-sections a[aria-current='location'] {
1549
- opacity: 1;
2299
+ color: var(--color-primary-text);
1550
2300
  text-decoration: underline;
1551
2301
  text-decoration-thickness: 1px;
1552
2302
  text-underline-offset: 0.25em;
@@ -1560,6 +2310,24 @@ ul {
1560
2310
  width: min(calc(100% - (var(--content-gutter) * 2)), var(--page-width));
1561
2311
  }
1562
2312
 
2313
+ .site-page-layout-tree {
2314
+ display: block;
2315
+ width: 100%;
2316
+ }
2317
+
2318
+ .site-page-layout-tree > .site-content {
2319
+ width: min(calc(100% - (var(--content-gutter) * 2)), var(--page-width));
2320
+ }
2321
+
2322
+ .site-page-layout-tree .site-section::before {
2323
+ left: calc(50% - 50vw);
2324
+ right: calc(50% - 50vw);
2325
+ }
2326
+
2327
+ .tree-local-navigation {
2328
+ display: none;
2329
+ }
2330
+
1563
2331
  .site-banners {
1564
2332
  width: min(calc(100% - 2rem), var(--page-width));
1565
2333
  padding-top: 0.75rem;
@@ -1587,16 +2355,21 @@ ul {
1587
2355
  }
1588
2356
 
1589
2357
  .section-header {
1590
- width: min(100%, var(--section-heading-width-mobile, var(--section-heading-width-desktop, 760px)));
2358
+ width: min(
2359
+ 100%,
2360
+ var(
2361
+ --reader-text-width,
2362
+ var(--section-heading-width-mobile, var(--section-heading-width-desktop, 760px))
2363
+ )
2364
+ );
1591
2365
  text-align: var(--section-heading-align-mobile, var(--section-heading-align-desktop, center));
1592
2366
  }
1593
2367
 
1594
- .section-reading-layout {
1595
- --section-reading-body-width: var(--section-body-width-mobile, var(--section-body-width-desktop, var(--text-width)));
1596
- }
1597
-
1598
2368
  .section-markdown {
1599
- width: min(100%, var(--section-body-width-mobile, var(--section-body-width-desktop, var(--text-width))));
2369
+ width: min(
2370
+ 100%,
2371
+ var(--reader-text-width, var(--section-body-width-mobile, var(--section-body-width-desktop, var(--text-width))))
2372
+ );
1600
2373
  font-size: var(
1601
2374
  --section-body-font-size-mobile,
1602
2375
  var(--section-body-font-size-desktop, clamp(0.96rem, 0.94rem + 0.08vw, 1rem))
@@ -1643,29 +2416,14 @@ ul {
1643
2416
  max-height: var(--image-max-height);
1644
2417
  }
1645
2418
 
1646
- .image-carousel-stage {
1647
- aspect-ratio: auto;
1648
- }
1649
-
1650
- .image-carousel-viewport {
1651
- width: 100%;
1652
- height: auto;
1653
- aspect-ratio: var(--image-carousel-aspect-ratio, auto);
1654
- }
1655
-
1656
- .image-carousel[data-carousel-ready='true'] .image-carousel-button {
1657
- display: none;
1658
- }
1659
-
1660
2419
  .image-carousel-position {
1661
2420
  position: absolute;
1662
2421
  right: 0.5rem;
1663
2422
  bottom: 0.5rem;
1664
2423
  min-width: 3rem;
1665
- min-height: 1.5rem;
1666
- box-shadow: 0 0.2rem 0.75rem rgb(0 0 0 / 0.1);
1667
- font-size: 0.78rem;
1668
- opacity: 0.88;
2424
+ min-height: 1.75rem;
2425
+ padding: 0.3rem 0.55rem;
2426
+ font-size: 0.75rem;
1669
2427
  }
1670
2428
 
1671
2429
  :is(.image-stack, .managed-images) {
@@ -1677,3 +2435,76 @@ ul {
1677
2435
  font-size: 1rem;
1678
2436
  }
1679
2437
  }
2438
+
2439
+ @media (forced-colors: active) {
2440
+ :root,
2441
+ :root[data-color-mode='dark'],
2442
+ :root[data-color-mode='system'] {
2443
+ --color-page: Canvas;
2444
+ --color-primary-text: CanvasText;
2445
+ --color-secondary-text: CanvasText;
2446
+ --color-link-text: LinkText;
2447
+ --color-text: CanvasText;
2448
+ --color-muted: CanvasText;
2449
+ --color-accent: LinkText;
2450
+ --color-surface: Canvas;
2451
+ --color-soft: CanvasText;
2452
+ --color-border: CanvasText;
2453
+ --color-nav-background: Canvas;
2454
+ --color-nav-separator: CanvasText;
2455
+ --color-frame-background: Canvas;
2456
+ --color-frame-text: CanvasText;
2457
+ --color-surface-base-background: Canvas;
2458
+ --color-surface-base-text: CanvasText;
2459
+ --color-surface-base-secondary-text: CanvasText;
2460
+ --color-surface-soft-background: Canvas;
2461
+ --color-surface-soft-text: CanvasText;
2462
+ --color-surface-soft-secondary-text: CanvasText;
2463
+ --color-surface-emphasis-background: Canvas;
2464
+ --color-surface-emphasis-text: CanvasText;
2465
+ --color-surface-emphasis-secondary-text: CanvasText;
2466
+ --color-focus-ring: Highlight;
2467
+ --color-focus-ring-contrast: Canvas;
2468
+ --color-selection-background: Highlight;
2469
+ --color-selection-text: HighlightText;
2470
+ --color-control-background: ButtonFace;
2471
+ --color-control-background-active: Highlight;
2472
+ --color-control-text: ButtonText;
2473
+ --color-code-background: Canvas;
2474
+ --color-code-text: CanvasText;
2475
+ --color-warning-accent: Highlight;
2476
+ --color-warning-surface: Canvas;
2477
+ --color-warning-text: CanvasText;
2478
+ --color-error-accent: Highlight;
2479
+ --color-error-surface: Canvas;
2480
+ --color-error-text: CanvasText;
2481
+ --color-success-accent: Highlight;
2482
+ --color-success-surface: Canvas;
2483
+ --color-success-text: CanvasText;
2484
+ }
2485
+
2486
+ .site-top {
2487
+ backdrop-filter: none;
2488
+ }
2489
+
2490
+ .display-settings-panel,
2491
+ .mobile-nav-panel,
2492
+ .site-nav-submenu > nav,
2493
+ .card-list-item,
2494
+ .image-carousel-button,
2495
+ .image-carousel-position {
2496
+ border: 1px solid CanvasText;
2497
+ box-shadow: none;
2498
+ }
2499
+
2500
+ :is(.display-settings button, .display-settings-segmented span, .mobile-nav-menu > summary, .site-banner-dismiss) {
2501
+ border-color: ButtonText;
2502
+ background: ButtonFace;
2503
+ color: ButtonText;
2504
+ }
2505
+
2506
+ :is(.display-settings-segmented input:checked + span, .image-carousel-button:hover:not(:disabled)) {
2507
+ background: Highlight;
2508
+ color: HighlightText;
2509
+ }
2510
+ }