@janga/norna 0.7.8 → 0.7.10
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.
- package/README.md +1 -1
- package/docs/README.md +18 -11
- package/docs/configuration.md +9 -54
- package/docs/content.md +6 -7
- package/docs/design/norna-diagram-design.md +158 -0
- package/docs/getting-started.md +18 -16
- package/docs/routes.md +7 -6
- package/docs/site-structure.md +4 -2
- package/docs/sitewide-content.md +74 -0
- package/docs/theme.md +61 -128
- package/docs/typography.md +45 -33
- package/examples/001-dog-shelter-single-page/README.md +9 -0
- package/examples/001-dog-shelter-single-page/site/config.mjs +27 -0
- package/examples/001-dog-shelter-single-page/site/content.md +38 -0
- package/examples/001-dog-shelter-single-page/site/images/what-we-do/dog-house.svg +25 -0
- package/examples/001-dog-shelter-single-page/site/images/you-can-help/heart.svg +13 -0
- package/examples/001-dog-shelter-single-page/site/public/favicon.svg +10 -0
- package/examples/001-dog-shelter-single-page/site/public/robots.txt +2 -0
- package/examples/001-dog-shelter-single-page/site/sitewide-content.md +6 -0
- package/examples/001-dog-shelter-single-page/site/theme.md +25 -0
- package/examples/002-dog-shelter-multi-page/README.md +9 -0
- package/examples/002-dog-shelter-multi-page/site/config.mjs +27 -0
- package/examples/002-dog-shelter-multi-page/site/content.md +12 -0
- package/examples/002-dog-shelter-multi-page/site/public/favicon.svg +10 -0
- package/examples/002-dog-shelter-multi-page/site/public/robots.txt +2 -0
- package/examples/002-dog-shelter-multi-page/site/routes/010-dogs/images/dogs/rex.svg +19 -0
- package/examples/002-dog-shelter-multi-page/site/routes/010-dogs/images/dogs/rover.svg +19 -0
- package/examples/002-dog-shelter-multi-page/site/routes/010-dogs/route-content.md +30 -0
- package/examples/002-dog-shelter-multi-page/site/routes/020-adopt/route-content.md +12 -0
- package/examples/002-dog-shelter-multi-page/site/sitewide-content.md +6 -0
- package/examples/002-dog-shelter-multi-page/site/theme.md +25 -0
- package/examples/dog-gallery/.astro/collections/site.schema.json +776 -0
- package/examples/dog-gallery/.astro/collections/theme.schema.json +672 -0
- package/examples/dog-gallery/.astro/content-assets.mjs +4 -0
- package/examples/dog-gallery/.astro/content-modules.mjs +1 -0
- package/examples/dog-gallery/.astro/content.d.ts +175 -0
- package/examples/dog-gallery/.astro/data-store.json +1 -0
- package/examples/dog-gallery/.astro/dev-local.json +8 -0
- package/examples/dog-gallery/.astro/dev.json +13 -0
- package/examples/dog-gallery/.astro/dev.log +95 -0
- package/examples/dog-gallery/.astro/settings.json +5 -0
- package/examples/dog-gallery/.astro/types.d.ts +2 -0
- package/examples/dog-gallery/dist/_astro/GalleryGrid.astro_astro_type_script_index_0_lang.B0kxDyGz.js +1 -0
- package/examples/dog-gallery/dist/_astro/SitePage.DicGh_5N.css +1 -0
- package/examples/dog-gallery/dist/dog-care/index.html +15 -0
- package/examples/dog-gallery/dist/dog-shelter-logo.svg +14 -0
- package/examples/dog-gallery/dist/favicon.svg +7 -0
- package/examples/dog-gallery/dist/images/generated/black-dogs/black-puppy-meadow-7255e3d9-1080.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/black-dogs/black-puppy-meadow-7255e3d9-1440.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/black-dogs/black-puppy-meadow-7255e3d9-1536.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/black-dogs/black-puppy-meadow-7255e3d9-480.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/black-dogs/black-puppy-meadow-7255e3d9-768.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/black-dogs/photo-of-a-black-dog-5cf614d2-480.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/black-dogs/photo-of-a-black-dog-5cf614d2-768.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/black-dogs/photo-of-a-black-dog-5cf614d2-960.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-1080.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-1440.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-1920.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-3939.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-480.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/brown-dog-50ef114e-768.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-1080.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-1440.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-1920.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-2400.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-480.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/brown-dogs/dog-accompanies-master-7ef804d5-768.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/golden-retriever-f797fd88-1080.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/golden-retriever-f797fd88-1440.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/golden-retriever-f797fd88-1600.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/golden-retriever-f797fd88-480.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/golden-retriever-f797fd88-768.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-1080.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-1440.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-1920.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-2576.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-480.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/golden-dogs/toller-puppy-a2a8fbc0-768.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-cute-dog-077a0689-1080.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-cute-dog-077a0689-1277.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-cute-dog-077a0689-480.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-cute-dog-077a0689-768.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-puppy-garden-d3ab2ca0-1080.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-puppy-garden-d3ab2ca0-1440.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-puppy-garden-d3ab2ca0-1536.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-puppy-garden-d3ab2ca0-480.webp +0 -0
- package/examples/dog-gallery/dist/images/generated/white-dogs/white-puppy-garden-d3ab2ca0-768.webp +0 -0
- package/examples/dog-gallery/dist/index.html +45 -0
- package/examples/dog-gallery/dist/robots.txt +2 -0
- package/examples/dog-gallery/node_modules/.vite/deps/_metadata.json +7 -7
- package/examples/dog-gallery/site/.norna/generated-images.json +8 -8
- package/examples/dog-gallery/site/config.mjs +0 -20
- package/examples/dog-gallery/site/content.md +4 -5
- package/examples/dog-gallery/site/public/logo.svg +14 -0
- package/examples/dog-gallery/site/sitewide-content.md +16 -0
- package/examples/dog-gallery/site/theme.md +13 -24
- package/examples/presentation/README.md +15 -0
- package/examples/presentation/site/.norna/generated-images.json +66 -0
- package/examples/presentation/site/config.mjs +29 -0
- package/examples/presentation/site/content.md +67 -0
- package/examples/presentation/site/public/robots.txt +2 -0
- package/examples/presentation/site/routes/010-presets/route-content.md +63 -0
- package/examples/presentation/site/routes/010-presets/theme.md +4 -0
- package/examples/presentation/site/routes/020-media/images/cards/card-carousel.svg +11 -0
- package/examples/presentation/site/routes/020-media/images/cards/card-stack.svg +9 -0
- package/examples/presentation/site/routes/020-media/images/cards/card-surfaces.svg +8 -0
- package/examples/presentation/site/routes/020-media/images/carousel/carousel-one.svg +8 -0
- package/examples/presentation/site/routes/020-media/images/carousel/carousel-three.svg +13 -0
- package/examples/presentation/site/routes/020-media/images/carousel/carousel-two.svg +8 -0
- package/examples/presentation/site/routes/020-media/images/stack/stack-one.svg +8 -0
- package/examples/presentation/site/routes/020-media/images/stack/stack-two.svg +9 -0
- package/examples/presentation/site/routes/020-media/route-content.md +77 -0
- package/examples/presentation/site/routes/020-media/theme.md +4 -0
- package/examples/presentation/site/routes/030-surfaces/route-content.md +44 -0
- package/examples/presentation/site/routes/030-surfaces/theme.md +7 -0
- package/examples/presentation/site/sitewide-content.md +6 -0
- package/examples/presentation/site/theme.md +43 -0
- package/examples/typography-presets/.astro/collections/routeTheme.schema.json +746 -0
- package/examples/typography-presets/.astro/collections/site.schema.json +59 -0
- package/examples/typography-presets/.astro/collections/sitewide.schema.json +114 -0
- package/examples/typography-presets/.astro/collections/theme.schema.json +770 -0
- package/examples/typography-presets/.astro/content-assets.mjs +4 -0
- package/examples/typography-presets/.astro/content-modules.mjs +1 -0
- package/examples/typography-presets/.astro/content.d.ts +183 -0
- package/examples/typography-presets/.astro/data-store.json +1 -0
- package/examples/typography-presets/.astro/dev-local.json +8 -0
- package/examples/typography-presets/.astro/dev.json +15 -0
- package/examples/typography-presets/.astro/dev.log +45 -0
- package/examples/typography-presets/.astro/settings.json +5 -0
- package/examples/typography-presets/.astro/types.d.ts +2 -0
- package/examples/typography-presets/node_modules/.vite/deps/_metadata.json +80 -0
- package/examples/typography-presets/node_modules/.vite/deps/astro-D_GIpJIE.js +434 -0
- package/examples/typography-presets/node_modules/.vite/deps/astro-D_GIpJIE.js.map +1 -0
- package/examples/typography-presets/node_modules/.vite/deps/astro_n_aria-query.js +6390 -0
- package/examples/typography-presets/node_modules/.vite/deps/astro_n_aria-query.js.map +1 -0
- package/examples/typography-presets/node_modules/.vite/deps/astro_n_axobject-query.js +2702 -0
- package/examples/typography-presets/node_modules/.vite/deps/astro_n_axobject-query.js.map +1 -0
- package/examples/typography-presets/node_modules/.vite/deps/astro_n_html-escaper.js +65 -0
- package/examples/typography-presets/node_modules/.vite/deps/astro_n_html-escaper.js.map +1 -0
- package/examples/typography-presets/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js +455 -0
- package/examples/typography-presets/node_modules/.vite/deps/astro_runtime_client_dev-toolbar_entrypoint__js.js.map +1 -0
- package/examples/typography-presets/node_modules/.vite/deps/audit-DM9Hkl5B.js +1534 -0
- package/examples/typography-presets/node_modules/.vite/deps/audit-DM9Hkl5B.js.map +1 -0
- package/examples/typography-presets/node_modules/.vite/deps/embla-carousel.js +1389 -0
- package/examples/typography-presets/node_modules/.vite/deps/embla-carousel.js.map +1 -0
- package/examples/typography-presets/node_modules/.vite/deps/highlight-DnZ1ULOL.js +48 -0
- package/examples/typography-presets/node_modules/.vite/deps/highlight-DnZ1ULOL.js.map +1 -0
- package/examples/typography-presets/node_modules/.vite/deps/icons-RyebKi45.js +42 -0
- package/examples/typography-presets/node_modules/.vite/deps/icons-RyebKi45.js.map +1 -0
- package/examples/typography-presets/node_modules/.vite/deps/package.json +3 -0
- package/examples/typography-presets/node_modules/.vite/deps/rolldown-runtime-BvCyGRYZ.js +4 -0
- package/examples/typography-presets/node_modules/.vite/deps/settings-DaU-gNnK.js +190 -0
- package/examples/typography-presets/node_modules/.vite/deps/settings-DaU-gNnK.js.map +1 -0
- package/examples/typography-presets/node_modules/.vite/deps/toolbar-63PA619H.js +458 -0
- package/examples/typography-presets/node_modules/.vite/deps/toolbar-63PA619H.js.map +1 -0
- package/examples/typography-presets/node_modules/.vite/deps/ui-library--bkcNSYz.js +1016 -0
- package/examples/typography-presets/node_modules/.vite/deps/ui-library--bkcNSYz.js.map +1 -0
- package/examples/typography-presets/node_modules/.vite/deps/window-jPkpKVcy.js +32 -0
- package/examples/typography-presets/node_modules/.vite/deps/window-jPkpKVcy.js.map +1 -0
- package/examples/typography-presets/node_modules/.vite/deps/xray-BXCHpEJP.js +111 -0
- package/examples/typography-presets/node_modules/.vite/deps/xray-BXCHpEJP.js.map +1 -0
- package/examples/typography-presets/site/.norna/generated-images.json +290 -0
- package/examples/typography-presets/site/config.mjs +29 -0
- package/examples/typography-presets/site/content.md +16 -0
- package/examples/typography-presets/site/public/robots.txt +2 -0
- package/examples/typography-presets/site/routes/010-quiet-gallery/images/quiet-gallery/puppy-portrait.jpg +0 -0
- package/examples/typography-presets/site/routes/010-quiet-gallery/images/quiet-gallery/shepherd-portrait.jpg +0 -0
- package/examples/typography-presets/site/routes/010-quiet-gallery/images/quiet-gallery/white-puppy.jpg +0 -0
- package/examples/typography-presets/site/routes/010-quiet-gallery/route-content.md +34 -0
- package/examples/typography-presets/site/routes/010-quiet-gallery/theme.md +4 -0
- package/examples/typography-presets/site/routes/020-compact-gallery/images/compact-gallery/black-schnauzer.jpg +0 -0
- package/examples/typography-presets/site/routes/020-compact-gallery/images/compact-gallery/retriever-portrait.jpg +0 -0
- package/examples/typography-presets/site/routes/020-compact-gallery/images/compact-gallery/schnauzer-portrait.jpg +0 -0
- package/examples/typography-presets/site/routes/020-compact-gallery/route-content.md +33 -0
- package/examples/typography-presets/site/routes/020-compact-gallery/theme.md +4 -0
- package/examples/typography-presets/site/routes/030-text-forward/images/text-forward/boxer-portrait.jpg +0 -0
- package/examples/typography-presets/site/routes/030-text-forward/images/text-forward/grass-puppy.jpg +0 -0
- package/examples/typography-presets/site/routes/030-text-forward/images/text-forward/grey-street-dog.jpg +0 -0
- package/examples/typography-presets/site/routes/030-text-forward/route-content.md +34 -0
- package/examples/typography-presets/site/routes/030-text-forward/theme.md +4 -0
- package/examples/typography-presets/site/routes/040-statement/images/statement/black-pedigree.jpg +0 -0
- package/examples/typography-presets/site/routes/040-statement/images/statement/sheepdog-grass.jpg +0 -0
- package/examples/typography-presets/site/routes/040-statement/images/statement/sheepdog-wide.jpg +0 -0
- package/examples/typography-presets/site/routes/040-statement/route-content.md +34 -0
- package/examples/typography-presets/site/routes/040-statement/theme.md +4 -0
- package/examples/typography-presets/site/sitewide-content.md +14 -0
- package/examples/typography-presets/site/theme.md +43 -0
- package/fixtures/basic/site/config.mjs +0 -13
- package/fixtures/basic/site/sitewide-content.md +12 -0
- package/fixtures/basic/site/theme.md +2 -2
- package/fixtures/content-model-v2/site/content.md +2 -5
- package/fixtures/content-model-v2/site/theme.md +1 -3
- package/package.json +3 -2
- package/scripts/check-config.mjs +22 -1
- package/scripts/lib/frontmatter-yaml.mjs +28 -0
- package/scripts/lib/logo-assets.mjs +35 -0
- package/scripts/lib/norna-markdown-blocks.mjs +166 -0
- package/scripts/lib/presentation.mjs +104 -46
- package/scripts/lib/project-config.mjs +67 -105
- package/scripts/lib/site-content.mjs +26 -42
- package/scripts/lib/site-paths.mjs +2 -0
- package/scripts/lib/sitewide-config.mjs +34 -0
- package/scripts/lib/theme-config.mjs +72 -6
- package/scripts/lib/typography.mjs +20 -26
- package/scripts/show-typography.mjs +40 -147
- package/scripts/sync-content-sections.mjs +19 -14
- package/scripts/test-content-check.mjs +76 -14
- package/scripts/test-content-model-v2.mjs +154 -0
- package/scripts/test-engine-commands.mjs +3 -1
- package/scripts/test-package-check.mjs +78 -19
- package/scripts/test-temporary-visibility.mjs +19 -2
- package/src/components/CardList.astro +5 -2
- package/src/components/GalleryGrid.astro +37 -16
- package/src/components/SiteBanners.astro +100 -0
- package/src/components/SiteNavigation.astro +48 -31
- package/src/components/SitePage.astro +55 -13
- package/src/components/SiteSection.astro +194 -36
- package/src/content.config.ts +78 -48
- package/src/layouts/BaseLayout.astro +64 -14
- package/src/lib/routeThemes.ts +61 -0
- package/src/lib/sectionContent.ts +236 -44
- package/src/lib/sitePublicAssets.ts +1 -0
- package/src/styles/global.css +282 -93
- package/starters/basic/.github/workflows/deploy.yml +1 -1
- package/starters/basic/README.md +7 -6
- package/starters/basic/site/config.mjs +0 -13
- package/starters/basic/site/content.md +1 -1
- package/starters/basic/site/sitewide-content.md +14 -0
- package/starters/basic/site/theme.md +13 -24
- package/starters/project/.github/workflows/deploy.yml +1 -1
- package/starters/project/README.md +10 -8
- package/starters/project/site/config.mjs +0 -13
- package/starters/project/site/sitewide-content.md +14 -0
- package/starters/project/site/theme.md +3 -11
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Presets
|
|
3
|
+
description: Compare Norna's built-in typography presets.
|
|
4
|
+
navigation:
|
|
5
|
+
label: Presets
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Quiet Gallery {#quiet-gallery}
|
|
9
|
+
|
|
10
|
+
This route uses the `quiet-gallery` preset. It keeps headings and body text
|
|
11
|
+
restrained so images or other visual material can carry more of the page.
|
|
12
|
+
|
|
13
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a
|
|
14
|
+
ante venenatis dapibus posuere velit aliquet. This is useful for portfolios,
|
|
15
|
+
image-led presentations and pages where captions matter more than long prose.
|
|
16
|
+
|
|
17
|
+
### Typical use
|
|
18
|
+
|
|
19
|
+
Choose this preset when the page should feel calm and the visual material should
|
|
20
|
+
remain the primary signal.
|
|
21
|
+
|
|
22
|
+
## Compact Gallery {#compact-gallery}
|
|
23
|
+
|
|
24
|
+
This section uses `compact-gallery`. It keeps the same broad model but fits more
|
|
25
|
+
short sections and image-led content into a smaller vertical rhythm.
|
|
26
|
+
|
|
27
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean lacinia bibendum
|
|
28
|
+
nulla sed consectetur. This is useful when visitors need to scan many compact
|
|
29
|
+
items without losing the overall structure of the page.
|
|
30
|
+
|
|
31
|
+
### Typical use
|
|
32
|
+
|
|
33
|
+
Choose this preset for a dense overview, catalogue or small collection of
|
|
34
|
+
related items.
|
|
35
|
+
|
|
36
|
+
## Text Forward {#text-forward}
|
|
37
|
+
|
|
38
|
+
This section uses `text-forward`. It gives explanatory writing more presence
|
|
39
|
+
while retaining the same Norna section structure.
|
|
40
|
+
|
|
41
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed posuere consectetur
|
|
42
|
+
est at lobortis. Cras mattis consectetur purus sit amet fermentum. This is
|
|
43
|
+
useful for guides, project explanations and documentation with only occasional
|
|
44
|
+
images.
|
|
45
|
+
|
|
46
|
+
### Typical use
|
|
47
|
+
|
|
48
|
+
Choose this preset when the reader should spend more time with the text than
|
|
49
|
+
with a gallery.
|
|
50
|
+
|
|
51
|
+
## Statement {#statement}
|
|
52
|
+
|
|
53
|
+
This section uses `statement`. It gives short, declarative content a stronger
|
|
54
|
+
visual voice.
|
|
55
|
+
|
|
56
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec id elit non mi
|
|
57
|
+
porta gravida at eget metus. Use it sparingly when a section needs emphasis,
|
|
58
|
+
contrast or a more direct editorial tone.
|
|
59
|
+
|
|
60
|
+
### Typical use
|
|
61
|
+
|
|
62
|
+
Choose this preset for an introduction, a short point of view or a deliberately
|
|
63
|
+
strong transition between quieter sections.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 700" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">Carousel card</title>
|
|
3
|
+
<desc id="desc">A framed panel with a central image and navigation marks.</desc>
|
|
4
|
+
<rect width="1200" height="700" fill="#d9dfda"/>
|
|
5
|
+
<rect x="210" y="130" width="780" height="440" rx="18" fill="#f7f8f7"/>
|
|
6
|
+
<circle cx="600" cy="320" r="135" fill="#38645a"/>
|
|
7
|
+
<path d="M300 570h600" stroke="#17201d" stroke-width="10" opacity=".35"/>
|
|
8
|
+
<circle cx="545" cy="570" r="10" fill="#17201d"/>
|
|
9
|
+
<circle cx="600" cy="570" r="10" fill="#17201d" opacity=".35"/>
|
|
10
|
+
<circle cx="655" cy="570" r="10" fill="#17201d" opacity=".35"/>
|
|
11
|
+
</svg>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 700" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">Image stack card</title>
|
|
3
|
+
<desc id="desc">Three offset paper rectangles represent an image stack.</desc>
|
|
4
|
+
<rect width="1200" height="700" fill="#f0ebe1"/>
|
|
5
|
+
<rect x="270" y="170" width="660" height="360" fill="#d8d0c4" transform="rotate(-7 600 350)"/>
|
|
6
|
+
<rect x="270" y="170" width="660" height="360" fill="#685a43" transform="rotate(6 600 350)"/>
|
|
7
|
+
<rect x="270" y="170" width="660" height="360" fill="#f8f5ee"/>
|
|
8
|
+
<circle cx="600" cy="350" r="92" fill="#685a43"/>
|
|
9
|
+
</svg>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 700" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">Section surfaces card</title>
|
|
3
|
+
<desc id="desc">Two horizontal surfaces show a restrained change of section background.</desc>
|
|
4
|
+
<rect width="1200" height="700" fill="#f8f5ee"/>
|
|
5
|
+
<rect x="170" y="145" width="860" height="170" fill="#f8f5ee" stroke="#272522" stroke-opacity=".25" stroke-width="5"/>
|
|
6
|
+
<rect x="170" y="385" width="860" height="170" fill="#ebe5d9"/>
|
|
7
|
+
<path d="M300 230h600M300 470h600" stroke="#685a43" stroke-width="18" opacity=".8"/>
|
|
8
|
+
</svg>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 700" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">Carousel frame one</title>
|
|
3
|
+
<desc id="desc">A green panel with a diagonal line.</desc>
|
|
4
|
+
<rect width="1200" height="700" fill="#d9dfda"/>
|
|
5
|
+
<path d="M120 560 1080 140" stroke="#38645a" stroke-width="46"/>
|
|
6
|
+
<circle cx="260" cy="190" r="70" fill="#17201d"/>
|
|
7
|
+
<circle cx="940" cy="510" r="70" fill="#f7f8f7"/>
|
|
8
|
+
</svg>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 700" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">Carousel frame three</title>
|
|
3
|
+
<desc id="desc">A red panel with a compact grid.</desc>
|
|
4
|
+
<rect width="1200" height="700" fill="#7d302b"/>
|
|
5
|
+
<g fill="#f8f5ee">
|
|
6
|
+
<rect x="270" y="170" width="180" height="150"/>
|
|
7
|
+
<rect x="510" y="170" width="180" height="150" opacity=".72"/>
|
|
8
|
+
<rect x="750" y="170" width="180" height="150" opacity=".48"/>
|
|
9
|
+
<rect x="270" y="380" width="180" height="150" opacity=".48"/>
|
|
10
|
+
<rect x="510" y="380" width="180" height="150" opacity=".72"/>
|
|
11
|
+
<rect x="750" y="380" width="180" height="150"/>
|
|
12
|
+
</g>
|
|
13
|
+
</svg>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 700" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">Carousel frame two</title>
|
|
3
|
+
<desc id="desc">A blue-green panel with two overlapping circles.</desc>
|
|
4
|
+
<rect width="1200" height="700" fill="#17201d"/>
|
|
5
|
+
<circle cx="485" cy="350" r="210" fill="#38645a"/>
|
|
6
|
+
<circle cx="715" cy="350" r="210" fill="#d9dfda" opacity=".88"/>
|
|
7
|
+
<path d="M370 350h460" stroke="#f7f8f7" stroke-width="12" opacity=".65"/>
|
|
8
|
+
</svg>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 700" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">Single visual idea</title>
|
|
3
|
+
<desc id="desc">A warm panel with a large circle and a small accent line.</desc>
|
|
4
|
+
<rect width="1200" height="700" fill="#f0ebe1"/>
|
|
5
|
+
<circle cx="600" cy="330" r="190" fill="#685a43"/>
|
|
6
|
+
<rect x="260" y="555" width="680" height="12" rx="6" fill="#272522" opacity=".55"/>
|
|
7
|
+
<rect x="420" y="590" width="360" height="8" rx="4" fill="#272522" opacity=".25"/>
|
|
8
|
+
</svg>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 700" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">Related visual detail</title>
|
|
3
|
+
<desc id="desc">A dark panel with three aligned cream blocks.</desc>
|
|
4
|
+
<rect width="1200" height="700" fill="#272522"/>
|
|
5
|
+
<rect x="170" y="170" width="250" height="360" fill="#f8f5ee"/>
|
|
6
|
+
<rect x="475" y="170" width="250" height="360" fill="#d8d0c4"/>
|
|
7
|
+
<rect x="780" y="170" width="250" height="360" fill="#685a43"/>
|
|
8
|
+
<rect x="170" y="570" width="860" height="10" fill="#f8f5ee" opacity=".55"/>
|
|
9
|
+
</svg>
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Media blocks
|
|
3
|
+
description: Compare Norna's managed image stacks, carousels and card lists.
|
|
4
|
+
navigation:
|
|
5
|
+
label: Media blocks
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Image stack {#stack}
|
|
9
|
+
|
|
10
|
+
An image stack places one or more managed images in the normal Markdown flow.
|
|
11
|
+
Each source file belongs in the section's image folder, and Norna creates the
|
|
12
|
+
responsive output used by the browser.
|
|
13
|
+
|
|
14
|
+
````
|
|
15
|
+
```norna-image-stack
|
|
16
|
+
- image: stack-one.svg
|
|
17
|
+
alt: A pale panel with a single large circle.
|
|
18
|
+
caption: One image can introduce a visual idea.
|
|
19
|
+
- image: stack-two.svg
|
|
20
|
+
alt: A dark panel with three aligned blocks.
|
|
21
|
+
caption: A stack can contain several related images.
|
|
22
|
+
```
|
|
23
|
+
````
|
|
24
|
+
|
|
25
|
+
```norna-image-stack
|
|
26
|
+
- image: stack-one.svg
|
|
27
|
+
alt: A pale panel with a single large circle.
|
|
28
|
+
caption: One image can introduce a visual idea.
|
|
29
|
+
- image: stack-two.svg
|
|
30
|
+
alt: A dark panel with three aligned blocks.
|
|
31
|
+
caption: A stack can contain several related images.
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Image carousel {#carousel}
|
|
35
|
+
|
|
36
|
+
A carousel keeps a related group together while showing one image at a time.
|
|
37
|
+
The controls, keyboard interaction and current position are provided by Norna.
|
|
38
|
+
|
|
39
|
+
```norna-image-carousel
|
|
40
|
+
- image: carousel-one.svg
|
|
41
|
+
alt: A green panel with a diagonal line.
|
|
42
|
+
caption: First frame: a broad direction.
|
|
43
|
+
- image: carousel-two.svg
|
|
44
|
+
alt: A blue panel with two overlapping circles.
|
|
45
|
+
caption: Second frame: a closer relationship.
|
|
46
|
+
- image: carousel-three.svg
|
|
47
|
+
alt: A red panel with a compact grid.
|
|
48
|
+
caption: Third frame: a denser detail.
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Card list {#cards}
|
|
52
|
+
|
|
53
|
+
Cards are useful when several short items need the same visual treatment. The
|
|
54
|
+
block controls the layout and size without requiring a component for each card.
|
|
55
|
+
|
|
56
|
+
```norna-card-list
|
|
57
|
+
layout: image-top
|
|
58
|
+
flow: grid
|
|
59
|
+
size: m
|
|
60
|
+
width: normal
|
|
61
|
+
|
|
62
|
+
- title: Image stack
|
|
63
|
+
text: A simple vertical sequence of managed images.
|
|
64
|
+
image: card-stack.svg
|
|
65
|
+
badge-text: Established
|
|
66
|
+
- title: Carousel
|
|
67
|
+
text: A focused sequence with controls and captions.
|
|
68
|
+
image: card-carousel.svg
|
|
69
|
+
badge-text: Established
|
|
70
|
+
- title: Section surfaces
|
|
71
|
+
text: A bounded way to create rhythm between sections.
|
|
72
|
+
image: card-surfaces.svg
|
|
73
|
+
badge-text: New
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
The examples above are still ordinary Markdown blocks. Their presentation is
|
|
77
|
+
opinionated, so the same source remains predictable on smaller screens.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Surfaces
|
|
3
|
+
description: See how palette defaults and section surfaces work together.
|
|
4
|
+
navigation:
|
|
5
|
+
label: Surfaces
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Palette options {#palette-options}
|
|
9
|
+
|
|
10
|
+
Norna currently provides a small set of named palettes. The theme chooses one
|
|
11
|
+
for the whole site:
|
|
12
|
+
|
|
13
|
+
```yaml
|
|
14
|
+
presentation:
|
|
15
|
+
palette: dark
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
The available choices are `dark`, `light` and `paper`. A palette defines the
|
|
19
|
+
page, navigation, frame and section colours together, so these parts stay in
|
|
20
|
+
balance.
|
|
21
|
+
|
|
22
|
+
## Emphasis surface {#emphasis-surface}
|
|
23
|
+
|
|
24
|
+
The route theme uses a palette and a surface sequence when a visual pause or
|
|
25
|
+
change of rhythm helps the reader. This is not a free-form colour override:
|
|
26
|
+
|
|
27
|
+
```yaml
|
|
28
|
+
presentation:
|
|
29
|
+
sectionSurfaces:
|
|
30
|
+
mode: cycle
|
|
31
|
+
sequence: [base, soft, emphasis]
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
The theme can cycle through the selected surfaces automatically. Individual
|
|
35
|
+
sections do not select their own colours.
|
|
36
|
+
|
|
37
|
+
## A practical rule {#practical-rule}
|
|
38
|
+
|
|
39
|
+
Use the site palette for the overall tone. Use soft and emphasis surfaces for a
|
|
40
|
+
small number of meaningful transitions, not to make every section look
|
|
41
|
+
unrelated.
|
|
42
|
+
|
|
43
|
+
Typography presets and media blocks can vary the content inside that system;
|
|
44
|
+
surfaces provide the route-level rhythm around it.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout:
|
|
3
|
+
density: normal
|
|
4
|
+
pageWidth: 1240px
|
|
5
|
+
gutter:
|
|
6
|
+
desktop: clamp(1.25rem, 4vw, 3rem)
|
|
7
|
+
mobile: 1rem
|
|
8
|
+
spacing:
|
|
9
|
+
firstSectionTop:
|
|
10
|
+
desktop: clamp(1.5rem, 3vw, 2.5rem)
|
|
11
|
+
mobile: 1rem
|
|
12
|
+
sectionGap:
|
|
13
|
+
desktop: clamp(2rem, 4vw, 3.5rem)
|
|
14
|
+
mobile: 2rem
|
|
15
|
+
finalSectionBottom:
|
|
16
|
+
desktop: clamp(2rem, 4vw, 3.5rem)
|
|
17
|
+
mobile: 2rem
|
|
18
|
+
headingToBlock:
|
|
19
|
+
desktop: 0.75em
|
|
20
|
+
mobile: 0.7em
|
|
21
|
+
blockGap:
|
|
22
|
+
desktop: 1.5em
|
|
23
|
+
mobile: 1.25em
|
|
24
|
+
imageGap:
|
|
25
|
+
desktop: clamp(1.25rem, 3vw, 2.25rem)
|
|
26
|
+
mobile: 1.5rem
|
|
27
|
+
gallery:
|
|
28
|
+
width: 960px
|
|
29
|
+
maxAvailableWidthPercent:
|
|
30
|
+
desktop: 100
|
|
31
|
+
mobile: 100
|
|
32
|
+
maxAvailableHeightPercent:
|
|
33
|
+
desktop: 72
|
|
34
|
+
mobile: 68
|
|
35
|
+
typography:
|
|
36
|
+
fontFamily: "Arial, 'Helvetica Neue', Helvetica, sans-serif"
|
|
37
|
+
preset: text-forward
|
|
38
|
+
rhythm: normal
|
|
39
|
+
presentation:
|
|
40
|
+
palette: paper # Alternatives: dark, light
|
|
41
|
+
sectionSurfaces:
|
|
42
|
+
mode: cycle
|
|
43
|
+
---
|