@janga/norna 0.7.18 → 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 (595) hide show
  1. package/README.md +22 -12
  2. package/astro.config.mjs +22 -0
  3. package/bin/norna-cli.mjs +6 -0
  4. package/package.json +45 -12
  5. package/schemas/category.schema.json +20 -0
  6. package/schemas/config.schema.json +16 -6
  7. package/schemas/content-frontmatter.schema.json +5 -5
  8. package/schemas/manifest.json +2 -1
  9. package/schemas/page-theme.schema.json +22 -22
  10. package/schemas/sitewide-content.schema.json +18 -18
  11. package/schemas/theme.schema.json +312 -146
  12. package/scripts/add-site-node.mjs +251 -0
  13. package/scripts/check-config.mjs +10 -2
  14. package/scripts/deploy-site.mjs +5 -8
  15. package/scripts/generate-images.mjs +11 -15
  16. package/scripts/generate-schemas.mjs +4 -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 -177
  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/presentation-contract.mjs +266 -0
  27. package/scripts/lib/presentation-palette-metadata.mjs +51 -0
  28. package/scripts/lib/presentation.mjs +526 -79
  29. package/scripts/lib/project-config.mjs +53 -6
  30. package/scripts/lib/schema-definitions.mjs +53 -13
  31. package/scripts/lib/schema-editor-metadata.mjs +107 -18
  32. package/scripts/lib/schema-value-definitions.mjs +24 -10
  33. package/scripts/lib/site-content.mjs +23 -238
  34. package/scripts/lib/site-paths.mjs +2 -3
  35. package/scripts/lib/site-structure.mjs +189 -0
  36. package/scripts/lib/theme-presets.mjs +75 -104
  37. package/scripts/lib/theme-profiles.mjs +221 -0
  38. package/scripts/lib/typography.mjs +220 -35
  39. package/scripts/lib/yaml-config.mjs +46 -6
  40. package/scripts/lib/yaml-indentation.mjs +86 -0
  41. package/scripts/show-typography.mjs +2 -3
  42. package/scripts/sync-content-sections.mjs +87 -76
  43. package/src/components/DisplaySettings.astro +107 -0
  44. package/src/components/ImageCarousel.astro +34 -13
  45. package/src/components/NavigationPageTree.astro +74 -43
  46. package/src/components/SectionNavigationScript.astro +56 -2
  47. package/src/components/SiteBreadcrumbs.astro +15 -12
  48. package/src/components/SiteNavigation.astro +92 -41
  49. package/src/components/SitePage.astro +35 -39
  50. package/src/components/SiteSection.astro +35 -191
  51. package/src/components/SiteTreeNavigation.astro +10 -9
  52. package/src/layouts/BaseLayout.astro +46 -6
  53. package/src/lib/generatedImages.ts +0 -7
  54. package/src/lib/readerPreferencesScript.mjs +141 -0
  55. package/src/lib/sectionContent.ts +119 -201
  56. package/src/lib/siteNavigation.ts +36 -18
  57. package/src/lib/sitePages.ts +91 -20
  58. package/src/pages/[...slug].astro +2 -2
  59. package/src/styles/global.css +759 -296
  60. package/starters/basic/README.md +2 -2
  61. package/docs/README.md +0 -137
  62. package/docs/assets/norna-dog-shelter.jpg +0 -0
  63. package/docs/commands.md +0 -189
  64. package/docs/configuration.md +0 -142
  65. package/docs/content.md +0 -351
  66. package/docs/design/command-organization.md +0 -414
  67. package/docs/design/navigation-and-theme-plan.md +0 -186
  68. package/docs/design/norna-diagram-design.md +0 -159
  69. package/docs/design/site-examples-structure.md +0 -119
  70. package/docs/engine-development.md +0 -215
  71. package/docs/getting-started.md +0 -206
  72. package/docs/how-to/embedded-site.md +0 -35
  73. package/docs/images-and-metadata.md +0 -188
  74. package/docs/local-development.md +0 -82
  75. package/docs/pages.md +0 -190
  76. package/docs/public-files.md +0 -118
  77. package/docs/publishing.md +0 -117
  78. package/docs/requirements.md +0 -54
  79. package/docs/site-files.md +0 -152
  80. package/docs/sitewide-content.md +0 -73
  81. package/docs/theme.md +0 -237
  82. package/docs/typography.md +0 -168
  83. package/examples/README.md +0 -49
  84. package/examples/complete-sites/dog-shelter-multi-page/.astro/collections/site.schema.json +0 -35
  85. package/examples/complete-sites/dog-shelter-multi-page/.astro/collections/sitewide.schema.json +0 -97
  86. package/examples/complete-sites/dog-shelter-multi-page/.astro/collections/theme.schema.json +0 -852
  87. package/examples/complete-sites/dog-shelter-multi-page/.astro/content-assets.mjs +0 -4
  88. package/examples/complete-sites/dog-shelter-multi-page/.astro/content-modules.mjs +0 -1
  89. package/examples/complete-sites/dog-shelter-multi-page/.astro/content.d.ts +0 -183
  90. package/examples/complete-sites/dog-shelter-multi-page/.astro/data-store.json +0 -1
  91. package/examples/complete-sites/dog-shelter-multi-page/.astro/dev-local.json +0 -8
  92. package/examples/complete-sites/dog-shelter-multi-page/.astro/dev.json +0 -13
  93. package/examples/complete-sites/dog-shelter-multi-page/.astro/dev.log +0 -36
  94. package/examples/complete-sites/dog-shelter-multi-page/.astro/settings.json +0 -5
  95. package/examples/complete-sites/dog-shelter-multi-page/.astro/types.d.ts +0 -2
  96. package/examples/complete-sites/dog-shelter-multi-page/README.md +0 -24
  97. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/_metadata.json +0 -74
  98. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro-B3JHJyiv.js +0 -434
  99. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro-B3JHJyiv.js.map +0 -1
  100. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_aria-query.js +0 -6390
  101. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -1
  102. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_axobject-query.js +0 -2702
  103. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -1
  104. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_html-escaper.js +0 -65
  105. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -1
  106. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -455
  107. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -1
  108. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/audit-C3SVr7dT.js +0 -1534
  109. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/audit-C3SVr7dT.js.map +0 -1
  110. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/highlight-BLtvqtzO.js +0 -48
  111. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +0 -1
  112. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/icons-C92i61-2.js +0 -42
  113. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/icons-C92i61-2.js.map +0 -1
  114. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/package.json +0 -3
  115. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -4
  116. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/settings-v5GgKks_.js +0 -190
  117. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/settings-v5GgKks_.js.map +0 -1
  118. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/toolbar-BFvJVp26.js +0 -458
  119. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/toolbar-BFvJVp26.js.map +0 -1
  120. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/ui-library-Cd35oAvo.js +0 -1016
  121. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/ui-library-Cd35oAvo.js.map +0 -1
  122. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/window-vo3A6TMn.js +0 -32
  123. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/window-vo3A6TMn.js.map +0 -1
  124. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/xray-DwhzGckb.js +0 -111
  125. package/examples/complete-sites/dog-shelter-multi-page/node_modules/.vite/deps/xray-DwhzGckb.js.map +0 -1
  126. package/examples/complete-sites/dog-shelter-multi-page/site/.norna/generated-images.json +0 -98
  127. package/examples/complete-sites/dog-shelter-multi-page/site/config.yaml +0 -1
  128. package/examples/complete-sites/dog-shelter-multi-page/site/pages/000-home/content.md +0 -23
  129. package/examples/complete-sites/dog-shelter-multi-page/site/pages/000-home/images/shelter-dog.jpg +0 -0
  130. package/examples/complete-sites/dog-shelter-multi-page/site/pages/010-dogs/content.md +0 -21
  131. package/examples/complete-sites/dog-shelter-multi-page/site/pages/010-dogs/images/rex.jpg +0 -0
  132. package/examples/complete-sites/dog-shelter-multi-page/site/pages/010-dogs/images/rover.jpg +0 -0
  133. package/examples/complete-sites/dog-shelter-multi-page/site/pages/020-adopt/content.md +0 -22
  134. package/examples/complete-sites/dog-shelter-multi-page/site/pages/020-adopt/images/adoption-dog.jpg +0 -0
  135. package/examples/complete-sites/dog-shelter-multi-page/site/public/favicon.svg +0 -10
  136. package/examples/complete-sites/dog-shelter-multi-page/site/public/logo.svg +0 -9
  137. package/examples/complete-sites/dog-shelter-multi-page/site/public/robots.txt +0 -2
  138. package/examples/complete-sites/dog-shelter-multi-page/site/sitewide-content.yaml +0 -4
  139. package/examples/complete-sites/dog-shelter-multi-page/site/theme.yaml +0 -1
  140. package/examples/complete-sites/dog-shelter-single-page/.astro/collections/site.schema.json +0 -35
  141. package/examples/complete-sites/dog-shelter-single-page/.astro/collections/sitewide.schema.json +0 -97
  142. package/examples/complete-sites/dog-shelter-single-page/.astro/collections/theme.schema.json +0 -852
  143. package/examples/complete-sites/dog-shelter-single-page/.astro/content-assets.mjs +0 -4
  144. package/examples/complete-sites/dog-shelter-single-page/.astro/content-modules.mjs +0 -1
  145. package/examples/complete-sites/dog-shelter-single-page/.astro/content.d.ts +0 -183
  146. package/examples/complete-sites/dog-shelter-single-page/.astro/data-store.json +0 -1
  147. package/examples/complete-sites/dog-shelter-single-page/.astro/dev-local.json +0 -8
  148. package/examples/complete-sites/dog-shelter-single-page/.astro/dev.json +0 -13
  149. package/examples/complete-sites/dog-shelter-single-page/.astro/dev.log +0 -18
  150. package/examples/complete-sites/dog-shelter-single-page/.astro/settings.json +0 -5
  151. package/examples/complete-sites/dog-shelter-single-page/.astro/types.d.ts +0 -2
  152. package/examples/complete-sites/dog-shelter-single-page/README.md +0 -24
  153. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/_metadata.json +0 -74
  154. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro-B3JHJyiv.js +0 -434
  155. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro-B3JHJyiv.js.map +0 -1
  156. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_aria-query.js +0 -6390
  157. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -1
  158. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_axobject-query.js +0 -2702
  159. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -1
  160. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_html-escaper.js +0 -65
  161. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -1
  162. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -455
  163. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -1
  164. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/audit-C3SVr7dT.js +0 -1534
  165. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/audit-C3SVr7dT.js.map +0 -1
  166. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/highlight-BLtvqtzO.js +0 -48
  167. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +0 -1
  168. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/icons-C92i61-2.js +0 -42
  169. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/icons-C92i61-2.js.map +0 -1
  170. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/package.json +0 -3
  171. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -4
  172. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/settings-v5GgKks_.js +0 -190
  173. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/settings-v5GgKks_.js.map +0 -1
  174. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/toolbar-BFvJVp26.js +0 -458
  175. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/toolbar-BFvJVp26.js.map +0 -1
  176. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/ui-library-Cd35oAvo.js +0 -1016
  177. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/ui-library-Cd35oAvo.js.map +0 -1
  178. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/window-vo3A6TMn.js +0 -32
  179. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/window-vo3A6TMn.js.map +0 -1
  180. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/xray-DwhzGckb.js +0 -111
  181. package/examples/complete-sites/dog-shelter-single-page/node_modules/.vite/deps/xray-DwhzGckb.js.map +0 -1
  182. package/examples/complete-sites/dog-shelter-single-page/site/.norna/generated-images.json +0 -50
  183. package/examples/complete-sites/dog-shelter-single-page/site/config.yaml +0 -1
  184. package/examples/complete-sites/dog-shelter-single-page/site/pages/000-home/content.md +0 -37
  185. package/examples/complete-sites/dog-shelter-single-page/site/pages/000-home/images/foster-dog.jpg +0 -0
  186. package/examples/complete-sites/dog-shelter-single-page/site/pages/000-home/images/rescue-dog.jpg +0 -0
  187. package/examples/complete-sites/dog-shelter-single-page/site/public/favicon.svg +0 -10
  188. package/examples/complete-sites/dog-shelter-single-page/site/public/logo.svg +0 -9
  189. package/examples/complete-sites/dog-shelter-single-page/site/public/robots.txt +0 -2
  190. package/examples/complete-sites/dog-shelter-single-page/site/sitewide-content.yaml +0 -4
  191. package/examples/complete-sites/dog-shelter-single-page/site/theme.yaml +0 -1
  192. package/examples/feature-demos/media-and-surfaces/.astro/collections/site.schema.json +0 -35
  193. package/examples/feature-demos/media-and-surfaces/.astro/collections/sitewide.schema.json +0 -97
  194. package/examples/feature-demos/media-and-surfaces/.astro/collections/theme.schema.json +0 -844
  195. package/examples/feature-demos/media-and-surfaces/.astro/content-assets.mjs +0 -4
  196. package/examples/feature-demos/media-and-surfaces/.astro/content-modules.mjs +0 -1
  197. package/examples/feature-demos/media-and-surfaces/.astro/content.d.ts +0 -183
  198. package/examples/feature-demos/media-and-surfaces/.astro/data-store.json +0 -1
  199. package/examples/feature-demos/media-and-surfaces/.astro/dev.log +0 -14
  200. package/examples/feature-demos/media-and-surfaces/.astro/settings.json +0 -5
  201. package/examples/feature-demos/media-and-surfaces/.astro/types.d.ts +0 -2
  202. package/examples/feature-demos/media-and-surfaces/README.md +0 -21
  203. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/_metadata.json +0 -80
  204. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro-B3JHJyiv.js +0 -434
  205. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro-B3JHJyiv.js.map +0 -1
  206. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_aria-query.js +0 -6390
  207. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -1
  208. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_axobject-query.js +0 -2702
  209. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -1
  210. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_html-escaper.js +0 -65
  211. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -1
  212. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -455
  213. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -1
  214. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/audit-C3SVr7dT.js +0 -1534
  215. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/audit-C3SVr7dT.js.map +0 -1
  216. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/embla-carousel.js +0 -1389
  217. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/embla-carousel.js.map +0 -1
  218. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/highlight-BLtvqtzO.js +0 -48
  219. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +0 -1
  220. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/icons-C92i61-2.js +0 -42
  221. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/icons-C92i61-2.js.map +0 -1
  222. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/package.json +0 -3
  223. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -4
  224. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/settings-v5GgKks_.js +0 -190
  225. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/settings-v5GgKks_.js.map +0 -1
  226. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/toolbar-BFvJVp26.js +0 -458
  227. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/toolbar-BFvJVp26.js.map +0 -1
  228. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/ui-library-Cd35oAvo.js +0 -1016
  229. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/ui-library-Cd35oAvo.js.map +0 -1
  230. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/window-vo3A6TMn.js +0 -32
  231. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/window-vo3A6TMn.js.map +0 -1
  232. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/xray-DwhzGckb.js +0 -111
  233. package/examples/feature-demos/media-and-surfaces/node_modules/.vite/deps/xray-DwhzGckb.js.map +0 -1
  234. package/examples/feature-demos/media-and-surfaces/site/.norna/generated-images.json +0 -66
  235. package/examples/feature-demos/media-and-surfaces/site/config.yaml +0 -1
  236. package/examples/feature-demos/media-and-surfaces/site/pages/000-home/content.md +0 -15
  237. package/examples/feature-demos/media-and-surfaces/site/pages/010-media/content.md +0 -71
  238. package/examples/feature-demos/media-and-surfaces/site/pages/010-media/images/card-carousel.svg +0 -11
  239. package/examples/feature-demos/media-and-surfaces/site/pages/010-media/images/card-stack.svg +0 -9
  240. package/examples/feature-demos/media-and-surfaces/site/pages/010-media/images/card-surfaces.svg +0 -8
  241. package/examples/feature-demos/media-and-surfaces/site/pages/010-media/images/carousel-one.svg +0 -8
  242. package/examples/feature-demos/media-and-surfaces/site/pages/010-media/images/carousel-three.svg +0 -13
  243. package/examples/feature-demos/media-and-surfaces/site/pages/010-media/images/carousel-two.svg +0 -8
  244. package/examples/feature-demos/media-and-surfaces/site/pages/010-media/images/stack-one.svg +0 -8
  245. package/examples/feature-demos/media-and-surfaces/site/pages/010-media/images/stack-two.svg +0 -9
  246. package/examples/feature-demos/media-and-surfaces/site/pages/020-surfaces/content.md +0 -42
  247. package/examples/feature-demos/media-and-surfaces/site/pages/020-surfaces/theme.yaml +0 -2
  248. package/examples/feature-demos/media-and-surfaces/site/public/robots.txt +0 -2
  249. package/examples/feature-demos/media-and-surfaces/site/sitewide-content.yaml +0 -2
  250. package/examples/feature-demos/media-and-surfaces/site/theme.yaml +0 -1
  251. package/examples/feature-demos/sitewide-content/.astro/collections/site.schema.json +0 -59
  252. package/examples/feature-demos/sitewide-content/.astro/collections/sitewide.schema.json +0 -138
  253. package/examples/feature-demos/sitewide-content/.astro/collections/theme.schema.json +0 -755
  254. package/examples/feature-demos/sitewide-content/.astro/content-assets.mjs +0 -1
  255. package/examples/feature-demos/sitewide-content/.astro/content-modules.mjs +0 -1
  256. package/examples/feature-demos/sitewide-content/.astro/content.d.ts +0 -183
  257. package/examples/feature-demos/sitewide-content/.astro/data-store.json +0 -1
  258. package/examples/feature-demos/sitewide-content/.astro/dev.json +0 -13
  259. package/examples/feature-demos/sitewide-content/.astro/dev.log +0 -18
  260. package/examples/feature-demos/sitewide-content/.astro/settings.json +0 -5
  261. package/examples/feature-demos/sitewide-content/.astro/types.d.ts +0 -2
  262. package/examples/feature-demos/sitewide-content/README.md +0 -26
  263. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/_metadata.json +0 -74
  264. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro-B3JHJyiv.js +0 -434
  265. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro-B3JHJyiv.js.map +0 -1
  266. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_aria-query.js +0 -6390
  267. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -1
  268. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_axobject-query.js +0 -2702
  269. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -1
  270. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_html-escaper.js +0 -65
  271. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -1
  272. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -455
  273. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -1
  274. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/audit-C3SVr7dT.js +0 -1534
  275. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/audit-C3SVr7dT.js.map +0 -1
  276. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/highlight-BLtvqtzO.js +0 -48
  277. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/highlight-BLtvqtzO.js.map +0 -1
  278. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/icons-C92i61-2.js +0 -42
  279. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/icons-C92i61-2.js.map +0 -1
  280. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/package.json +0 -3
  281. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -4
  282. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/settings-v5GgKks_.js +0 -190
  283. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/settings-v5GgKks_.js.map +0 -1
  284. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/toolbar-BFvJVp26.js +0 -458
  285. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/toolbar-BFvJVp26.js.map +0 -1
  286. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/ui-library-Cd35oAvo.js +0 -1016
  287. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/ui-library-Cd35oAvo.js.map +0 -1
  288. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/window-vo3A6TMn.js +0 -32
  289. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/window-vo3A6TMn.js.map +0 -1
  290. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/xray-DwhzGckb.js +0 -111
  291. package/examples/feature-demos/sitewide-content/node_modules/.vite/deps/xray-DwhzGckb.js.map +0 -1
  292. package/examples/feature-demos/sitewide-content/site/.norna/generated-images.json +0 -1
  293. package/examples/feature-demos/sitewide-content/site/config.yaml +0 -1
  294. package/examples/feature-demos/sitewide-content/site/pages/000-home/content.md +0 -17
  295. package/examples/feature-demos/sitewide-content/site/pages/010-logo-and-navigation/content.md +0 -17
  296. package/examples/feature-demos/sitewide-content/site/pages/020-notices/content.md +0 -23
  297. package/examples/feature-demos/sitewide-content/site/pages/030-footer/content.md +0 -18
  298. package/examples/feature-demos/sitewide-content/site/public/logo.svg +0 -6
  299. package/examples/feature-demos/sitewide-content/site/public/robots.txt +0 -2
  300. package/examples/feature-demos/sitewide-content/site/sitewide-content.yaml +0 -14
  301. package/examples/feature-demos/sitewide-content/site/theme.yaml +0 -1
  302. package/examples/feature-demos/theme-preset-documentation/README.md +0 -16
  303. package/examples/feature-demos/theme-preset-documentation/site/.norna/generated-images.json +0 -74
  304. package/examples/feature-demos/theme-preset-documentation/site/config.yaml +0 -1
  305. package/examples/feature-demos/theme-preset-documentation/site/pages/000-home/content.md +0 -30
  306. package/examples/feature-demos/theme-preset-documentation/site/pages/000-home/images/black-schnauzer.jpg +0 -0
  307. package/examples/feature-demos/theme-preset-documentation/site/pages/000-home/images/retriever-portrait.jpg +0 -0
  308. package/examples/feature-demos/theme-preset-documentation/site/pages/000-home/images/schnauzer-portrait.jpg +0 -0
  309. package/examples/feature-demos/theme-preset-documentation/site/public/robots.txt +0 -2
  310. package/examples/feature-demos/theme-preset-documentation/site/sitewide-content.yaml +0 -3
  311. package/examples/feature-demos/theme-preset-documentation/site/theme.yaml +0 -1
  312. package/examples/feature-demos/theme-preset-portfolio/README.md +0 -16
  313. package/examples/feature-demos/theme-preset-portfolio/site/.norna/generated-images.json +0 -74
  314. package/examples/feature-demos/theme-preset-portfolio/site/config.yaml +0 -1
  315. package/examples/feature-demos/theme-preset-portfolio/site/pages/000-home/content.md +0 -31
  316. package/examples/feature-demos/theme-preset-portfolio/site/pages/000-home/images/puppy-portrait.jpg +0 -0
  317. package/examples/feature-demos/theme-preset-portfolio/site/pages/000-home/images/shepherd-portrait.jpg +0 -0
  318. package/examples/feature-demos/theme-preset-portfolio/site/pages/000-home/images/white-puppy.jpg +0 -0
  319. package/examples/feature-demos/theme-preset-portfolio/site/public/robots.txt +0 -2
  320. package/examples/feature-demos/theme-preset-portfolio/site/sitewide-content.yaml +0 -3
  321. package/examples/feature-demos/theme-preset-portfolio/site/theme.yaml +0 -1
  322. package/examples/feature-demos/theme-preset-project/.astro/collections/routeTheme.schema.json +0 -746
  323. package/examples/feature-demos/theme-preset-project/.astro/collections/site.schema.json +0 -59
  324. package/examples/feature-demos/theme-preset-project/.astro/collections/sitewide.schema.json +0 -138
  325. package/examples/feature-demos/theme-preset-project/.astro/collections/theme.schema.json +0 -755
  326. package/examples/feature-demos/theme-preset-project/.astro/content-assets.mjs +0 -4
  327. package/examples/feature-demos/theme-preset-project/.astro/content-modules.mjs +0 -1
  328. package/examples/feature-demos/theme-preset-project/.astro/content.d.ts +0 -183
  329. package/examples/feature-demos/theme-preset-project/.astro/data-store.json +0 -1
  330. package/examples/feature-demos/theme-preset-project/.astro/dev-local.json +0 -8
  331. package/examples/feature-demos/theme-preset-project/.astro/dev.json +0 -15
  332. package/examples/feature-demos/theme-preset-project/.astro/dev.log +0 -164
  333. package/examples/feature-demos/theme-preset-project/.astro/settings.json +0 -5
  334. package/examples/feature-demos/theme-preset-project/.astro/types.d.ts +0 -2
  335. package/examples/feature-demos/theme-preset-project/README.md +0 -16
  336. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/_metadata.json +0 -80
  337. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/astro-D_GIpJIE.js +0 -434
  338. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/astro-D_GIpJIE.js.map +0 -1
  339. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/astro_n_aria-query.js +0 -6390
  340. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -1
  341. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/astro_n_axobject-query.js +0 -2702
  342. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -1
  343. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/astro_n_html-escaper.js +0 -65
  344. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -1
  345. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -455
  346. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -1
  347. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/audit-DM9Hkl5B.js +0 -1534
  348. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/audit-DM9Hkl5B.js.map +0 -1
  349. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/embla-carousel.js +0 -1389
  350. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/embla-carousel.js.map +0 -1
  351. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/highlight-DnZ1ULOL.js +0 -48
  352. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +0 -1
  353. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/icons-RyebKi45.js +0 -42
  354. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/icons-RyebKi45.js.map +0 -1
  355. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/package.json +0 -3
  356. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -4
  357. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/settings-DaU-gNnK.js +0 -190
  358. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/settings-DaU-gNnK.js.map +0 -1
  359. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/toolbar-63PA619H.js +0 -458
  360. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/toolbar-63PA619H.js.map +0 -1
  361. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/ui-library--bkcNSYz.js +0 -1016
  362. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +0 -1
  363. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/window-jPkpKVcy.js +0 -32
  364. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/window-jPkpKVcy.js.map +0 -1
  365. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/xray-BXCHpEJP.js +0 -111
  366. package/examples/feature-demos/theme-preset-project/node_modules/.vite/deps/xray-BXCHpEJP.js.map +0 -1
  367. package/examples/feature-demos/theme-preset-project/site/.norna/generated-images.json +0 -74
  368. package/examples/feature-demos/theme-preset-project/site/config.yaml +0 -1
  369. package/examples/feature-demos/theme-preset-project/site/pages/000-home/content.md +0 -31
  370. package/examples/feature-demos/theme-preset-project/site/pages/000-home/images/boxer-portrait.jpg +0 -0
  371. package/examples/feature-demos/theme-preset-project/site/pages/000-home/images/grass-puppy.jpg +0 -0
  372. package/examples/feature-demos/theme-preset-project/site/pages/000-home/images/grey-street-dog.jpg +0 -0
  373. package/examples/feature-demos/theme-preset-project/site/public/robots.txt +0 -2
  374. package/examples/feature-demos/theme-preset-project/site/sitewide-content.yaml +0 -3
  375. package/examples/feature-demos/theme-preset-project/site/theme.yaml +0 -1
  376. package/examples/feature-demos/theme-preset-statement/README.md +0 -16
  377. package/examples/feature-demos/theme-preset-statement/site/.norna/generated-images.json +0 -74
  378. package/examples/feature-demos/theme-preset-statement/site/config.yaml +0 -1
  379. package/examples/feature-demos/theme-preset-statement/site/pages/000-home/content.md +0 -31
  380. package/examples/feature-demos/theme-preset-statement/site/pages/000-home/images/black-pedigree.jpg +0 -0
  381. package/examples/feature-demos/theme-preset-statement/site/pages/000-home/images/sheepdog-grass.jpg +0 -0
  382. package/examples/feature-demos/theme-preset-statement/site/pages/000-home/images/sheepdog-wide.jpg +0 -0
  383. package/examples/feature-demos/theme-preset-statement/site/public/robots.txt +0 -2
  384. package/examples/feature-demos/theme-preset-statement/site/sitewide-content.yaml +0 -3
  385. package/examples/feature-demos/theme-preset-statement/site/theme.yaml +0 -1
  386. package/fixtures/basic/site/.norna/generated-images.json +0 -1
  387. package/fixtures/basic/site/config.yaml +0 -1
  388. package/fixtures/basic/site/pages/000-home/content.md +0 -14
  389. package/fixtures/basic/site/pages/000-home/images/.gitkeep +0 -1
  390. package/fixtures/basic/site/public/robots.txt +0 -2
  391. package/fixtures/basic/site/sitewide-content.yaml +0 -3
  392. package/fixtures/basic/site/theme.yaml +0 -1
  393. package/fixtures/content-model-v2/.astro/collections/site.schema.json +0 -776
  394. package/fixtures/content-model-v2/.astro/collections/theme.schema.json +0 -668
  395. package/fixtures/content-model-v2/.astro/content-assets.mjs +0 -4
  396. package/fixtures/content-model-v2/.astro/content-modules.mjs +0 -1
  397. package/fixtures/content-model-v2/.astro/content.d.ts +0 -175
  398. package/fixtures/content-model-v2/.astro/data-store.json +0 -1
  399. package/fixtures/content-model-v2/.astro/dev-local.json +0 -8
  400. package/fixtures/content-model-v2/.astro/dev.json +0 -13
  401. package/fixtures/content-model-v2/.astro/dev.log +0 -231
  402. package/fixtures/content-model-v2/.astro/settings.json +0 -5
  403. package/fixtures/content-model-v2/.astro/types.d.ts +0 -2
  404. package/fixtures/content-model-v2/dist/_astro/GalleryGrid.astro_astro_type_script_index_0_lang.B0kxDyGz.js +0 -1
  405. package/fixtures/content-model-v2/dist/_astro/SitePage.BbfZub4g.css +0 -1
  406. package/fixtures/content-model-v2/dist/guide/index.html +0 -3
  407. package/fixtures/content-model-v2/dist/images/generated/intro/detail-27930b14-480.webp +0 -0
  408. package/fixtures/content-model-v2/dist/images/generated/intro/detail-27930b14-768.webp +0 -0
  409. package/fixtures/content-model-v2/dist/images/generated/intro/detail-27930b14-971.webp +0 -0
  410. package/fixtures/content-model-v2/dist/images/generated/intro/duplicate-49c98f6c-480.webp +0 -0
  411. package/fixtures/content-model-v2/dist/images/generated/intro/duplicate-49c98f6c-768.webp +0 -0
  412. package/fixtures/content-model-v2/dist/images/generated/intro/duplicate-49c98f6c-971.webp +0 -0
  413. package/fixtures/content-model-v2/dist/images/generated/intro/hero-6d588a83-480.webp +0 -0
  414. package/fixtures/content-model-v2/dist/images/generated/intro/hero-6d588a83-768.webp +0 -0
  415. package/fixtures/content-model-v2/dist/images/generated/intro/hero-6d588a83-971.webp +0 -0
  416. package/fixtures/content-model-v2/dist/images/generated/plain/image-3770d763-1080.webp +0 -0
  417. package/fixtures/content-model-v2/dist/images/generated/plain/image-3770d763-1440.webp +0 -0
  418. package/fixtures/content-model-v2/dist/images/generated/plain/image-3770d763-1600.webp +0 -0
  419. package/fixtures/content-model-v2/dist/images/generated/plain/image-3770d763-480.webp +0 -0
  420. package/fixtures/content-model-v2/dist/images/generated/plain/image-3770d763-768.webp +0 -0
  421. package/fixtures/content-model-v2/dist/images/generated/routes/010-guide/images/intro/duplicate-5cf614d2-480.webp +0 -0
  422. package/fixtures/content-model-v2/dist/images/generated/routes/010-guide/images/intro/duplicate-5cf614d2-768.webp +0 -0
  423. package/fixtures/content-model-v2/dist/images/generated/routes/010-guide/images/intro/duplicate-5cf614d2-960.webp +0 -0
  424. package/fixtures/content-model-v2/dist/images/generated/timed/slide-one-3770d763-1080.webp +0 -0
  425. package/fixtures/content-model-v2/dist/images/generated/timed/slide-one-3770d763-1440.webp +0 -0
  426. package/fixtures/content-model-v2/dist/images/generated/timed/slide-one-3770d763-1600.webp +0 -0
  427. package/fixtures/content-model-v2/dist/images/generated/timed/slide-one-3770d763-480.webp +0 -0
  428. package/fixtures/content-model-v2/dist/images/generated/timed/slide-one-3770d763-768.webp +0 -0
  429. package/fixtures/content-model-v2/dist/images/generated/timed/slide-three-5bdec65e-1080.webp +0 -0
  430. package/fixtures/content-model-v2/dist/images/generated/timed/slide-three-5bdec65e-1440.webp +0 -0
  431. package/fixtures/content-model-v2/dist/images/generated/timed/slide-three-5bdec65e-1600.webp +0 -0
  432. package/fixtures/content-model-v2/dist/images/generated/timed/slide-three-5bdec65e-480.webp +0 -0
  433. package/fixtures/content-model-v2/dist/images/generated/timed/slide-three-5bdec65e-768.webp +0 -0
  434. package/fixtures/content-model-v2/dist/images/generated/timed/slide-two-26c08aee-1080.webp +0 -0
  435. package/fixtures/content-model-v2/dist/images/generated/timed/slide-two-26c08aee-1440.webp +0 -0
  436. package/fixtures/content-model-v2/dist/images/generated/timed/slide-two-26c08aee-1600.webp +0 -0
  437. package/fixtures/content-model-v2/dist/images/generated/timed/slide-two-26c08aee-480.webp +0 -0
  438. package/fixtures/content-model-v2/dist/images/generated/timed/slide-two-26c08aee-768.webp +0 -0
  439. package/fixtures/content-model-v2/dist/index.html +0 -8
  440. package/fixtures/content-model-v2/node_modules/.vite/deps/_metadata.json +0 -80
  441. package/fixtures/content-model-v2/node_modules/.vite/deps/astro-D_GIpJIE.js +0 -434
  442. package/fixtures/content-model-v2/node_modules/.vite/deps/astro-D_GIpJIE.js.map +0 -1
  443. package/fixtures/content-model-v2/node_modules/.vite/deps/astro_n_aria-query.js +0 -6390
  444. package/fixtures/content-model-v2/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -1
  445. package/fixtures/content-model-v2/node_modules/.vite/deps/astro_n_axobject-query.js +0 -2702
  446. package/fixtures/content-model-v2/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -1
  447. package/fixtures/content-model-v2/node_modules/.vite/deps/astro_n_html-escaper.js +0 -65
  448. package/fixtures/content-model-v2/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -1
  449. package/fixtures/content-model-v2/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -455
  450. package/fixtures/content-model-v2/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -1
  451. package/fixtures/content-model-v2/node_modules/.vite/deps/audit-DM9Hkl5B.js +0 -1534
  452. package/fixtures/content-model-v2/node_modules/.vite/deps/audit-DM9Hkl5B.js.map +0 -1
  453. package/fixtures/content-model-v2/node_modules/.vite/deps/embla-carousel.js +0 -1389
  454. package/fixtures/content-model-v2/node_modules/.vite/deps/embla-carousel.js.map +0 -1
  455. package/fixtures/content-model-v2/node_modules/.vite/deps/highlight-DnZ1ULOL.js +0 -48
  456. package/fixtures/content-model-v2/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +0 -1
  457. package/fixtures/content-model-v2/node_modules/.vite/deps/icons-RyebKi45.js +0 -42
  458. package/fixtures/content-model-v2/node_modules/.vite/deps/icons-RyebKi45.js.map +0 -1
  459. package/fixtures/content-model-v2/node_modules/.vite/deps/package.json +0 -3
  460. package/fixtures/content-model-v2/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -4
  461. package/fixtures/content-model-v2/node_modules/.vite/deps/settings-DaU-gNnK.js +0 -190
  462. package/fixtures/content-model-v2/node_modules/.vite/deps/settings-DaU-gNnK.js.map +0 -1
  463. package/fixtures/content-model-v2/node_modules/.vite/deps/toolbar-63PA619H.js +0 -458
  464. package/fixtures/content-model-v2/node_modules/.vite/deps/toolbar-63PA619H.js.map +0 -1
  465. package/fixtures/content-model-v2/node_modules/.vite/deps/ui-library--bkcNSYz.js +0 -1016
  466. package/fixtures/content-model-v2/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +0 -1
  467. package/fixtures/content-model-v2/node_modules/.vite/deps/window-jPkpKVcy.js +0 -32
  468. package/fixtures/content-model-v2/node_modules/.vite/deps/window-jPkpKVcy.js.map +0 -1
  469. package/fixtures/content-model-v2/node_modules/.vite/deps/xray-BXCHpEJP.js +0 -111
  470. package/fixtures/content-model-v2/node_modules/.vite/deps/xray-BXCHpEJP.js.map +0 -1
  471. package/fixtures/content-model-v2/site/.norna/generated-images.json +0 -210
  472. package/fixtures/content-model-v2/site/config.yaml +0 -1
  473. package/fixtures/content-model-v2/site/pages/000-home/content.md +0 -79
  474. package/fixtures/content-model-v2/site/pages/000-home/images/adopt.svg +0 -9
  475. package/fixtures/content-model-v2/site/pages/000-home/images/detail.jpg +0 -0
  476. package/fixtures/content-model-v2/site/pages/000-home/images/duplicate.jpg +0 -0
  477. package/fixtures/content-model-v2/site/pages/000-home/images/foster.svg +0 -12
  478. package/fixtures/content-model-v2/site/pages/000-home/images/hero.jpg +0 -0
  479. package/fixtures/content-model-v2/site/pages/000-home/images/image.jpg +0 -0
  480. package/fixtures/content-model-v2/site/pages/000-home/images/slide-one.jpg +0 -0
  481. package/fixtures/content-model-v2/site/pages/000-home/images/slide-three.jpg +0 -0
  482. package/fixtures/content-model-v2/site/pages/000-home/images/slide-two.jpg +0 -0
  483. package/fixtures/content-model-v2/site/pages/010-guide/content.md +0 -18
  484. package/fixtures/content-model-v2/site/pages/010-guide/images/duplicate.jpg +0 -0
  485. package/fixtures/content-model-v2/site/theme.yaml +0 -4
  486. package/fixtures/nested-pages/.astro/collections/site.schema.json +0 -35
  487. package/fixtures/nested-pages/.astro/collections/sitewide.schema.json +0 -97
  488. package/fixtures/nested-pages/.astro/collections/theme.schema.json +0 -844
  489. package/fixtures/nested-pages/.astro/content-assets.mjs +0 -4
  490. package/fixtures/nested-pages/.astro/content-modules.mjs +0 -1
  491. package/fixtures/nested-pages/.astro/content.d.ts +0 -183
  492. package/fixtures/nested-pages/.astro/data-store.json +0 -1
  493. package/fixtures/nested-pages/.astro/dev-local.json +0 -8
  494. package/fixtures/nested-pages/.astro/dev.log +0 -1128
  495. package/fixtures/nested-pages/.astro/settings.json +0 -5
  496. package/fixtures/nested-pages/.astro/types.d.ts +0 -2
  497. package/fixtures/nested-pages/node_modules/.vite/deps/_metadata.json +0 -74
  498. package/fixtures/nested-pages/node_modules/.vite/deps/astro-D_GIpJIE.js +0 -434
  499. package/fixtures/nested-pages/node_modules/.vite/deps/astro-D_GIpJIE.js.map +0 -1
  500. package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_aria-query.js +0 -6390
  501. package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_aria-query.js.map +0 -1
  502. package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_axobject-query.js +0 -2702
  503. package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_axobject-query.js.map +0 -1
  504. package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_html-escaper.js +0 -65
  505. package/fixtures/nested-pages/node_modules/.vite/deps/astro_n_html-escaper.js.map +0 -1
  506. package/fixtures/nested-pages/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +0 -455
  507. package/fixtures/nested-pages/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +0 -1
  508. package/fixtures/nested-pages/node_modules/.vite/deps/audit-DM9Hkl5B.js +0 -1534
  509. package/fixtures/nested-pages/node_modules/.vite/deps/audit-DM9Hkl5B.js.map +0 -1
  510. package/fixtures/nested-pages/node_modules/.vite/deps/highlight-DnZ1ULOL.js +0 -48
  511. package/fixtures/nested-pages/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +0 -1
  512. package/fixtures/nested-pages/node_modules/.vite/deps/icons-RyebKi45.js +0 -42
  513. package/fixtures/nested-pages/node_modules/.vite/deps/icons-RyebKi45.js.map +0 -1
  514. package/fixtures/nested-pages/node_modules/.vite/deps/package.json +0 -3
  515. package/fixtures/nested-pages/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +0 -4
  516. package/fixtures/nested-pages/node_modules/.vite/deps/settings-DaU-gNnK.js +0 -190
  517. package/fixtures/nested-pages/node_modules/.vite/deps/settings-DaU-gNnK.js.map +0 -1
  518. package/fixtures/nested-pages/node_modules/.vite/deps/toolbar-63PA619H.js +0 -458
  519. package/fixtures/nested-pages/node_modules/.vite/deps/toolbar-63PA619H.js.map +0 -1
  520. package/fixtures/nested-pages/node_modules/.vite/deps/ui-library--bkcNSYz.js +0 -1016
  521. package/fixtures/nested-pages/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +0 -1
  522. package/fixtures/nested-pages/node_modules/.vite/deps/window-jPkpKVcy.js +0 -32
  523. package/fixtures/nested-pages/node_modules/.vite/deps/window-jPkpKVcy.js.map +0 -1
  524. package/fixtures/nested-pages/node_modules/.vite/deps/xray-BXCHpEJP.js +0 -111
  525. package/fixtures/nested-pages/node_modules/.vite/deps/xray-BXCHpEJP.js.map +0 -1
  526. package/fixtures/nested-pages/site/.norna/generated-images.json +0 -10
  527. package/fixtures/nested-pages/site/config.yaml +0 -3
  528. package/fixtures/nested-pages/site/pages/000-home/content.md +0 -15
  529. package/fixtures/nested-pages/site/pages/010-guides/content.md +0 -15
  530. package/fixtures/nested-pages/site/pages/010-guides/pages/010-installation/content.md +0 -21
  531. package/fixtures/nested-pages/site/pages/010-guides/pages/010-installation/images/diagram.svg +0 -21
  532. package/fixtures/nested-pages/site/pages/010-guides/pages/010-installation/pages/010-macos/content.md +0 -18
  533. package/fixtures/nested-pages/site/pages/010-guides/pages/010-installation/theme.yaml +0 -2
  534. package/fixtures/nested-pages/site/pages/010-guides/pages/020-workflows/content.md +0 -11
  535. package/fixtures/nested-pages/site/pages/010-guides/pages/030-release-notes/content.md +0 -9
  536. package/fixtures/nested-pages/site/pages/010-guides/pages/040-configuration/content.md +0 -3
  537. package/fixtures/nested-pages/site/pages/010-guides/pages/050-content/content.md +0 -3
  538. package/fixtures/nested-pages/site/pages/010-guides/pages/060-themes/content.md +0 -3
  539. package/fixtures/nested-pages/site/pages/010-guides/pages/070-images/content.md +0 -3
  540. package/fixtures/nested-pages/site/pages/010-guides/pages/080-cards/content.md +0 -3
  541. package/fixtures/nested-pages/site/pages/010-guides/pages/090-notes/content.md +0 -3
  542. package/fixtures/nested-pages/site/pages/010-guides/pages/100-validation/content.md +0 -3
  543. package/fixtures/nested-pages/site/pages/010-guides/pages/110-synchronization/content.md +0 -3
  544. package/fixtures/nested-pages/site/pages/010-guides/pages/120-building/content.md +0 -3
  545. package/fixtures/nested-pages/site/pages/010-guides/pages/130-publishing/content.md +0 -3
  546. package/fixtures/nested-pages/site/pages/010-guides/pages/140-troubleshooting/content.md +0 -3
  547. package/fixtures/nested-pages/site/pages/010-guides/pages/150-migration/content.md +0 -3
  548. package/fixtures/nested-pages/site/pages/010-guides/pages/160-accessibility/content.md +0 -3
  549. package/fixtures/nested-pages/site/pages/010-guides/pages/170-performance/content.md +0 -3
  550. package/fixtures/nested-pages/site/pages/010-guides/pages/180-security/content.md +0 -3
  551. package/fixtures/nested-pages/site/pages/010-guides/pages/190-localization/content.md +0 -3
  552. package/fixtures/nested-pages/site/pages/010-guides/pages/200-upgrading/content.md +0 -3
  553. package/fixtures/nested-pages/site/pages/010-guides/pages/210-faq/content.md +0 -3
  554. package/fixtures/nested-pages/site/pages/010-guides/theme.yaml +0 -7
  555. package/fixtures/nested-pages/site/pages/020-reference/content.md +0 -10
  556. package/fixtures/nested-pages/site/pages/020-reference/pages/010-installation/content.md +0 -11
  557. package/fixtures/nested-pages/site/theme.yaml +0 -1
  558. package/scripts/build-pages.mjs +0 -69
  559. package/scripts/lib/example-sites.mjs +0 -49
  560. package/scripts/lib/frontmatter-yaml.mjs +0 -113
  561. package/scripts/lib/git-status.mjs +0 -7
  562. package/scripts/release.mjs +0 -153
  563. package/scripts/test-banner-visibility.mjs +0 -80
  564. package/scripts/test-ci-lockfile.mjs +0 -65
  565. package/scripts/test-cli-discovery.mjs +0 -124
  566. package/scripts/test-client-javascript.mjs +0 -225
  567. package/scripts/test-content-check.mjs +0 -621
  568. package/scripts/test-content-model-v2.mjs +0 -1693
  569. package/scripts/test-documentation.mjs +0 -189
  570. package/scripts/test-editor-language-service.mjs +0 -305
  571. package/scripts/test-engine-commands.mjs +0 -204
  572. package/scripts/test-examples.mjs +0 -53
  573. package/scripts/test-heading-ids.mjs +0 -68
  574. package/scripts/test-navigation-model.mjs +0 -63
  575. package/scripts/test-navigation-preview.mjs +0 -108
  576. package/scripts/test-navigation.mjs +0 -157
  577. package/scripts/test-nested-pages.mjs +0 -125
  578. package/scripts/test-package-check.mjs +0 -500
  579. package/scripts/test-page-model.mjs +0 -108
  580. package/scripts/test-project-config.mjs +0 -139
  581. package/scripts/test-schemas.mjs +0 -169
  582. package/scripts/test-site-public.mjs +0 -85
  583. package/scripts/test-theme-presets.mjs +0 -188
  584. package/src/components/SiteNotesScript.astro +0 -43
  585. package/starters/project/.github/workflows/deploy.yml +0 -64
  586. package/starters/project/README.md +0 -84
  587. package/starters/project/package-lock.json +0 -4296
  588. package/starters/project/package.json +0 -37
  589. package/starters/project/site/config.yaml +0 -1
  590. package/starters/project/site/pages/000-home/content.md +0 -119
  591. package/starters/project/site/pages/010-guide/content.md +0 -80
  592. package/starters/project/site/public/robots.txt +0 -2
  593. package/starters/project/site/sitewide-content.yaml +0 -3
  594. package/starters/project/site/theme.yaml +0 -1
  595. package/tsconfig.json +0 -5
@@ -27,10 +27,77 @@
27
27
  "description": "For short, expressive sites, with larger typography, airy spacing, and stronger section emphasis."
28
28
  }
29
29
  ],
30
- "markdownDescription": "```yaml\npreset: documentation\n```\n\nSelects coordinated shapes, layout, image sizing, typography, palette and section backgrounds. This is the normal starting point for a theme.\n\n[Compare theme presets](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#theme-presets)"
30
+ "markdownDescription": "```yaml\npreset: documentation\n```\n\nSelects coordinated corners, layout, image sizing, content-block defaults, typography, palette and section backgrounds. This is the normal starting point for a theme.\n\n[Compare theme presets](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#theme-presets)"
31
31
  },
32
- "shape": {
33
- "description": "Site-wide shape profile. Omit this to use the selected preset.",
32
+ "colorMode": {
33
+ "type": "object",
34
+ "properties": {
35
+ "default": {
36
+ "description": "Initial color mode. System follows the visitor's operating-system preference.",
37
+ "type": "string",
38
+ "oneOf": [
39
+ {
40
+ "const": "system",
41
+ "title": "System",
42
+ "description": "Follow the visitor's operating-system light or dark preference."
43
+ },
44
+ {
45
+ "const": "light",
46
+ "title": "Light",
47
+ "description": "Start with the palette's light appearance."
48
+ },
49
+ {
50
+ "const": "dark",
51
+ "title": "Dark",
52
+ "description": "Start with the palette's dark appearance."
53
+ }
54
+ ],
55
+ "markdownDescription": "```yaml\ncolorMode:\n default: system\n```\n\nInitial color mode. System follows the visitor's operating-system preference.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#color-mode)",
56
+ "examples": [
57
+ "system",
58
+ "light",
59
+ "dark"
60
+ ]
61
+ }
62
+ },
63
+ "additionalProperties": false,
64
+ "description": "Site-wide light and dark mode behaviour.",
65
+ "markdownDescription": "```yaml\ncolorMode:\n default: system\n```\n\nControls the initial light or dark appearance. Enable the reader-facing choice under readerControls.\n\n[Color mode](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#color-mode)",
66
+ "defaultSnippets": [
67
+ {
68
+ "label": "Set the initial color mode",
69
+ "markdownDescription": "Follow the system color preference or choose a fixed initial appearance.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#color-mode)",
70
+ "body": "colorMode:\n default: ${1:system}"
71
+ }
72
+ ]
73
+ },
74
+ "readerControls": {
75
+ "type": "object",
76
+ "properties": {
77
+ "colorMode": {
78
+ "description": "Let readers choose System, Light, or Dark color mode in the site-wide Display panel.",
79
+ "type": "boolean",
80
+ "markdownDescription": "```yaml\nreaderControls:\n colorMode: true\n```\n\nLet readers choose System, Light, or Dark color mode in the site-wide Display panel.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#reader-display-controls)"
81
+ },
82
+ "focusReading": {
83
+ "description": "Let readers temporarily hide navigation and other secondary page chrome while reading. Tree navigation always provides this control.",
84
+ "type": "boolean",
85
+ "markdownDescription": "```yaml\nreaderControls:\n focusReading: true\n```\n\nLet readers temporarily hide navigation and other secondary page chrome while reading. Tree navigation always provides this control.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#reader-display-controls)"
86
+ }
87
+ },
88
+ "additionalProperties": false,
89
+ "description": "Optional site-wide reader choices grouped with the always-available reading-width choice in the Display panel.",
90
+ "markdownDescription": "```yaml\nreaderControls:\n colorMode: true\n focusReading: true\n```\n\nAdds optional color-mode and focus-reading choices to the site-wide Display panel. Reading width is always available, and tree navigation always provides Focus reading.\n\n[Reader Display controls](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#reader-display-controls)",
91
+ "defaultSnippets": [
92
+ {
93
+ "label": "Configure the Display panel",
94
+ "markdownDescription": "Offer optional color-mode and focus-reading choices alongside the universal reading-width control. Tree navigation always provides Focus reading.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#reader-display-controls)",
95
+ "body": "readerControls:\n colorMode: ${1:true}\n focusReading: ${2:true}"
96
+ }
97
+ ]
98
+ },
99
+ "corners": {
100
+ "description": "Site-wide corner treatment. Omit this to use the selected preset.",
34
101
  "type": "string",
35
102
  "oneOf": [
36
103
  {
@@ -39,15 +106,15 @@
39
106
  "description": "Use square corners for navigation, cards and framed content."
40
107
  },
41
108
  {
42
- "const": "soft",
43
- "title": "Soft",
109
+ "const": "rounded",
110
+ "title": "Rounded",
44
111
  "description": "Use restrained rounded corners consistently across the site."
45
112
  }
46
113
  ],
47
- "markdownDescription": "```yaml\nshape: soft\n```\n\nChooses one consistent corner treatment for navigation, cards and framed content throughout the site.\n\n[Theme reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md)",
114
+ "markdownDescription": "```yaml\ncorners: rounded\n```\n\nChooses one consistent corner treatment for navigation, cards and framed content throughout the site.\n\n[Corner reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#corners)",
48
115
  "examples": [
49
116
  "square",
50
- "soft"
117
+ "rounded"
51
118
  ]
52
119
  },
53
120
  "layout": {
@@ -73,7 +140,7 @@
73
140
  "description": "Use more expansive spacing between sections and structured blocks."
74
141
  }
75
142
  ],
76
- "markdownDescription": "```yaml\nlayout:\n contentSpacing: compact\n```\n\nPage content spacing. Omit this to keep the selected preset or inherited page setting.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)"
143
+ "markdownDescription": "```yaml\nlayout:\n contentSpacing: compact\n```\n\nPage content spacing. Omit this to keep the selected preset or inherited page setting.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)"
77
144
  },
78
145
  "textWidth": {
79
146
  "description": "Body-text line length. Omit this to keep the selected preset or inherited page setting.",
@@ -95,13 +162,13 @@
95
162
  "description": "Allow body text to use more horizontal space."
96
163
  }
97
164
  ],
98
- "markdownDescription": "```yaml\nlayout:\n textWidth: narrow\n```\n\nBody-text line length. Omit this to keep the selected preset or inherited page setting.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)"
165
+ "markdownDescription": "```yaml\nlayout:\n textWidth: narrow\n```\n\nBody-text line length. Omit this to keep the selected preset or inherited page setting.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)"
99
166
  },
100
167
  "pageWidth": {
101
168
  "description": "Maximum width of the site layout. Omit this to keep the selected preset.",
102
169
  "type": "string",
103
170
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)|clamp\\(\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*\\))$",
104
- "markdownDescription": "```yaml\nlayout:\n pageWidth: 72rem\n```\n\nMaximum width of the site layout. Omit this to keep the selected preset.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)"
171
+ "markdownDescription": "```yaml\nlayout:\n pageWidth: 72rem\n```\n\nMaximum width of the site layout. Omit this to keep the selected preset.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)"
105
172
  },
106
173
  "gutter": {
107
174
  "description": "Horizontal page gutter as one value or separate desktop and mobile values.",
@@ -118,13 +185,13 @@
118
185
  "type": "string",
119
186
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)|clamp\\(\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*\\))$",
120
187
  "description": "Responsive CSS length or clamp() expression.",
121
- "markdownDescription": "```yaml\nlayout:\n gutter:\n desktop: clamp(1.25rem, 4vw, 3rem)\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)"
188
+ "markdownDescription": "```yaml\nlayout:\n gutter:\n desktop: clamp(1.25rem, 4vw, 3rem)\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)"
122
189
  },
123
190
  "mobile": {
124
191
  "type": "string",
125
192
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)|clamp\\(\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*\\))$",
126
193
  "description": "Responsive CSS length or clamp() expression.",
127
- "markdownDescription": "```yaml\nlayout:\n gutter:\n mobile: 1rem\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)"
194
+ "markdownDescription": "```yaml\nlayout:\n gutter:\n mobile: 1rem\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)"
128
195
  }
129
196
  },
130
197
  "required": [
@@ -134,11 +201,11 @@
134
201
  "additionalProperties": false
135
202
  }
136
203
  ],
137
- "markdownDescription": "```yaml\nlayout:\n gutter:\n desktop: clamp(1.25rem, 4vw, 3rem)\n mobile: 1rem\n```\n\nHorizontal page gutter as one value or separate desktop and mobile values.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)",
204
+ "markdownDescription": "```yaml\nlayout:\n gutter:\n desktop: clamp(1.25rem, 4vw, 3rem)\n mobile: 1rem\n```\n\nHorizontal page gutter as one value or separate desktop and mobile values.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)",
138
205
  "defaultSnippets": [
139
206
  {
140
207
  "label": "Responsive page gutter",
141
- "markdownDescription": "Set separate page gutters for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)",
208
+ "markdownDescription": "Set separate page gutters for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)",
142
209
  "body": {
143
210
  "desktop": "${1:clamp(1.25rem, 4vw, 3rem)}",
144
211
  "mobile": "${2:1rem}"
@@ -165,13 +232,13 @@
165
232
  "type": "string",
166
233
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)|clamp\\(\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*\\))$",
167
234
  "description": "Responsive CSS length or clamp() expression.",
168
- "markdownDescription": "```yaml\nlayout:\n spacing:\n blockGap:\n desktop: 1.5em\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)"
235
+ "markdownDescription": "```yaml\nlayout:\n spacing:\n blockGap:\n desktop: 1.5em\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)"
169
236
  },
170
237
  "mobile": {
171
238
  "type": "string",
172
239
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)|clamp\\(\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*\\))$",
173
240
  "description": "Responsive CSS length or clamp() expression.",
174
- "markdownDescription": "```yaml\nlayout:\n spacing:\n blockGap:\n mobile: 1.5em\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)"
241
+ "markdownDescription": "```yaml\nlayout:\n spacing:\n blockGap:\n mobile: 1.5em\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)"
175
242
  }
176
243
  },
177
244
  "required": [
@@ -181,11 +248,11 @@
181
248
  "additionalProperties": false
182
249
  }
183
250
  ],
184
- "markdownDescription": "```yaml\nlayout:\n spacing:\n blockGap: 1.5em\n```\n\nDefault vertical gap between structured content blocks.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)",
251
+ "markdownDescription": "```yaml\nlayout:\n spacing:\n blockGap: 1.5em\n```\n\nDefault vertical gap between structured content blocks.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)",
185
252
  "defaultSnippets": [
186
253
  {
187
254
  "label": "Responsive spacing",
188
- "markdownDescription": "Set separate spacing values for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)",
255
+ "markdownDescription": "Set separate spacing values for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)",
189
256
  "body": {
190
257
  "desktop": "${1:1.5em}",
191
258
  "mobile": "${2:1.5em}"
@@ -208,13 +275,13 @@
208
275
  "type": "string",
209
276
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)|clamp\\(\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*\\))$",
210
277
  "description": "Responsive CSS length or clamp() expression.",
211
- "markdownDescription": "```yaml\nlayout:\n spacing:\n finalSectionBottom:\n desktop: 2rem\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)"
278
+ "markdownDescription": "```yaml\nlayout:\n spacing:\n finalSectionBottom:\n desktop: 2rem\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)"
212
279
  },
213
280
  "mobile": {
214
281
  "type": "string",
215
282
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)|clamp\\(\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*\\))$",
216
283
  "description": "Responsive CSS length or clamp() expression.",
217
- "markdownDescription": "```yaml\nlayout:\n spacing:\n finalSectionBottom:\n mobile: 2rem\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)"
284
+ "markdownDescription": "```yaml\nlayout:\n spacing:\n finalSectionBottom:\n mobile: 2rem\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)"
218
285
  }
219
286
  },
220
287
  "required": [
@@ -224,11 +291,11 @@
224
291
  "additionalProperties": false
225
292
  }
226
293
  ],
227
- "markdownDescription": "```yaml\nlayout:\n spacing:\n finalSectionBottom: 2rem\n```\n\nBottom space after the final section.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)",
294
+ "markdownDescription": "```yaml\nlayout:\n spacing:\n finalSectionBottom: 2rem\n```\n\nBottom space after the final section.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)",
228
295
  "defaultSnippets": [
229
296
  {
230
297
  "label": "Responsive spacing",
231
- "markdownDescription": "Set separate spacing values for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)",
298
+ "markdownDescription": "Set separate spacing values for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)",
232
299
  "body": {
233
300
  "desktop": "${1:2rem}",
234
301
  "mobile": "${2:2rem}"
@@ -251,13 +318,13 @@
251
318
  "type": "string",
252
319
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)|clamp\\(\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*\\))$",
253
320
  "description": "Responsive CSS length or clamp() expression.",
254
- "markdownDescription": "```yaml\nlayout:\n spacing:\n firstSectionTop:\n desktop: 1.5rem\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)"
321
+ "markdownDescription": "```yaml\nlayout:\n spacing:\n firstSectionTop:\n desktop: 1.5rem\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)"
255
322
  },
256
323
  "mobile": {
257
324
  "type": "string",
258
325
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)|clamp\\(\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*\\))$",
259
326
  "description": "Responsive CSS length or clamp() expression.",
260
- "markdownDescription": "```yaml\nlayout:\n spacing:\n firstSectionTop:\n mobile: 1.5rem\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)"
327
+ "markdownDescription": "```yaml\nlayout:\n spacing:\n firstSectionTop:\n mobile: 1.5rem\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)"
261
328
  }
262
329
  },
263
330
  "required": [
@@ -267,11 +334,11 @@
267
334
  "additionalProperties": false
268
335
  }
269
336
  ],
270
- "markdownDescription": "```yaml\nlayout:\n spacing:\n firstSectionTop: 1.5rem\n```\n\nTop space before the first section.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)",
337
+ "markdownDescription": "```yaml\nlayout:\n spacing:\n firstSectionTop: 1.5rem\n```\n\nTop space before the first section.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)",
271
338
  "defaultSnippets": [
272
339
  {
273
340
  "label": "Responsive spacing",
274
- "markdownDescription": "Set separate spacing values for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)",
341
+ "markdownDescription": "Set separate spacing values for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)",
275
342
  "body": {
276
343
  "desktop": "${1:1.5rem}",
277
344
  "mobile": "${2:1.5rem}"
@@ -294,13 +361,13 @@
294
361
  "type": "string",
295
362
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)|clamp\\(\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*\\))$",
296
363
  "description": "Responsive CSS length or clamp() expression.",
297
- "markdownDescription": "```yaml\nlayout:\n spacing:\n headingToBlock:\n desktop: 0.75em\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)"
364
+ "markdownDescription": "```yaml\nlayout:\n spacing:\n headingToBlock:\n desktop: 0.75em\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)"
298
365
  },
299
366
  "mobile": {
300
367
  "type": "string",
301
368
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)|clamp\\(\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*\\))$",
302
369
  "description": "Responsive CSS length or clamp() expression.",
303
- "markdownDescription": "```yaml\nlayout:\n spacing:\n headingToBlock:\n mobile: 0.75em\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)"
370
+ "markdownDescription": "```yaml\nlayout:\n spacing:\n headingToBlock:\n mobile: 0.75em\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)"
304
371
  }
305
372
  },
306
373
  "required": [
@@ -310,11 +377,11 @@
310
377
  "additionalProperties": false
311
378
  }
312
379
  ],
313
- "markdownDescription": "```yaml\nlayout:\n spacing:\n headingToBlock: 0.75em\n```\n\nGap from a section heading to a following structured block.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)",
380
+ "markdownDescription": "```yaml\nlayout:\n spacing:\n headingToBlock: 0.75em\n```\n\nGap from a section heading to a following structured block.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)",
314
381
  "defaultSnippets": [
315
382
  {
316
383
  "label": "Responsive spacing",
317
- "markdownDescription": "Set separate spacing values for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)",
384
+ "markdownDescription": "Set separate spacing values for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)",
318
385
  "body": {
319
386
  "desktop": "${1:0.75em}",
320
387
  "mobile": "${2:0.75em}"
@@ -337,13 +404,13 @@
337
404
  "type": "string",
338
405
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)|clamp\\(\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*\\))$",
339
406
  "description": "Responsive CSS length or clamp() expression.",
340
- "markdownDescription": "```yaml\nlayout:\n spacing:\n imageGap:\n desktop: 1rem\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)"
407
+ "markdownDescription": "```yaml\nlayout:\n spacing:\n imageGap:\n desktop: 1rem\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)"
341
408
  },
342
409
  "mobile": {
343
410
  "type": "string",
344
411
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)|clamp\\(\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*\\))$",
345
412
  "description": "Responsive CSS length or clamp() expression.",
346
- "markdownDescription": "```yaml\nlayout:\n spacing:\n imageGap:\n mobile: 1rem\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)"
413
+ "markdownDescription": "```yaml\nlayout:\n spacing:\n imageGap:\n mobile: 1rem\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)"
347
414
  }
348
415
  },
349
416
  "required": [
@@ -353,11 +420,11 @@
353
420
  "additionalProperties": false
354
421
  }
355
422
  ],
356
- "markdownDescription": "```yaml\nlayout:\n spacing:\n imageGap: 1rem\n```\n\nGap between images in an image stack.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)",
423
+ "markdownDescription": "```yaml\nlayout:\n spacing:\n imageGap: 1rem\n```\n\nGap between images in an image stack.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)",
357
424
  "defaultSnippets": [
358
425
  {
359
426
  "label": "Responsive spacing",
360
- "markdownDescription": "Set separate spacing values for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)",
427
+ "markdownDescription": "Set separate spacing values for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)",
361
428
  "body": {
362
429
  "desktop": "${1:1rem}",
363
430
  "mobile": "${2:1rem}"
@@ -380,13 +447,13 @@
380
447
  "type": "string",
381
448
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)|clamp\\(\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*\\))$",
382
449
  "description": "Responsive CSS length or clamp() expression.",
383
- "markdownDescription": "```yaml\nlayout:\n spacing:\n sectionGap:\n desktop: 2rem\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)"
450
+ "markdownDescription": "```yaml\nlayout:\n spacing:\n sectionGap:\n desktop: 2rem\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)"
384
451
  },
385
452
  "mobile": {
386
453
  "type": "string",
387
454
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)|clamp\\(\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*\\))$",
388
455
  "description": "Responsive CSS length or clamp() expression.",
389
- "markdownDescription": "```yaml\nlayout:\n spacing:\n sectionGap:\n mobile: 2rem\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)"
456
+ "markdownDescription": "```yaml\nlayout:\n spacing:\n sectionGap:\n mobile: 2rem\n```\n\nResponsive CSS length or clamp() expression.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)"
390
457
  }
391
458
  },
392
459
  "required": [
@@ -396,11 +463,11 @@
396
463
  "additionalProperties": false
397
464
  }
398
465
  ],
399
- "markdownDescription": "```yaml\nlayout:\n spacing:\n sectionGap: 2rem\n```\n\nVertical separation between page sections.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)",
466
+ "markdownDescription": "```yaml\nlayout:\n spacing:\n sectionGap: 2rem\n```\n\nVertical separation between page sections.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)",
400
467
  "defaultSnippets": [
401
468
  {
402
469
  "label": "Responsive spacing",
403
- "markdownDescription": "Set separate spacing values for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)",
470
+ "markdownDescription": "Set separate spacing values for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)",
404
471
  "body": {
405
472
  "desktop": "${1:2rem}",
406
473
  "mobile": "${2:2rem}"
@@ -410,11 +477,11 @@
410
477
  }
411
478
  },
412
479
  "additionalProperties": false,
413
- "markdownDescription": "```yaml\nlayout:\n spacing:\n sectionGap: 2rem\n```\n\nFine-grained spacing overrides.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)",
480
+ "markdownDescription": "```yaml\nlayout:\n spacing:\n sectionGap: 2rem\n```\n\nFine-grained spacing overrides.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)",
414
481
  "defaultSnippets": [
415
482
  {
416
483
  "label": "Layout spacing overrides",
417
- "markdownDescription": "Start with the structural spacing values most commonly adjusted together.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)",
484
+ "markdownDescription": "Start with the structural spacing values most commonly adjusted together.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)",
418
485
  "body": {
419
486
  "sectionGap": {
420
487
  "desktop": "${1:2rem}",
@@ -429,7 +496,7 @@
429
496
  },
430
497
  "additionalProperties": false,
431
498
  "description": "Optional layout overrides applied after the preset.",
432
- "markdownDescription": "```yaml\nlayout:\n contentSpacing: compact\n textWidth: narrow\n```\n\nOverrides text width, content spacing, page width and gutters after the selected preset.\n\n[Layout reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#layout)"
499
+ "markdownDescription": "```yaml\nlayout:\n contentSpacing: compact\n textWidth: narrow\n```\n\nOverrides text width, content spacing, page width and gutters after the selected preset.\n\n[Layout reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#layout)"
433
500
  },
434
501
  "images": {
435
502
  "type": "object",
@@ -438,7 +505,7 @@
438
505
  "description": "Maximum managed-image width. Omit this to keep the selected preset.",
439
506
  "type": "string",
440
507
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)|clamp\\(\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*,\\s*(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|vw|vh|vmin|vmax|ch|%)\\s*\\))$",
441
- "markdownDescription": "```yaml\nimages:\n width: 900px\n```\n\nMaximum managed-image width. Omit this to keep the selected preset.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#image-sizing)"
508
+ "markdownDescription": "```yaml\nimages:\n width: 900px\n```\n\nMaximum managed-image width. Omit this to keep the selected preset.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#image-sizing)"
442
509
  },
443
510
  "maxAvailableWidthPercent": {
444
511
  "description": "Maximum percentage of available horizontal space used by managed images.",
@@ -456,14 +523,14 @@
456
523
  "exclusiveMinimum": 0,
457
524
  "maximum": 100,
458
525
  "description": "Percentage used on wider screens.",
459
- "markdownDescription": "```yaml\nimages:\n maxAvailableWidthPercent:\n desktop: 100\n```\n\nPercentage used on wider screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#image-sizing)"
526
+ "markdownDescription": "```yaml\nimages:\n maxAvailableWidthPercent:\n desktop: 100\n```\n\nPercentage used on wider screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#image-sizing)"
460
527
  },
461
528
  "mobile": {
462
529
  "type": "number",
463
530
  "exclusiveMinimum": 0,
464
531
  "maximum": 100,
465
532
  "description": "Percentage used on narrow screens.",
466
- "markdownDescription": "```yaml\nimages:\n maxAvailableWidthPercent:\n mobile: 100\n```\n\nPercentage used on narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#image-sizing)"
533
+ "markdownDescription": "```yaml\nimages:\n maxAvailableWidthPercent:\n mobile: 100\n```\n\nPercentage used on narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#image-sizing)"
467
534
  }
468
535
  },
469
536
  "required": [
@@ -473,11 +540,11 @@
473
540
  "additionalProperties": false
474
541
  }
475
542
  ],
476
- "markdownDescription": "```yaml\nimages:\n maxAvailableWidthPercent:\n desktop: 100\n mobile: 100\n```\n\nMaximum percentage of available horizontal space used by managed images.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#image-sizing)",
543
+ "markdownDescription": "```yaml\nimages:\n maxAvailableWidthPercent:\n desktop: 100\n mobile: 100\n```\n\nMaximum percentage of available horizontal space used by managed images.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#image-sizing)",
477
544
  "defaultSnippets": [
478
545
  {
479
546
  "label": "Responsive image limit",
480
- "markdownDescription": "Set separate managed-image limits for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#image-sizing)",
547
+ "markdownDescription": "Set separate managed-image limits for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#image-sizing)",
481
548
  "body": {
482
549
  "desktop": "${1:100}",
483
550
  "mobile": "${2:100}"
@@ -501,14 +568,14 @@
501
568
  "exclusiveMinimum": 0,
502
569
  "maximum": 100,
503
570
  "description": "Percentage used on wider screens.",
504
- "markdownDescription": "```yaml\nimages:\n maxAvailableHeightPercent:\n desktop: 74\n```\n\nPercentage used on wider screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#image-sizing)"
571
+ "markdownDescription": "```yaml\nimages:\n maxAvailableHeightPercent:\n desktop: 74\n```\n\nPercentage used on wider screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#image-sizing)"
505
572
  },
506
573
  "mobile": {
507
574
  "type": "number",
508
575
  "exclusiveMinimum": 0,
509
576
  "maximum": 100,
510
577
  "description": "Percentage used on narrow screens.",
511
- "markdownDescription": "```yaml\nimages:\n maxAvailableHeightPercent:\n mobile: 68\n```\n\nPercentage used on narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#image-sizing)"
578
+ "markdownDescription": "```yaml\nimages:\n maxAvailableHeightPercent:\n mobile: 68\n```\n\nPercentage used on narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#image-sizing)"
512
579
  }
513
580
  },
514
581
  "required": [
@@ -518,11 +585,11 @@
518
585
  "additionalProperties": false
519
586
  }
520
587
  ],
521
- "markdownDescription": "```yaml\nimages:\n maxAvailableHeightPercent:\n desktop: 74\n mobile: 68\n```\n\nMaximum percentage of viewport height used by managed images.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#image-sizing)",
588
+ "markdownDescription": "```yaml\nimages:\n maxAvailableHeightPercent:\n desktop: 74\n mobile: 68\n```\n\nMaximum percentage of viewport height used by managed images.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#image-sizing)",
522
589
  "defaultSnippets": [
523
590
  {
524
591
  "label": "Responsive image limit",
525
- "markdownDescription": "Set separate managed-image limits for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#image-sizing)",
592
+ "markdownDescription": "Set separate managed-image limits for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#image-sizing)",
526
593
  "body": {
527
594
  "desktop": "${1:74}",
528
595
  "mobile": "${2:68}"
@@ -533,7 +600,70 @@
533
600
  },
534
601
  "additionalProperties": false,
535
602
  "description": "Optional defaults for managed image presentation.",
536
- "markdownDescription": "```yaml\nimages:\n width: 900px\n maxAvailableHeightPercent: 74\n```\n\nOverrides the available width and height used by Norna-managed images.\n\n[Image sizing reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#image-sizing)"
603
+ "markdownDescription": "```yaml\nimages:\n width: 900px\n maxAvailableHeightPercent: 74\n```\n\nOverrides the available width and height used by Norna-managed images.\n\n[Image sizing reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#image-sizing)"
604
+ },
605
+ "blocks": {
606
+ "type": "object",
607
+ "properties": {
608
+ "cardList": {
609
+ "type": "object",
610
+ "properties": {
611
+ "width": {
612
+ "type": "string",
613
+ "description": "Default maximum width for card lists. A width written in a norna-card-list block overrides this value.",
614
+ "oneOf": [
615
+ {
616
+ "const": "text",
617
+ "title": "Text width",
618
+ "description": "Match the active body-text width, including a reader-selected reading width."
619
+ },
620
+ {
621
+ "const": "narrow",
622
+ "title": "Narrow",
623
+ "description": "Limit the complete card list to at most 48rem."
624
+ },
625
+ {
626
+ "const": "normal",
627
+ "title": "Normal",
628
+ "description": "Limit the complete card list to at most 56rem."
629
+ },
630
+ {
631
+ "const": "wide",
632
+ "title": "Wide",
633
+ "description": "Allow the complete card list to use the available page-layout width."
634
+ }
635
+ ],
636
+ "markdownDescription": "```yaml\nblocks:\n cardList:\n width: text\n```\n\nDefault maximum width for card lists. A width written in a norna-card-list block overrides this value.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#content-block-defaults)",
637
+ "examples": [
638
+ "text",
639
+ "narrow",
640
+ "normal",
641
+ "wide"
642
+ ]
643
+ }
644
+ },
645
+ "required": [
646
+ "width"
647
+ ],
648
+ "additionalProperties": false,
649
+ "description": "Site-wide card-list defaults.",
650
+ "markdownDescription": "```yaml\nblocks:\n cardList:\n width: text\n```\n\nSets site-wide defaults for card lists. A `width` option in an individual `norna-card-list` block overrides this setting.\n\n[Content block defaults](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#content-block-defaults)"
651
+ }
652
+ },
653
+ "additionalProperties": false,
654
+ "description": "Optional site-wide defaults for structured Norna content blocks.",
655
+ "markdownDescription": "```yaml\nblocks:\n cardList:\n width: text\n```\n\nOverrides preset defaults for structured Norna content blocks throughout the site. Options written directly in a Markdown block take priority.\n\n[Content block defaults](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#content-block-defaults)",
656
+ "defaultSnippets": [
657
+ {
658
+ "label": "Override content-block defaults",
659
+ "markdownDescription": "Override a preset default for structured content blocks across the site.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#content-block-defaults)",
660
+ "body": {
661
+ "cardList": {
662
+ "width": "${1:text}"
663
+ }
664
+ }
665
+ }
666
+ ]
537
667
  },
538
668
  "typography": {
539
669
  "type": "object",
@@ -542,7 +672,7 @@
542
672
  "description": "CSS font-family stack.",
543
673
  "type": "string",
544
674
  "minLength": 1,
545
- "markdownDescription": "```yaml\ntypography:\n fontFamily: \"Arial, sans-serif\"\n```\n\nCSS font-family stack.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
675
+ "markdownDescription": "```yaml\ntypography:\n fontFamily: \"Arial, sans-serif\"\n```\n\nCSS font-family stack.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
546
676
  },
547
677
  "profile": {
548
678
  "description": "Typography profile. Omit this to keep the selected preset.",
@@ -569,7 +699,7 @@
569
699
  "description": "Stronger headings and tighter body rhythm for short, expressive pages."
570
700
  }
571
701
  ],
572
- "markdownDescription": "```yaml\ntypography:\n profile: reading\n```\n\nTypography profile. Omit this to keep the selected preset.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
702
+ "markdownDescription": "```yaml\ntypography:\n profile: reading\n```\n\nTypography profile. Omit this to keep the selected preset.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
573
703
  },
574
704
  "rhythm": {
575
705
  "description": "Typography spacing rhythm. Omit this to keep the selected preset.",
@@ -591,7 +721,7 @@
591
721
  "description": "Increase vertical spacing for a more expansive presentation."
592
722
  }
593
723
  ],
594
- "markdownDescription": "```yaml\ntypography:\n rhythm: normal\n```\n\nTypography spacing rhythm. Omit this to keep the selected preset.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
724
+ "markdownDescription": "```yaml\ntypography:\n rhythm: normal\n```\n\nTypography spacing rhythm. Omit this to keep the selected preset.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
595
725
  },
596
726
  "overrides": {
597
727
  "description": "Focused typography overrides applied after the profile.",
@@ -629,7 +759,7 @@
629
759
  "description": "Align text with the right edge of its text area."
630
760
  }
631
761
  ],
632
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h1:\n \n align:\n desktop: left\n```\n\nText alignment on wider screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
762
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h1:\n \n align:\n desktop: left\n```\n\nText alignment on wider screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
633
763
  },
634
764
  "mobile": {
635
765
  "description": "Text alignment on narrow screens.",
@@ -651,15 +781,15 @@
651
781
  "description": "Align text with the right edge of its text area."
652
782
  }
653
783
  ],
654
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h1:\n \n align:\n mobile: left\n```\n\nText alignment on narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
784
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h1:\n \n align:\n mobile: left\n```\n\nText alignment on narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
655
785
  }
656
786
  },
657
787
  "additionalProperties": false,
658
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h1:\n \n align:\n desktop: left\n mobile: left\n```\n\nResponsive text alignment override.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)",
788
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h1:\n \n align:\n desktop: left\n mobile: left\n```\n\nResponsive text alignment override.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)",
659
789
  "defaultSnippets": [
660
790
  {
661
791
  "label": "Responsive text alignment",
662
- "markdownDescription": "Set separate text alignment for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)",
792
+ "markdownDescription": "Set separate text alignment for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)",
663
793
  "body": {
664
794
  "desktop": "${1:left}",
665
795
  "mobile": "${2:left}"
@@ -692,14 +822,14 @@
692
822
  "description": "Use the largest available type size for exceptional emphasis."
693
823
  }
694
824
  ],
695
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h1:\n \n size: medium\n```\n\nText size from the active typography system. Omit an override to keep the profile value.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
825
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h1:\n \n size: medium\n```\n\nText size from the active typography system. Omit an override to keep the profile value.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
696
826
  },
697
827
  "lineHeight": {
698
828
  "type": "number",
699
829
  "minimum": 1,
700
830
  "maximum": 3,
701
- "description": "Unitless line height between 1 and 3.",
702
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h1:\n \n lineHeight: 1.5\n```\n\nUnitless line height between 1 and 3.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
831
+ "description": "Unitless heading line height between 1 and 3.",
832
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h1:\n \n lineHeight: 1.5\n```\n\nUnitless heading line height between 1 and 3.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
703
833
  },
704
834
  "weight": {
705
835
  "description": "Heading font weight. Omit this to keep the profile value.",
@@ -725,23 +855,23 @@
725
855
  "description": "Use bold font weight."
726
856
  }
727
857
  ],
728
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h1:\n \n weight: 600\n```\n\nHeading font weight. Omit this to keep the profile value.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
858
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h1:\n \n weight: 600\n```\n\nHeading font weight. Omit this to keep the profile value.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
729
859
  },
730
860
  "spacingBefore": {
731
861
  "description": "Vertical space before the heading.",
732
862
  "type": "string",
733
863
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|ch|lh))$",
734
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h1:\n \n spacingBefore: 1.5em\n```\n\nVertical space before the heading.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
864
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h1:\n \n spacingBefore: 1.5em\n```\n\nVertical space before the heading.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
735
865
  },
736
866
  "spacingAfter": {
737
867
  "description": "Vertical space after the heading.",
738
868
  "type": "string",
739
869
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|ch|lh))$",
740
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h1:\n \n spacingAfter: 0.5em\n```\n\nVertical space after the heading.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
870
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h1:\n \n spacingAfter: 0.5em\n```\n\nVertical space after the heading.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
741
871
  }
742
872
  },
743
873
  "additionalProperties": false,
744
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h1:\n size: medium\n```\n\nOverrides for Markdown level 1 headings.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
874
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h1:\n size: medium\n```\n\nOverrides for Markdown level 1 headings.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
745
875
  },
746
876
  "h2": {
747
877
  "description": "Overrides for Markdown level 2 section headings.",
@@ -771,7 +901,7 @@
771
901
  "description": "Align text with the right edge of its text area."
772
902
  }
773
903
  ],
774
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h2:\n \n align:\n desktop: left\n```\n\nText alignment on wider screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
904
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h2:\n \n align:\n desktop: left\n```\n\nText alignment on wider screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
775
905
  },
776
906
  "mobile": {
777
907
  "description": "Text alignment on narrow screens.",
@@ -793,15 +923,15 @@
793
923
  "description": "Align text with the right edge of its text area."
794
924
  }
795
925
  ],
796
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h2:\n \n align:\n mobile: left\n```\n\nText alignment on narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
926
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h2:\n \n align:\n mobile: left\n```\n\nText alignment on narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
797
927
  }
798
928
  },
799
929
  "additionalProperties": false,
800
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h2:\n \n align:\n desktop: left\n mobile: left\n```\n\nResponsive text alignment override.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)",
930
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h2:\n \n align:\n desktop: left\n mobile: left\n```\n\nResponsive text alignment override.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)",
801
931
  "defaultSnippets": [
802
932
  {
803
933
  "label": "Responsive text alignment",
804
- "markdownDescription": "Set separate text alignment for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)",
934
+ "markdownDescription": "Set separate text alignment for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)",
805
935
  "body": {
806
936
  "desktop": "${1:left}",
807
937
  "mobile": "${2:left}"
@@ -834,14 +964,14 @@
834
964
  "description": "Use the largest available type size for exceptional emphasis."
835
965
  }
836
966
  ],
837
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h2:\n \n size: medium\n```\n\nText size from the active typography system. Omit an override to keep the profile value.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
967
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h2:\n \n size: medium\n```\n\nText size from the active typography system. Omit an override to keep the profile value.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
838
968
  },
839
969
  "lineHeight": {
840
970
  "type": "number",
841
971
  "minimum": 1,
842
972
  "maximum": 3,
843
- "description": "Unitless line height between 1 and 3.",
844
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h2:\n \n lineHeight: 1.5\n```\n\nUnitless line height between 1 and 3.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
973
+ "description": "Unitless heading line height between 1 and 3.",
974
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h2:\n \n lineHeight: 1.5\n```\n\nUnitless heading line height between 1 and 3.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
845
975
  },
846
976
  "weight": {
847
977
  "description": "Heading font weight. Omit this to keep the profile value.",
@@ -867,23 +997,23 @@
867
997
  "description": "Use bold font weight."
868
998
  }
869
999
  ],
870
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h2:\n \n weight: 600\n```\n\nHeading font weight. Omit this to keep the profile value.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1000
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h2:\n \n weight: 600\n```\n\nHeading font weight. Omit this to keep the profile value.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
871
1001
  },
872
1002
  "spacingBefore": {
873
1003
  "description": "Vertical space before the heading.",
874
1004
  "type": "string",
875
1005
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|ch|lh))$",
876
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h2:\n \n spacingBefore: 1.5em\n```\n\nVertical space before the heading.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1006
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h2:\n \n spacingBefore: 1.5em\n```\n\nVertical space before the heading.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
877
1007
  },
878
1008
  "spacingAfter": {
879
1009
  "description": "Vertical space after the heading.",
880
1010
  "type": "string",
881
1011
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|ch|lh))$",
882
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h2:\n \n spacingAfter: 0.5em\n```\n\nVertical space after the heading.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1012
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h2:\n \n spacingAfter: 0.5em\n```\n\nVertical space after the heading.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
883
1013
  }
884
1014
  },
885
1015
  "additionalProperties": false,
886
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h2:\n size: medium\n```\n\nOverrides for Markdown level 2 section headings.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1016
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h2:\n size: medium\n```\n\nOverrides for Markdown level 2 section headings.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
887
1017
  },
888
1018
  "h3": {
889
1019
  "description": "Overrides for Markdown level 3 headings.",
@@ -913,7 +1043,7 @@
913
1043
  "description": "Align text with the right edge of its text area."
914
1044
  }
915
1045
  ],
916
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h3:\n \n align:\n desktop: left\n```\n\nText alignment on wider screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1046
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h3:\n \n align:\n desktop: left\n```\n\nText alignment on wider screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
917
1047
  },
918
1048
  "mobile": {
919
1049
  "description": "Text alignment on narrow screens.",
@@ -935,15 +1065,15 @@
935
1065
  "description": "Align text with the right edge of its text area."
936
1066
  }
937
1067
  ],
938
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h3:\n \n align:\n mobile: left\n```\n\nText alignment on narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1068
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h3:\n \n align:\n mobile: left\n```\n\nText alignment on narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
939
1069
  }
940
1070
  },
941
1071
  "additionalProperties": false,
942
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h3:\n \n align:\n desktop: left\n mobile: left\n```\n\nResponsive text alignment override.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)",
1072
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h3:\n \n align:\n desktop: left\n mobile: left\n```\n\nResponsive text alignment override.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)",
943
1073
  "defaultSnippets": [
944
1074
  {
945
1075
  "label": "Responsive text alignment",
946
- "markdownDescription": "Set separate text alignment for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)",
1076
+ "markdownDescription": "Set separate text alignment for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)",
947
1077
  "body": {
948
1078
  "desktop": "${1:left}",
949
1079
  "mobile": "${2:left}"
@@ -976,14 +1106,14 @@
976
1106
  "description": "Use the largest available type size for exceptional emphasis."
977
1107
  }
978
1108
  ],
979
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h3:\n \n size: medium\n```\n\nText size from the active typography system. Omit an override to keep the profile value.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1109
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h3:\n \n size: medium\n```\n\nText size from the active typography system. Omit an override to keep the profile value.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
980
1110
  },
981
1111
  "lineHeight": {
982
1112
  "type": "number",
983
1113
  "minimum": 1,
984
1114
  "maximum": 3,
985
- "description": "Unitless line height between 1 and 3.",
986
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h3:\n \n lineHeight: 1.5\n```\n\nUnitless line height between 1 and 3.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1115
+ "description": "Unitless heading line height between 1 and 3.",
1116
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h3:\n \n lineHeight: 1.5\n```\n\nUnitless heading line height between 1 and 3.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
987
1117
  },
988
1118
  "weight": {
989
1119
  "description": "Heading font weight. Omit this to keep the profile value.",
@@ -1009,23 +1139,23 @@
1009
1139
  "description": "Use bold font weight."
1010
1140
  }
1011
1141
  ],
1012
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h3:\n \n weight: 600\n```\n\nHeading font weight. Omit this to keep the profile value.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1142
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h3:\n \n weight: 600\n```\n\nHeading font weight. Omit this to keep the profile value.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1013
1143
  },
1014
1144
  "spacingBefore": {
1015
1145
  "description": "Vertical space before the heading.",
1016
1146
  "type": "string",
1017
1147
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|ch|lh))$",
1018
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h3:\n \n spacingBefore: 1.5em\n```\n\nVertical space before the heading.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1148
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h3:\n \n spacingBefore: 1.5em\n```\n\nVertical space before the heading.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1019
1149
  },
1020
1150
  "spacingAfter": {
1021
1151
  "description": "Vertical space after the heading.",
1022
1152
  "type": "string",
1023
1153
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|ch|lh))$",
1024
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h3:\n \n spacingAfter: 0.5em\n```\n\nVertical space after the heading.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1154
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h3:\n \n spacingAfter: 0.5em\n```\n\nVertical space after the heading.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1025
1155
  }
1026
1156
  },
1027
1157
  "additionalProperties": false,
1028
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h3:\n size: medium\n```\n\nOverrides for Markdown level 3 headings.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1158
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h3:\n size: medium\n```\n\nOverrides for Markdown level 3 headings.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1029
1159
  },
1030
1160
  "h4": {
1031
1161
  "description": "Overrides for Markdown level 4 headings.",
@@ -1055,7 +1185,7 @@
1055
1185
  "description": "Align text with the right edge of its text area."
1056
1186
  }
1057
1187
  ],
1058
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h4:\n \n align:\n desktop: left\n```\n\nText alignment on wider screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1188
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h4:\n \n align:\n desktop: left\n```\n\nText alignment on wider screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1059
1189
  },
1060
1190
  "mobile": {
1061
1191
  "description": "Text alignment on narrow screens.",
@@ -1077,15 +1207,15 @@
1077
1207
  "description": "Align text with the right edge of its text area."
1078
1208
  }
1079
1209
  ],
1080
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h4:\n \n align:\n mobile: left\n```\n\nText alignment on narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1210
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h4:\n \n align:\n mobile: left\n```\n\nText alignment on narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1081
1211
  }
1082
1212
  },
1083
1213
  "additionalProperties": false,
1084
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h4:\n \n align:\n desktop: left\n mobile: left\n```\n\nResponsive text alignment override.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)",
1214
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h4:\n \n align:\n desktop: left\n mobile: left\n```\n\nResponsive text alignment override.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)",
1085
1215
  "defaultSnippets": [
1086
1216
  {
1087
1217
  "label": "Responsive text alignment",
1088
- "markdownDescription": "Set separate text alignment for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)",
1218
+ "markdownDescription": "Set separate text alignment for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)",
1089
1219
  "body": {
1090
1220
  "desktop": "${1:left}",
1091
1221
  "mobile": "${2:left}"
@@ -1118,14 +1248,14 @@
1118
1248
  "description": "Use the largest available type size for exceptional emphasis."
1119
1249
  }
1120
1250
  ],
1121
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h4:\n \n size: medium\n```\n\nText size from the active typography system. Omit an override to keep the profile value.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1251
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h4:\n \n size: medium\n```\n\nText size from the active typography system. Omit an override to keep the profile value.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1122
1252
  },
1123
1253
  "lineHeight": {
1124
1254
  "type": "number",
1125
1255
  "minimum": 1,
1126
1256
  "maximum": 3,
1127
- "description": "Unitless line height between 1 and 3.",
1128
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h4:\n \n lineHeight: 1.5\n```\n\nUnitless line height between 1 and 3.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1257
+ "description": "Unitless heading line height between 1 and 3.",
1258
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h4:\n \n lineHeight: 1.5\n```\n\nUnitless heading line height between 1 and 3.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1129
1259
  },
1130
1260
  "weight": {
1131
1261
  "description": "Heading font weight. Omit this to keep the profile value.",
@@ -1151,27 +1281,27 @@
1151
1281
  "description": "Use bold font weight."
1152
1282
  }
1153
1283
  ],
1154
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h4:\n \n weight: 600\n```\n\nHeading font weight. Omit this to keep the profile value.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1284
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h4:\n \n weight: 600\n```\n\nHeading font weight. Omit this to keep the profile value.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1155
1285
  },
1156
1286
  "spacingBefore": {
1157
1287
  "description": "Vertical space before the heading.",
1158
1288
  "type": "string",
1159
1289
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|ch|lh))$",
1160
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h4:\n \n spacingBefore: 1.5em\n```\n\nVertical space before the heading.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1290
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h4:\n \n spacingBefore: 1.5em\n```\n\nVertical space before the heading.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1161
1291
  },
1162
1292
  "spacingAfter": {
1163
1293
  "description": "Vertical space after the heading.",
1164
1294
  "type": "string",
1165
1295
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|ch|lh))$",
1166
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h4:\n \n spacingAfter: 0.5em\n```\n\nVertical space after the heading.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1296
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h4:\n \n spacingAfter: 0.5em\n```\n\nVertical space after the heading.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1167
1297
  }
1168
1298
  },
1169
1299
  "additionalProperties": false,
1170
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h4:\n size: medium\n```\n\nOverrides for Markdown level 4 headings.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1300
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h4:\n size: medium\n```\n\nOverrides for Markdown level 4 headings.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1171
1301
  }
1172
1302
  },
1173
1303
  "additionalProperties": false,
1174
- "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h2:\n size: medium\n```\n\nOverrides for heading levels.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1304
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n headings:\n h2:\n size: medium\n```\n\nOverrides for heading levels.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1175
1305
  },
1176
1306
  "body": {
1177
1307
  "description": "Overrides for body text.",
@@ -1201,7 +1331,7 @@
1201
1331
  "description": "Align text with the right edge of its text area."
1202
1332
  }
1203
1333
  ],
1204
- "markdownDescription": "```yaml\ntypography:\n overrides:\n body:\n align:\n desktop: left\n```\n\nText alignment on wider screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1334
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n body:\n align:\n desktop: left\n```\n\nText alignment on wider screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1205
1335
  },
1206
1336
  "mobile": {
1207
1337
  "description": "Text alignment on narrow screens.",
@@ -1223,15 +1353,15 @@
1223
1353
  "description": "Align text with the right edge of its text area."
1224
1354
  }
1225
1355
  ],
1226
- "markdownDescription": "```yaml\ntypography:\n overrides:\n body:\n align:\n mobile: left\n```\n\nText alignment on narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1356
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n body:\n align:\n mobile: left\n```\n\nText alignment on narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1227
1357
  }
1228
1358
  },
1229
1359
  "additionalProperties": false,
1230
- "markdownDescription": "```yaml\ntypography:\n overrides:\n body:\n align:\n desktop: left\n mobile: left\n```\n\nResponsive text alignment override.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)",
1360
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n body:\n align:\n desktop: left\n mobile: left\n```\n\nResponsive text alignment override.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)",
1231
1361
  "defaultSnippets": [
1232
1362
  {
1233
1363
  "label": "Responsive text alignment",
1234
- "markdownDescription": "Set separate text alignment for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)",
1364
+ "markdownDescription": "Set separate text alignment for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)",
1235
1365
  "body": {
1236
1366
  "desktop": "${1:left}",
1237
1367
  "mobile": "${2:left}"
@@ -1264,24 +1394,24 @@
1264
1394
  "description": "Use the largest available type size for exceptional emphasis."
1265
1395
  }
1266
1396
  ],
1267
- "markdownDescription": "```yaml\ntypography:\n overrides:\n body:\n size: medium\n```\n\nText size from the active typography system. Omit an override to keep the profile value.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1397
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n body:\n size: medium\n```\n\nText size from the active typography system. Omit an override to keep the profile value.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1268
1398
  },
1269
1399
  "lineHeight": {
1270
1400
  "type": "number",
1271
- "minimum": 1,
1401
+ "minimum": 1.4,
1272
1402
  "maximum": 3,
1273
- "description": "Unitless line height between 1 and 3.",
1274
- "markdownDescription": "```yaml\ntypography:\n overrides:\n body:\n lineHeight: 1.5\n```\n\nUnitless line height between 1 and 3.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1403
+ "description": "Unitless body-text line height between 1.4 and 3.",
1404
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n body:\n lineHeight: 1.5\n```\n\nUnitless body-text line height between 1.4 and 3.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1275
1405
  },
1276
1406
  "paragraphSpacing": {
1277
1407
  "description": "Vertical space between body paragraphs.",
1278
1408
  "type": "string",
1279
1409
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|ch|lh))$",
1280
- "markdownDescription": "```yaml\ntypography:\n overrides:\n body:\n paragraphSpacing: 1em\n```\n\nVertical space between body paragraphs.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1410
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n body:\n paragraphSpacing: 1em\n```\n\nVertical space between body paragraphs.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1281
1411
  }
1282
1412
  },
1283
1413
  "additionalProperties": false,
1284
- "markdownDescription": "```yaml\ntypography:\n overrides:\n body:\n lineHeight: 1.55\n```\n\nOverrides for body text.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1414
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n body:\n lineHeight: 1.55\n```\n\nOverrides for body text.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1285
1415
  },
1286
1416
  "caption": {
1287
1417
  "description": "Overrides for image captions.",
@@ -1311,7 +1441,7 @@
1311
1441
  "description": "Align text with the right edge of its text area."
1312
1442
  }
1313
1443
  ],
1314
- "markdownDescription": "```yaml\ntypography:\n overrides:\n caption:\n align:\n desktop: left\n```\n\nText alignment on wider screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1444
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n caption:\n align:\n desktop: left\n```\n\nText alignment on wider screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1315
1445
  },
1316
1446
  "mobile": {
1317
1447
  "description": "Text alignment on narrow screens.",
@@ -1333,15 +1463,15 @@
1333
1463
  "description": "Align text with the right edge of its text area."
1334
1464
  }
1335
1465
  ],
1336
- "markdownDescription": "```yaml\ntypography:\n overrides:\n caption:\n align:\n mobile: left\n```\n\nText alignment on narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1466
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n caption:\n align:\n mobile: left\n```\n\nText alignment on narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1337
1467
  }
1338
1468
  },
1339
1469
  "additionalProperties": false,
1340
- "markdownDescription": "```yaml\ntypography:\n overrides:\n caption:\n align:\n desktop: left\n mobile: left\n```\n\nResponsive text alignment override.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)",
1470
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n caption:\n align:\n desktop: left\n mobile: left\n```\n\nResponsive text alignment override.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)",
1341
1471
  "defaultSnippets": [
1342
1472
  {
1343
1473
  "label": "Responsive text alignment",
1344
- "markdownDescription": "Set separate text alignment for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)",
1474
+ "markdownDescription": "Set separate text alignment for wider and narrow screens.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)",
1345
1475
  "body": {
1346
1476
  "desktop": "${1:left}",
1347
1477
  "mobile": "${2:left}"
@@ -1374,32 +1504,32 @@
1374
1504
  "description": "Use the largest available type size for exceptional emphasis."
1375
1505
  }
1376
1506
  ],
1377
- "markdownDescription": "```yaml\ntypography:\n overrides:\n caption:\n size: medium\n```\n\nText size from the active typography system. Omit an override to keep the profile value.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1507
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n caption:\n size: medium\n```\n\nText size from the active typography system. Omit an override to keep the profile value.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1378
1508
  },
1379
1509
  "lineHeight": {
1380
1510
  "type": "number",
1381
- "minimum": 1,
1511
+ "minimum": 1.25,
1382
1512
  "maximum": 3,
1383
- "description": "Unitless line height between 1 and 3.",
1384
- "markdownDescription": "```yaml\ntypography:\n overrides:\n caption:\n lineHeight: 1.5\n```\n\nUnitless line height between 1 and 3.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1513
+ "description": "Unitless caption line height between 1.25 and 3.",
1514
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n caption:\n lineHeight: 1.5\n```\n\nUnitless caption line height between 1.25 and 3.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1385
1515
  },
1386
1516
  "spacingBefore": {
1387
1517
  "description": "Vertical space between an image and its caption.",
1388
1518
  "type": "string",
1389
1519
  "pattern": "^(?:0|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:px|rem|em|ch|lh))$",
1390
- "markdownDescription": "```yaml\ntypography:\n overrides:\n caption:\n spacingBefore: 0.5em\n```\n\nVertical space between an image and its caption.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1520
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n caption:\n spacingBefore: 0.5em\n```\n\nVertical space between an image and its caption.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1391
1521
  }
1392
1522
  },
1393
1523
  "additionalProperties": false,
1394
- "markdownDescription": "```yaml\ntypography:\n overrides:\n caption:\n size: small\n```\n\nOverrides for image captions.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1524
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n caption:\n size: small\n```\n\nOverrides for image captions.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1395
1525
  }
1396
1526
  },
1397
1527
  "additionalProperties": false,
1398
- "markdownDescription": "```yaml\ntypography:\n overrides:\n body:\n lineHeight: 1.55\n```\n\nFocused typography overrides applied after the profile.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)",
1528
+ "markdownDescription": "```yaml\ntypography:\n overrides:\n body:\n lineHeight: 1.55\n```\n\nFocused typography overrides applied after the profile.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)",
1399
1529
  "defaultSnippets": [
1400
1530
  {
1401
1531
  "label": "Typography overrides",
1402
- "markdownDescription": "Start a focused set of heading and body-text overrides.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)",
1532
+ "markdownDescription": "Start a focused set of heading and body-text overrides.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)",
1403
1533
  "body": {
1404
1534
  "headings": {
1405
1535
  "h2": {
@@ -1417,74 +1547,110 @@
1417
1547
  },
1418
1548
  "additionalProperties": false,
1419
1549
  "description": "Typography profile, rhythm, font family, and focused overrides.",
1420
- "markdownDescription": "```yaml\ntypography:\n profile: reading\n rhythm: normal\n```\n\nOverrides the preset's font stack, typography profile, rhythm or individual text settings.\n\n[Typography configuration reference](https://github.com/janga/norna/blob/v0.7.18/docs/typography.md#configuration-shape)"
1550
+ "markdownDescription": "```yaml\ntypography:\n profile: reading\n rhythm: normal\n```\n\nOverrides the preset's font stack, typography profile, rhythm or individual text settings.\n\n[Typography configuration reference](https://github.com/janga/norna/blob/v0.7.22/docs/typography.md#configuration-shape)"
1421
1551
  },
1422
1552
  "palette": {
1423
1553
  "type": "string",
1424
- "description": "Coordinated site color palette. Omit this to use the selected preset.",
1554
+ "description": "Coordinated site color palette. Every palette provides light and dark variants. Omit this to use the selected preset.",
1425
1555
  "oneOf": [
1426
1556
  {
1427
- "const": "dark",
1428
- "title": "Dark",
1429
- "description": "Black page and section surfaces with light text."
1557
+ "const": "near-monochrome",
1558
+ "title": "Near monochrome",
1559
+ "description": "Neutral grays and off-whites with almost no visible hue. Includes coordinated light and dark variants."
1560
+ },
1561
+ {
1562
+ "const": "warm-paper",
1563
+ "title": "Warm paper",
1564
+ "description": "Warm off-whites and browns resembling paper and ink. Includes coordinated light and dark variants."
1565
+ },
1566
+ {
1567
+ "const": "retro-earth",
1568
+ "title": "Retro earth",
1569
+ "description": "Earthy ochres, olives and warm neutrals with a subdued retro character. Includes coordinated light and dark variants."
1570
+ },
1571
+ {
1572
+ "const": "clay-rose",
1573
+ "title": "Clay rose",
1574
+ "description": "Muted clay, rose and wine tones with a warm editorial character. Includes coordinated light and dark variants."
1575
+ },
1576
+ {
1577
+ "const": "forest-moss",
1578
+ "title": "Forest moss",
1579
+ "description": "Botanical greens, mossy surfaces and warm lichen neutrals. Includes coordinated light and dark variants."
1580
+ },
1581
+ {
1582
+ "const": "mineral-teal",
1583
+ "title": "Mineral teal",
1584
+ "description": "Cool mineral greens with muted teal accents and pale aqua-gray surfaces. Includes coordinated light and dark variants."
1585
+ },
1586
+ {
1587
+ "const": "arctic-blue",
1588
+ "title": "Arctic blue",
1589
+ "description": "Cool blue-gray surfaces with clear, restrained blue accents. Includes coordinated light and dark variants."
1430
1590
  },
1431
1591
  {
1432
- "const": "light",
1433
- "title": "Light",
1434
- "description": "White and cool light surfaces with dark text."
1592
+ "const": "soft-lavender",
1593
+ "title": "Soft lavender",
1594
+ "description": "Quiet lavender surfaces with low-key mauve accents. Includes coordinated light and dark variants."
1435
1595
  },
1436
1596
  {
1437
- "const": "paper",
1438
- "title": "Paper",
1439
- "description": "Warm off-white surfaces with dark text."
1597
+ "const": "vivid-night",
1598
+ "title": "Vivid night",
1599
+ "description": "Indigo surfaces with a brighter cyan accent and a dark-first character. Includes coordinated light and dark variants."
1440
1600
  }
1441
1601
  ],
1442
- "markdownDescription": "```yaml\npalette: paper\n```\n\nChooses a coordinated color system for the page frame, navigation, footer and section surfaces.\n\n[Palette and section surfaces](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#palette-and-section-surfaces)",
1602
+ "markdownDescription": "```yaml\npalette: warm-paper\n```\n\nChooses the site color character. Every palette provides coordinated light and dark variants.\n\n[Palette and color mode](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#palette-and-color-mode)",
1443
1603
  "examples": [
1444
- "dark",
1445
- "light",
1446
- "paper"
1604
+ "near-monochrome",
1605
+ "warm-paper",
1606
+ "retro-earth",
1607
+ "clay-rose",
1608
+ "forest-moss",
1609
+ "mineral-teal",
1610
+ "arctic-blue",
1611
+ "soft-lavender",
1612
+ "vivid-night"
1447
1613
  ]
1448
1614
  },
1449
1615
  "sections": {
1450
1616
  "type": "object",
1451
1617
  "properties": {
1452
1618
  "backgroundPattern": {
1453
- "description": "Section background sequence. Omit this to keep the selected preset or inherited page setting.",
1619
+ "description": "Section background pattern. Alternating and accented create full-width bands with sections or top navigation; tree navigation requires uniform.",
1454
1620
  "type": "string",
1455
1621
  "oneOf": [
1456
1622
  {
1457
1623
  "const": "uniform",
1458
1624
  "title": "Uniform",
1459
- "description": "Use the palette base surface for every section."
1625
+ "description": "Use the normal page background for every H2 section. Tree navigation requires this pattern."
1460
1626
  },
1461
1627
  {
1462
1628
  "const": "alternating",
1463
1629
  "title": "Alternating",
1464
- "description": "Alternate between the palette base and soft surfaces."
1630
+ "description": "Alternate normal and subtly contrasting full-width section backgrounds. Available with sections and top navigation."
1465
1631
  },
1466
1632
  {
1467
- "const": "cycling",
1468
- "title": "Cycling",
1469
- "description": "Cycle through the palette base, soft and emphasis surfaces."
1633
+ "const": "accented",
1634
+ "title": "Accented",
1635
+ "description": "Move through base, soft, emphasis and soft full-width section backgrounds before repeating. Available with sections and top navigation."
1470
1636
  }
1471
1637
  ],
1472
- "markdownDescription": "```yaml\nsections:\n backgroundPattern: alternating\n```\n\nSection background sequence. Omit this to keep the selected preset or inherited page setting.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#palette-and-section-surfaces)",
1638
+ "markdownDescription": "```yaml\nsections:\n backgroundPattern: alternating\n```\n\nSection background pattern. Alternating and accented create full-width bands with sections or top navigation; tree navigation requires uniform.\n\n[Read the relevant reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#section-backgrounds)",
1473
1639
  "examples": [
1474
1640
  "uniform",
1475
1641
  "alternating",
1476
- "cycling"
1642
+ "accented"
1477
1643
  ]
1478
1644
  }
1479
1645
  },
1480
1646
  "additionalProperties": false,
1481
1647
  "description": "Defaults for page section presentation.",
1482
- "markdownDescription": "```yaml\nsections:\n backgroundPattern: alternating\n```\n\nChooses whether section backgrounds stay uniform, alternate between two surfaces or cycle through three.\n\n[Palette and section surfaces](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md#palette-and-section-surfaces)"
1648
+ "markdownDescription": "```yaml\nsections:\n backgroundPattern: alternating\n```\n\nChooses whether H2 section backgrounds stay uniform, alternate between two backgrounds or move from base to soft to emphasis and back through soft. Non-uniform patterns are available with sections and top navigation; tree navigation requires uniform.\n\n[Section backgrounds](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md#section-backgrounds)"
1483
1649
  }
1484
1650
  },
1485
1651
  "additionalProperties": false,
1486
1652
  "description": "Site-wide visual identity and default page presentation. Presets may be selected only in the root theme.",
1487
1653
  "$id": "https://janga.github.io/norna/schemas/theme.schema.json",
1488
1654
  "title": "Norna visual theme",
1489
- "markdownDescription": "```yaml\npreset: documentation\n```\n\nChoose one complete preset first. Add focused overrides only when the site needs to differ from it.\n\n[Theme reference](https://github.com/janga/norna/blob/v0.7.18/docs/theme.md)"
1655
+ "markdownDescription": "```yaml\npreset: documentation\n```\n\nChoose one complete preset first. Add focused overrides only when the site needs to differ from it.\n\n[Theme reference](https://github.com/janga/norna/blob/v0.7.22/docs/theme.md)"
1490
1656
  }