@takazudo/zudo-doc 4.2.1 → 4.4.0
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/CHANGELOG.md +43 -0
- package/README.md +3 -3
- package/bin/zudo-doc.mjs +54 -13
- package/dist/auto-logo/index.d.ts +18 -0
- package/dist/auto-logo/index.js +33 -0
- package/dist/auto-logo/shapes.d.ts +32 -0
- package/dist/auto-logo/shapes.js +183 -0
- package/dist/auto-logo/standalone.d.ts +7 -0
- package/dist/auto-logo/standalone.js +35 -0
- package/dist/color-scheme-utils.d.ts +4 -3
- package/dist/color-scheme-utils.js +1 -1
- package/dist/config/component-tokens.js +2 -2
- package/dist/config.d.ts +23 -1
- package/dist/config.js +3 -0
- package/dist/content.css +4 -3
- package/dist/doc-content-header/index.js +1 -1
- package/dist/doc-history/index.js +1 -1
- package/dist/doc-history-area/index.d.ts +1 -0
- package/dist/doc-history-area/index.js +3 -0
- package/dist/doc-page-shell/index.js +1 -1
- package/dist/doc-pager/index.js +2 -2
- package/dist/eject-logo/config-parse.d.ts +25 -0
- package/dist/eject-logo/config-parse.js +68 -0
- package/dist/eject-logo/config-rewriter.d.ts +22 -0
- package/dist/eject-logo/config-rewriter.js +68 -0
- package/dist/eject-logo/eject.d.ts +18 -0
- package/dist/eject-logo/eject.js +66 -0
- package/dist/eject-logo/index.d.ts +4 -0
- package/dist/eject-logo/index.js +16 -0
- package/dist/eject-logo/site-name.d.ts +21 -0
- package/dist/eject-logo/site-name.js +31 -0
- package/dist/features.css +8 -29
- package/dist/header/header.js +14 -6
- package/dist/header/nav-class-tokens.d.ts +12 -0
- package/dist/header/nav-class-tokens.js +80 -0
- package/dist/header/nav-overflow-script.js +33 -16
- package/dist/home-page/index.d.ts +34 -5
- package/dist/home-page/index.js +95 -38
- package/dist/home-page/prepare-home-data.d.ts +9 -0
- package/dist/home-page/prepare-home-data.js +10 -3
- package/dist/html-preview-wrapper/highlight-runtime.d.ts +40 -0
- package/dist/html-preview-wrapper/highlight-runtime.js +58 -0
- package/dist/html-preview-wrapper/highlighted-code.d.ts +3 -2
- package/dist/html-preview-wrapper/highlighted-code.js +11 -30
- package/dist/i18n-defaults/index.js +3 -0
- package/dist/metainfo/doc-metainfo.js +35 -22
- package/dist/plugins/doc-history.js +6 -2
- package/dist/plugins/internal/doc-history/index.d.ts +2 -0
- package/dist/plugins/internal/doc-history/index.js +5 -0
- package/dist/plugins/internal/doc-history/pre-build.d.ts +2 -0
- package/dist/plugins/internal/doc-history/pre-build.js +3 -0
- package/dist/preset.d.ts +1 -0
- package/dist/preset.js +2 -1
- package/dist/routes/index.js +13 -3
- package/dist/routes/locale-index.js +12 -2
- package/dist/safelist.css +1 -1
- package/dist/settings.d.ts +15 -0
- package/dist/sidebar-tree-island/index.js +3 -3
- package/dist/theme-cli/config-scanner.js +47 -0
- package/dist/theme-packs/academia/fonts/CourierPrime-400-latin.woff2 +0 -0
- package/dist/theme-packs/academia/fonts/CourierPrime-700-latin.woff2 +0 -0
- package/dist/theme-packs/academia/fonts/OFL.txt +94 -0
- package/dist/theme-packs/academia/fonts/SourceSerif4-italic-latin.woff2 +0 -0
- package/dist/theme-packs/academia/fonts/SourceSerif4-latin.woff2 +0 -0
- package/dist/theme-packs/academia/meta.json +37 -0
- package/dist/theme-packs/academia/pack.css +505 -0
- package/dist/theme-packs/bauhaus/fonts/ArchivoBlack-latin.woff2 +0 -0
- package/dist/theme-packs/bauhaus/fonts/Jost-latin.woff2 +0 -0
- package/dist/theme-packs/bauhaus/fonts/OFL.txt +95 -0
- package/dist/theme-packs/bauhaus/fonts/SpaceMono-400-latin.woff2 +0 -0
- package/dist/theme-packs/bauhaus/fonts/SpaceMono-700-latin.woff2 +0 -0
- package/dist/theme-packs/bauhaus/meta.json +38 -0
- package/dist/theme-packs/bauhaus/pack.css +614 -0
- package/dist/theme-packs/blueprint/fonts/IBMPlexMono-400-latin-ext.woff2 +0 -0
- package/dist/theme-packs/blueprint/fonts/IBMPlexMono-400-latin.woff2 +0 -0
- package/dist/theme-packs/blueprint/fonts/IBMPlexMono-500-latin-ext.woff2 +0 -0
- package/dist/theme-packs/blueprint/fonts/IBMPlexMono-500-latin.woff2 +0 -0
- package/dist/theme-packs/blueprint/fonts/Inter-latin-ext.woff2 +0 -0
- package/dist/theme-packs/blueprint/fonts/Inter-latin.woff2 +0 -0
- package/dist/theme-packs/blueprint/fonts/JosefinSans-latin.woff2 +0 -0
- package/dist/theme-packs/blueprint/fonts/OFL.txt +95 -0
- package/dist/theme-packs/blueprint/meta.json +38 -0
- package/dist/theme-packs/blueprint/pack.css +577 -0
- package/dist/theme-packs/botanica/fonts/CormorantGaramond-latin.woff2 +0 -0
- package/dist/theme-packs/botanica/fonts/CourierPrime-400-latin-ext.woff2 +0 -0
- package/dist/theme-packs/botanica/fonts/CourierPrime-400-latin.woff2 +0 -0
- package/dist/theme-packs/botanica/fonts/CourierPrime-700-latin-ext.woff2 +0 -0
- package/dist/theme-packs/botanica/fonts/CourierPrime-700-latin.woff2 +0 -0
- package/dist/theme-packs/botanica/fonts/CrimsonPro-latin-italic.woff2 +0 -0
- package/dist/theme-packs/botanica/fonts/CrimsonPro-latin.woff2 +0 -0
- package/dist/theme-packs/botanica/fonts/OFL.txt +95 -0
- package/dist/theme-packs/botanica/meta.json +38 -0
- package/dist/theme-packs/botanica/pack.css +546 -0
- package/dist/theme-packs/brutalist/meta.json +1 -1
- package/dist/theme-packs/brutalist/pack.css +10 -9
- package/dist/theme-packs/eink/fonts/CourierPrime-400-latin-ext.woff2 +0 -0
- package/dist/theme-packs/eink/fonts/CourierPrime-400-latin.woff2 +0 -0
- package/dist/theme-packs/eink/fonts/CourierPrime-700-latin-ext.woff2 +0 -0
- package/dist/theme-packs/eink/fonts/CourierPrime-700-latin.woff2 +0 -0
- package/dist/theme-packs/eink/fonts/EBGaramond-latin-italic.woff2 +0 -0
- package/dist/theme-packs/eink/fonts/EBGaramond-latin.woff2 +0 -0
- package/dist/theme-packs/eink/fonts/OFL.txt +94 -0
- package/dist/theme-packs/eink/meta.json +37 -0
- package/dist/theme-packs/eink/pack.css +490 -0
- package/dist/theme-packs/foundry/meta.json +1 -1
- package/dist/theme-packs/foundry/pack.css +2 -2
- package/dist/theme-packs/hearth/meta.json +1 -1
- package/dist/theme-packs/hearth/pack.css +15 -4
- package/dist/theme-packs/nocturne/pack.css +4 -0
- package/dist/theme-packs/observatory/meta.json +1 -1
- package/dist/theme-packs/observatory/pack.css +4 -1
- package/dist/theme-packs/onyx/pack.css +6 -0
- package/dist/theme-packs/phosphor/pack.css +4 -0
- package/dist/theme-packs/riso/fonts/ArchivoBlack-latin.woff2 +0 -0
- package/dist/theme-packs/riso/fonts/OFL.txt +95 -0
- package/dist/theme-packs/riso/fonts/SpaceGrotesk-latin.woff2 +0 -0
- package/dist/theme-packs/riso/fonts/SpaceMono-400-italic-latin.woff2 +0 -0
- package/dist/theme-packs/riso/fonts/SpaceMono-400-latin.woff2 +0 -0
- package/dist/theme-packs/riso/fonts/SpaceMono-700-latin.woff2 +0 -0
- package/dist/theme-packs/riso/meta.json +38 -0
- package/dist/theme-packs/riso/pack.css +602 -0
- package/dist/theme-packs/sakura/fonts/MPlus1Code-400-latin.woff2 +0 -0
- package/dist/theme-packs/sakura/fonts/MPlus1Code-500-latin.woff2 +0 -0
- package/dist/theme-packs/sakura/fonts/Nunito-latin.woff2 +0 -0
- package/dist/theme-packs/sakura/fonts/OFL.txt +95 -0
- package/dist/theme-packs/sakura/fonts/ShipporiMincho-600-latin.woff2 +0 -0
- package/dist/theme-packs/sakura/fonts/ShipporiMincho-700-latin.woff2 +0 -0
- package/dist/theme-packs/sakura/meta.json +38 -0
- package/dist/theme-packs/sakura/pack.css +473 -0
- package/dist/theme-packs/scandi/fonts/Manrope-latin.woff2 +0 -0
- package/dist/theme-packs/scandi/fonts/OFL.txt +94 -0
- package/dist/theme-packs/scandi/fonts/SplineSansMono-latin.woff2 +0 -0
- package/dist/theme-packs/scandi/meta.json +37 -0
- package/dist/theme-packs/scandi/pack.css +370 -0
- package/dist/theme-packs/sumi/meta.json +1 -1
- package/dist/theme-packs/sumi/pack.css +4 -1
- package/dist/theme-packs/swissgrid/pack.css +4 -0
- package/dist/theme-packs/tidepool/fonts/JetBrainsMono-latin-ext.woff2 +0 -0
- package/dist/theme-packs/tidepool/fonts/JetBrainsMono-latin.woff2 +0 -0
- package/dist/theme-packs/tidepool/fonts/OFL.txt +94 -0
- package/dist/theme-packs/tidepool/fonts/SpaceGrotesk-latin.woff2 +0 -0
- package/dist/theme-packs/tidepool/meta.json +37 -0
- package/dist/theme-packs/tidepool/pack.css +425 -0
- package/dist/theme-packs/timberline/fonts/Fraunces-italic-latin.woff2 +0 -0
- package/dist/theme-packs/timberline/fonts/Fraunces-latin.woff2 +0 -0
- package/dist/theme-packs/timberline/fonts/JetBrainsMono-latin.woff2 +0 -0
- package/dist/theme-packs/timberline/fonts/OFL.txt +95 -0
- package/dist/theme-packs/timberline/fonts/SourceSans3-italic-latin.woff2 +0 -0
- package/dist/theme-packs/timberline/fonts/SourceSans3-latin.woff2 +0 -0
- package/dist/theme-packs/timberline/meta.json +38 -0
- package/dist/theme-packs/timberline/pack.css +509 -0
- package/dist/theme-packs/washi/meta.json +1 -1
- package/dist/theme-packs/washi/pack.css +6 -26
- package/dist/theme-packs-registry/validator.js +24 -1
- package/dist/theme.css +1 -1
- package/eject/doc-history/index.tsx +1 -1
- package/eject/doc-pager/index.tsx +2 -2
- package/eject/header/header.tsx +16 -8
- package/eject/header/nav-class-tokens.ts +115 -0
- package/eject/header/nav-overflow-script.ts +49 -16
- package/eject/sidebar-tree-island/index.tsx +4 -4
- package/package.json +16 -13
- package/routes-src/index.tsx +10 -3
- package/routes-src/locale-index.tsx +9 -2
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"slug": "botanica",
|
|
4
|
+
"name": "Botanica",
|
|
5
|
+
"description": "A vintage botanical plate — herbarium cream, deep green ink, engraved double rules, Latin small-caps plate labels.",
|
|
6
|
+
"mode": "light",
|
|
7
|
+
"version": "1.0.0",
|
|
8
|
+
"fonts": {
|
|
9
|
+
"sans": "Crimson Pro",
|
|
10
|
+
"mono": "Courier Prime",
|
|
11
|
+
"display": "Cormorant Garamond",
|
|
12
|
+
"loaded": ["Cormorant Garamond", "Crimson Pro", "Courier Prime"]
|
|
13
|
+
},
|
|
14
|
+
"preview": {
|
|
15
|
+
"light": {
|
|
16
|
+
"bg": "oklch(0.956 0.02 92)",
|
|
17
|
+
"fg": "oklch(0.29 0.03 95)",
|
|
18
|
+
"accent": "oklch(0.42 0.09 152)",
|
|
19
|
+
"syntax": {
|
|
20
|
+
"keyword": "oklch(0.4 0.075 60)",
|
|
21
|
+
"string": "oklch(0.43 0.095 150)",
|
|
22
|
+
"comment": "oklch(0.48 0.04 95)",
|
|
23
|
+
"callable": "oklch(0.43 0.075 205)"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"dark": {
|
|
27
|
+
"bg": "oklch(0.215 0.022 160)",
|
|
28
|
+
"fg": "oklch(0.92 0.02 95)",
|
|
29
|
+
"accent": "oklch(0.78 0.09 148)",
|
|
30
|
+
"syntax": {
|
|
31
|
+
"keyword": "oklch(0.82 0.085 80)",
|
|
32
|
+
"string": "oklch(0.8 0.095 145)",
|
|
33
|
+
"comment": "oklch(0.7 0.03 110)",
|
|
34
|
+
"callable": "oklch(0.78 0.075 200)"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,546 @@
|
|
|
1
|
+
/* ============================================================
|
|
2
|
+
Botanica — zudo-doc theme pack (ADR docs/adr/theme-packs.md)
|
|
3
|
+
|
|
4
|
+
A vintage botanical plate: herbarium cream stock, deep
|
|
5
|
+
botanical-green ink, engraved double rules (thick over thin),
|
|
6
|
+
Latin small-caps plate labels ("Tab. II" on sections, "nota
|
|
7
|
+
bene" glosses on admonitions), and pressed-leaf tints on the
|
|
8
|
+
chrome surfaces. The pressed-flower rose appears only as the
|
|
9
|
+
bloom: link hover, numbers, danger. Dark mode is the
|
|
10
|
+
conservatory at night — green-charcoal glass, fern ink, the
|
|
11
|
+
same engraved rules by moonlight.
|
|
12
|
+
|
|
13
|
+
Not manuscript (rubrication sepia, medieval book), not matcha
|
|
14
|
+
(JP yellow-green paper), not ledger (Tufte academic): botanica
|
|
15
|
+
is the Western engraved-plate green — cooler cream, inkier
|
|
16
|
+
green, plate-caption typography.
|
|
17
|
+
|
|
18
|
+
Faces: Cormorant Garamond (display — plate captions, headings),
|
|
19
|
+
Crimson Pro (body, roman + italic), Courier Prime (specimen-
|
|
20
|
+
label mono, latin + latin-ext for Latin diacritics).
|
|
21
|
+
|
|
22
|
+
Every rule below is scoped under html[data-theme-pack="botanica"]
|
|
23
|
+
— this is what makes the runtime pack swap atomic (Decision 3)
|
|
24
|
+
and lets the validator prove a pack can never leak styles while
|
|
25
|
+
inactive (Decision 6.7). The @font-face blocks are the sole
|
|
26
|
+
exception (at-rules can't be selector-scoped).
|
|
27
|
+
============================================================ */
|
|
28
|
+
|
|
29
|
+
/* Cormorant Garamond — variable 300-700, roman. The engraver's
|
|
30
|
+
display face: title, section headings, plate labels, masthead.
|
|
31
|
+
Latin subset only (no italic file ships — the pack never sets
|
|
32
|
+
italic on the display face, so nothing synthesizes). */
|
|
33
|
+
@font-face {
|
|
34
|
+
font-family: "Cormorant Garamond";
|
|
35
|
+
font-style: normal;
|
|
36
|
+
font-weight: 300 700;
|
|
37
|
+
font-display: swap;
|
|
38
|
+
src: url("./fonts/CormorantGaramond-latin.woff2") format("woff2");
|
|
39
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
|
|
40
|
+
U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
|
|
41
|
+
U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* Crimson Pro — variable 300-700, roman. The reading face. */
|
|
45
|
+
@font-face {
|
|
46
|
+
font-family: "Crimson Pro";
|
|
47
|
+
font-style: normal;
|
|
48
|
+
font-weight: 300 700;
|
|
49
|
+
font-display: swap;
|
|
50
|
+
src: url("./fonts/CrimsonPro-latin.woff2") format("woff2");
|
|
51
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
|
|
52
|
+
U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
|
|
53
|
+
U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* Crimson Pro — italic. Specimen descriptions, blockquotes,
|
|
57
|
+
admonition glosses, emphasis. */
|
|
58
|
+
@font-face {
|
|
59
|
+
font-family: "Crimson Pro";
|
|
60
|
+
font-style: italic;
|
|
61
|
+
font-weight: 300 700;
|
|
62
|
+
font-display: swap;
|
|
63
|
+
src: url("./fonts/CrimsonPro-latin-italic.woff2") format("woff2");
|
|
64
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
|
|
65
|
+
U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
|
|
66
|
+
U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* Courier Prime — the typed specimen label. Latin + latin-ext
|
|
70
|
+
(the ext subset carries the diacritics Latin binomials use). */
|
|
71
|
+
@font-face {
|
|
72
|
+
font-family: "Courier Prime";
|
|
73
|
+
font-style: normal;
|
|
74
|
+
font-weight: 400;
|
|
75
|
+
font-display: swap;
|
|
76
|
+
src: url("./fonts/CourierPrime-400-latin.woff2") format("woff2");
|
|
77
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
|
|
78
|
+
U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
|
|
79
|
+
U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
@font-face {
|
|
83
|
+
font-family: "Courier Prime";
|
|
84
|
+
font-style: normal;
|
|
85
|
+
font-weight: 400;
|
|
86
|
+
font-display: swap;
|
|
87
|
+
src: url("./fonts/CourierPrime-400-latin-ext.woff2") format("woff2");
|
|
88
|
+
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
|
|
89
|
+
U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,
|
|
90
|
+
U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F,
|
|
91
|
+
U+A720-A7FF;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
@font-face {
|
|
95
|
+
font-family: "Courier Prime";
|
|
96
|
+
font-style: normal;
|
|
97
|
+
font-weight: 700;
|
|
98
|
+
font-display: swap;
|
|
99
|
+
src: url("./fonts/CourierPrime-700-latin.woff2") format("woff2");
|
|
100
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
|
|
101
|
+
U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
|
|
102
|
+
U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
@font-face {
|
|
106
|
+
font-family: "Courier Prime";
|
|
107
|
+
font-style: normal;
|
|
108
|
+
font-weight: 700;
|
|
109
|
+
font-display: swap;
|
|
110
|
+
src: url("./fonts/CourierPrime-700-latin-ext.woff2") format("woff2");
|
|
111
|
+
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
|
|
112
|
+
U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,
|
|
113
|
+
U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F,
|
|
114
|
+
U+A720-A7FF;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
html[data-theme-pack="botanica"] {
|
|
118
|
+
/* Tier-2 semantic roles — herbarium cream + green-sepia ink (light
|
|
119
|
+
hero); dark is the conservatory at night. Both modes always via
|
|
120
|
+
light-dark(). Green-on-cream is a known AA squeeze: the accent
|
|
121
|
+
green sits at L 0.42 (7.1:1 on the cream) — do not lighten it. */
|
|
122
|
+
--zd-bg: light-dark(oklch(0.956 0.02 92), oklch(0.215 0.022 160));
|
|
123
|
+
--zd-fg: light-dark(oklch(0.29 0.03 95), oklch(0.92 0.02 95));
|
|
124
|
+
--zd-selection-bg: light-dark(oklch(0.87 0.06 130), oklch(0.42 0.06 150));
|
|
125
|
+
--zd-selection-fg: light-dark(oklch(0.25 0.03 120), oklch(0.95 0.02 95));
|
|
126
|
+
--zd-surface: light-dark(oklch(0.935 0.025 105), oklch(0.245 0.024 160));
|
|
127
|
+
--zd-muted: light-dark(oklch(0.44 0.045 110), oklch(0.72 0.03 130));
|
|
128
|
+
--zd-accent: light-dark(oklch(0.42 0.09 152), oklch(0.78 0.09 148));
|
|
129
|
+
--zd-accent-hover: light-dark(oklch(0.44 0.13 20), oklch(0.8 0.09 18));
|
|
130
|
+
--zd-code-bg: light-dark(oklch(0.925 0.022 98), oklch(0.25 0.026 160));
|
|
131
|
+
--zd-code-fg: light-dark(oklch(0.28 0.03 95), oklch(0.91 0.022 95));
|
|
132
|
+
--zd-success: light-dark(oklch(0.43 0.105 148), oklch(0.76 0.1 148));
|
|
133
|
+
--zd-danger: light-dark(oklch(0.45 0.13 25), oklch(0.77 0.1 20));
|
|
134
|
+
--zd-warning: light-dark(oklch(0.47 0.09 80), oklch(0.8 0.1 85));
|
|
135
|
+
--zd-info: light-dark(oklch(0.44 0.075 200), oklch(0.75 0.08 200));
|
|
136
|
+
|
|
137
|
+
/* syntax — all 9 roles restyled, both modes. Engraved-plate inks:
|
|
138
|
+
pencil-olive comments, bottle-green strings (the specimen),
|
|
139
|
+
madder-rose numbers (the bloom), umber keywords (the engraver's
|
|
140
|
+
hand), eucalyptus callables, moss-gold types; inserted/deleted
|
|
141
|
+
reuse the bottle-green / madder hues. */
|
|
142
|
+
--zd-syntax-comment: light-dark(oklch(0.48 0.04 95), oklch(0.7 0.03 110));
|
|
143
|
+
--zd-syntax-string: light-dark(oklch(0.43 0.095 150), oklch(0.8 0.095 145));
|
|
144
|
+
--zd-syntax-number: light-dark(oklch(0.46 0.12 25), oklch(0.79 0.095 20));
|
|
145
|
+
--zd-syntax-keyword: light-dark(oklch(0.4 0.075 60), oklch(0.82 0.085 80));
|
|
146
|
+
--zd-syntax-callable: light-dark(oklch(0.43 0.075 205), oklch(0.78 0.075 200));
|
|
147
|
+
--zd-syntax-type: light-dark(oklch(0.45 0.085 95), oklch(0.84 0.09 95));
|
|
148
|
+
--zd-syntax-name: light-dark(oklch(0.3 0.03 95), oklch(0.91 0.022 95));
|
|
149
|
+
--zd-syntax-inserted: light-dark(oklch(0.43 0.105 148), oklch(0.76 0.1 148));
|
|
150
|
+
--zd-syntax-deleted: light-dark(oklch(0.45 0.13 25), oklch(0.77 0.1 20));
|
|
151
|
+
|
|
152
|
+
/* fonts — Cormorant Garamond display over a Crimson Pro text page,
|
|
153
|
+
Courier Prime specimen labels for code. Generic tails keep CJK
|
|
154
|
+
on platform serifs. */
|
|
155
|
+
--font-display: "Cormorant Garamond", "Iowan Old Style", Georgia, serif;
|
|
156
|
+
--font-sans: "Crimson Pro", "Iowan Old Style", Georgia, serif;
|
|
157
|
+
--font-mono: "Courier Prime", "Courier New", Courier, monospace;
|
|
158
|
+
|
|
159
|
+
/* Tier-3 component seams — Cormorant headings at moderate weight
|
|
160
|
+
(its 700 fills in at text sizes); an engraved plate is square,
|
|
161
|
+
so every radius zeroes out. */
|
|
162
|
+
--zdc-doc-title-font: var(--font-display);
|
|
163
|
+
--zdc-doc-title-weight: 600;
|
|
164
|
+
--zdc-doc-title-tracking: 0.01em;
|
|
165
|
+
--zdc-doc-h2-font: var(--font-display);
|
|
166
|
+
--zdc-doc-h2-weight: 600;
|
|
167
|
+
--zdc-doc-h2-tracking: 0.015em;
|
|
168
|
+
--zdc-doc-h3-weight: 600;
|
|
169
|
+
--zdc-doc-h4-weight: 600;
|
|
170
|
+
--zdc-admonition-radius: 0;
|
|
171
|
+
--zdc-admonition-border-width: 3px;
|
|
172
|
+
--zdc-card-radius: 0;
|
|
173
|
+
--zdc-nav-active-indicator-color: light-dark(
|
|
174
|
+
oklch(0.42 0.09 152),
|
|
175
|
+
oklch(0.78 0.09 148)
|
|
176
|
+
);
|
|
177
|
+
--zdc-nav-active-weight: 600;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/* ---- Botanica extras ---- */
|
|
181
|
+
|
|
182
|
+
/* the plate stock: Crimson Pro reads small, so the page steps up a
|
|
183
|
+
size; the faintest laid-paper tooth rides the background. Crimson's
|
|
184
|
+
old-style figures suit specimen tables (explicit, so a fallback
|
|
185
|
+
face keeps the intent). */
|
|
186
|
+
html[data-theme-pack="botanica"] body {
|
|
187
|
+
font-size: 1.15rem;
|
|
188
|
+
line-height: 1.7;
|
|
189
|
+
font-variant-numeric: oldstyle-nums;
|
|
190
|
+
background-image: repeating-linear-gradient(
|
|
191
|
+
0deg,
|
|
192
|
+
transparent 0 3px,
|
|
193
|
+
color-mix(in oklch, var(--zd-fg) 1.5%, transparent) 3px 4px
|
|
194
|
+
);
|
|
195
|
+
}
|
|
196
|
+
/* content.css pins `.zd-content { font-size: var(--text-body) }`, so a
|
|
197
|
+
body-level size never reaches the prose — restate the plate measure
|
|
198
|
+
on the content root. The counter feeds the h2 "Tab. N" labels. */
|
|
199
|
+
html[data-theme-pack="botanica"] .zd-content {
|
|
200
|
+
font-size: 1.15rem;
|
|
201
|
+
line-height: 1.7;
|
|
202
|
+
counter-reset: botanica-tabula;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/* masthead: engraved double rule, Cormorant wordmark with a hedera,
|
|
206
|
+
small-caps plate-label nav. */
|
|
207
|
+
html[data-theme-pack="botanica"] header[data-header] {
|
|
208
|
+
border-bottom: 3px double color-mix(in oklch, var(--zd-fg) 50%, transparent);
|
|
209
|
+
}
|
|
210
|
+
html[data-theme-pack="botanica"] [data-header-logo] {
|
|
211
|
+
font-family: var(--font-display);
|
|
212
|
+
font-size: 1.45rem;
|
|
213
|
+
font-weight: 600;
|
|
214
|
+
letter-spacing: 0.02em;
|
|
215
|
+
}
|
|
216
|
+
html[data-theme-pack="botanica"] [data-header-logo]::before {
|
|
217
|
+
content: "❧ ";
|
|
218
|
+
color: var(--zd-accent);
|
|
219
|
+
font-size: 0.8em;
|
|
220
|
+
}
|
|
221
|
+
html[data-theme-pack="botanica"] [data-nav-item] {
|
|
222
|
+
font-variant-caps: small-caps;
|
|
223
|
+
letter-spacing: 0.06em;
|
|
224
|
+
font-weight: 500;
|
|
225
|
+
font-size: 1.05rem;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/* sidebar: the herbarium index — pressed-leaf tint, hairline spine.
|
|
229
|
+
The mobile drawer is a separate hook (#2887) and gets the same
|
|
230
|
+
pressing. Crimson runs small at the chrome's fixed text-small, so
|
|
231
|
+
links/buttons step up. */
|
|
232
|
+
html[data-theme-pack="botanica"] #desktop-sidebar,
|
|
233
|
+
html[data-theme-pack="botanica"] aside[data-zd-mobile-sidebar] {
|
|
234
|
+
background-color: color-mix(in srgb, var(--zd-accent) 5%, var(--zd-bg));
|
|
235
|
+
}
|
|
236
|
+
html[data-theme-pack="botanica"] #desktop-sidebar {
|
|
237
|
+
border-right: 1px solid color-mix(in oklch, var(--zd-fg) 25%, transparent);
|
|
238
|
+
}
|
|
239
|
+
html[data-theme-pack="botanica"] #desktop-sidebar a,
|
|
240
|
+
html[data-theme-pack="botanica"] #desktop-sidebar button,
|
|
241
|
+
html[data-theme-pack="botanica"] aside[data-zd-mobile-sidebar] a,
|
|
242
|
+
html[data-theme-pack="botanica"] aside[data-zd-mobile-sidebar] button {
|
|
243
|
+
font-size: 1rem;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
/* the title plate: thick-over-thin engraved rule under the h1, and an
|
|
247
|
+
italic specimen description beneath it. */
|
|
248
|
+
html[data-theme-pack="botanica"] .zd-content h1 {
|
|
249
|
+
position: relative;
|
|
250
|
+
padding-bottom: 0.45rem;
|
|
251
|
+
border-bottom: 2px solid color-mix(in oklch, var(--zd-fg) 70%, transparent);
|
|
252
|
+
}
|
|
253
|
+
html[data-theme-pack="botanica"] .zd-content h1::after {
|
|
254
|
+
content: "";
|
|
255
|
+
position: absolute;
|
|
256
|
+
left: 0;
|
|
257
|
+
right: 0;
|
|
258
|
+
bottom: -5px;
|
|
259
|
+
border-bottom: 1px solid color-mix(in oklch, var(--zd-fg) 30%, transparent);
|
|
260
|
+
}
|
|
261
|
+
html[data-theme-pack="botanica"] p[data-doc-description] {
|
|
262
|
+
font-style: italic;
|
|
263
|
+
font-size: 1.3rem;
|
|
264
|
+
line-height: 1.5;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/* the signature: each h2 is a numbered plate. Thick-over-thin double
|
|
268
|
+
rule (the SSR-inlined border-image gradient is replaced via the
|
|
269
|
+
Decision 6.6 border-image carve-out; the thin line is a ::before
|
|
270
|
+
hairline 3px below the 2px border), with a small-caps "Tab. N"
|
|
271
|
+
label seated on the rule, plate-caption style. Cormorant needs a
|
|
272
|
+
size step over the default text-title. */
|
|
273
|
+
html[data-theme-pack="botanica"] .zd-content h2 {
|
|
274
|
+
border-image: none !important;
|
|
275
|
+
border-top-width: 2px;
|
|
276
|
+
border-top-color: color-mix(in oklch, var(--zd-fg) 55%, transparent);
|
|
277
|
+
position: relative;
|
|
278
|
+
padding-top: 1.15rem;
|
|
279
|
+
font-size: 1.75rem;
|
|
280
|
+
counter-increment: botanica-tabula;
|
|
281
|
+
}
|
|
282
|
+
html[data-theme-pack="botanica"] .zd-content h2::before {
|
|
283
|
+
content: "";
|
|
284
|
+
position: absolute;
|
|
285
|
+
top: 3px;
|
|
286
|
+
left: 0;
|
|
287
|
+
right: 0;
|
|
288
|
+
border-top: 1px solid color-mix(in oklch, var(--zd-fg) 25%, transparent);
|
|
289
|
+
}
|
|
290
|
+
html[data-theme-pack="botanica"] .zd-content h2::after {
|
|
291
|
+
content: "Tab. " counter(botanica-tabula, upper-roman);
|
|
292
|
+
position: absolute;
|
|
293
|
+
top: -0.72em;
|
|
294
|
+
right: 0;
|
|
295
|
+
font-family: var(--font-display);
|
|
296
|
+
font-variant-caps: small-caps;
|
|
297
|
+
font-weight: 600;
|
|
298
|
+
font-size: 0.95rem;
|
|
299
|
+
letter-spacing: 0.14em;
|
|
300
|
+
line-height: 1.4;
|
|
301
|
+
color: var(--zd-muted);
|
|
302
|
+
background-color: var(--zd-bg);
|
|
303
|
+
padding: 0 0.5em;
|
|
304
|
+
}
|
|
305
|
+
/* h3 = the plate's small-caps sub-caption; zeroing the class-level
|
|
306
|
+
border-top-width leaves the inline border-image nothing to paint
|
|
307
|
+
on (no !important needed — the manuscript precedent). */
|
|
308
|
+
html[data-theme-pack="botanica"] .zd-content h3 {
|
|
309
|
+
border-top-width: 0;
|
|
310
|
+
font-family: var(--font-display);
|
|
311
|
+
font-variant-caps: small-caps;
|
|
312
|
+
letter-spacing: 0.05em;
|
|
313
|
+
font-size: 1.35rem;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
/* engraved literary details */
|
|
317
|
+
html[data-theme-pack="botanica"] .zd-content a {
|
|
318
|
+
text-underline-offset: 0.16em;
|
|
319
|
+
text-decoration-thickness: 1px;
|
|
320
|
+
text-decoration-color: color-mix(in oklch, var(--zd-accent) 55%, transparent);
|
|
321
|
+
}
|
|
322
|
+
html[data-theme-pack="botanica"] .zd-content a:hover {
|
|
323
|
+
text-decoration-color: currentColor;
|
|
324
|
+
}
|
|
325
|
+
/* hedera leaf markers on unordered lists; italic muted figure
|
|
326
|
+
numbering on ordered lists. (::marker content is a progressive
|
|
327
|
+
enhancement — engines without it keep a green default marker.
|
|
328
|
+
No list-style-type override on ol: the ContentOl component
|
|
329
|
+
SSR-inlines listStyleType, which beats any stylesheet rule, so a
|
|
330
|
+
pack-level list-style-type would be dead CSS.) */
|
|
331
|
+
html[data-theme-pack="botanica"] .zd-content ul > li::marker {
|
|
332
|
+
content: "❧ ";
|
|
333
|
+
color: var(--zd-accent);
|
|
334
|
+
}
|
|
335
|
+
html[data-theme-pack="botanica"] .zd-content ol > li::marker {
|
|
336
|
+
font-style: italic;
|
|
337
|
+
color: var(--zd-muted);
|
|
338
|
+
}
|
|
339
|
+
/* blockquote = the collector's field note, behind a double rule */
|
|
340
|
+
html[data-theme-pack="botanica"] .zd-content blockquote {
|
|
341
|
+
font-style: italic;
|
|
342
|
+
font-size: 1.05em;
|
|
343
|
+
border-left: 6px double color-mix(in oklch, var(--zd-accent) 65%, transparent);
|
|
344
|
+
}
|
|
345
|
+
/* hr = a bare engraved double rule */
|
|
346
|
+
html[data-theme-pack="botanica"] .zd-content hr {
|
|
347
|
+
border: none;
|
|
348
|
+
border-top: 4px double color-mix(in oklch, var(--zd-fg) 40%, transparent);
|
|
349
|
+
margin: 2.5rem 0;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
/* inline code: a tied-on specimen tag */
|
|
353
|
+
html[data-theme-pack="botanica"] .zd-content code:not(pre code) {
|
|
354
|
+
font-size: 0.92em;
|
|
355
|
+
border-radius: 0;
|
|
356
|
+
border: 1px solid color-mix(in oklch, var(--zd-fg) 22%, transparent);
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
/* code blocks: the framed plate — square, hairline-ruled, with a
|
|
360
|
+
second engraved ring floated off the frame. */
|
|
361
|
+
html[data-theme-pack="botanica"] pre.hi-root {
|
|
362
|
+
font-size: 0.95rem;
|
|
363
|
+
line-height: 1.65;
|
|
364
|
+
padding: 1.1rem 1.25rem;
|
|
365
|
+
border-radius: 0;
|
|
366
|
+
border: 1px solid color-mix(in oklch, var(--zd-fg) 40%, transparent);
|
|
367
|
+
box-shadow:
|
|
368
|
+
0 0 0 3px var(--zd-bg),
|
|
369
|
+
0 0 0 4px color-mix(in oklch, var(--zd-fg) 22%, transparent);
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
/* admonitions: labelled specimen boxes — small-caps Cormorant titles
|
|
373
|
+
with an italic Latin gloss, hairline frame closing the tinted box,
|
|
374
|
+
engraved marks instead of emoji across all 7 variants. */
|
|
375
|
+
html[data-theme-pack="botanica"] [data-admonition] {
|
|
376
|
+
border-top: 1px solid color-mix(in oklch, var(--zd-fg) 20%, transparent);
|
|
377
|
+
border-right: 1px solid color-mix(in oklch, var(--zd-fg) 20%, transparent);
|
|
378
|
+
border-bottom: 1px solid color-mix(in oklch, var(--zd-fg) 20%, transparent);
|
|
379
|
+
}
|
|
380
|
+
html[data-theme-pack="botanica"] [data-admonition] .admonition-title {
|
|
381
|
+
font-family: var(--font-display);
|
|
382
|
+
font-variant-caps: small-caps;
|
|
383
|
+
letter-spacing: 0.08em;
|
|
384
|
+
font-weight: 600;
|
|
385
|
+
font-size: 1.1em;
|
|
386
|
+
}
|
|
387
|
+
html[data-theme-pack="botanica"] [data-admonition] .admonition-title::after {
|
|
388
|
+
font-family: var(--font-sans);
|
|
389
|
+
font-variant-caps: normal;
|
|
390
|
+
font-style: italic;
|
|
391
|
+
font-weight: 500;
|
|
392
|
+
font-size: 0.85em;
|
|
393
|
+
letter-spacing: 0.02em;
|
|
394
|
+
color: var(--zd-muted);
|
|
395
|
+
}
|
|
396
|
+
html[data-theme-pack="botanica"]
|
|
397
|
+
[data-admonition="note"]
|
|
398
|
+
.admonition-title::before {
|
|
399
|
+
content: "❧ ";
|
|
400
|
+
}
|
|
401
|
+
html[data-theme-pack="botanica"]
|
|
402
|
+
[data-admonition="note"]
|
|
403
|
+
.admonition-title::after {
|
|
404
|
+
content: " · nota bene";
|
|
405
|
+
}
|
|
406
|
+
html[data-theme-pack="botanica"]
|
|
407
|
+
[data-admonition="tip"]
|
|
408
|
+
.admonition-title::before {
|
|
409
|
+
content: "✿ ";
|
|
410
|
+
}
|
|
411
|
+
html[data-theme-pack="botanica"]
|
|
412
|
+
[data-admonition="tip"]
|
|
413
|
+
.admonition-title::after {
|
|
414
|
+
content: " · observatio";
|
|
415
|
+
}
|
|
416
|
+
html[data-theme-pack="botanica"]
|
|
417
|
+
[data-admonition="info"]
|
|
418
|
+
.admonition-title::before {
|
|
419
|
+
content: "❃ ";
|
|
420
|
+
}
|
|
421
|
+
html[data-theme-pack="botanica"]
|
|
422
|
+
[data-admonition="info"]
|
|
423
|
+
.admonition-title::after {
|
|
424
|
+
content: " · indicium";
|
|
425
|
+
}
|
|
426
|
+
html[data-theme-pack="botanica"]
|
|
427
|
+
[data-admonition="important"]
|
|
428
|
+
.admonition-title::before {
|
|
429
|
+
content: "❊ ";
|
|
430
|
+
}
|
|
431
|
+
html[data-theme-pack="botanica"]
|
|
432
|
+
[data-admonition="important"]
|
|
433
|
+
.admonition-title::after {
|
|
434
|
+
content: " · momenti";
|
|
435
|
+
}
|
|
436
|
+
html[data-theme-pack="botanica"]
|
|
437
|
+
[data-admonition="warning"]
|
|
438
|
+
.admonition-title::before {
|
|
439
|
+
content: "† ";
|
|
440
|
+
}
|
|
441
|
+
html[data-theme-pack="botanica"]
|
|
442
|
+
[data-admonition="warning"]
|
|
443
|
+
.admonition-title::after {
|
|
444
|
+
content: " · cave";
|
|
445
|
+
}
|
|
446
|
+
html[data-theme-pack="botanica"]
|
|
447
|
+
[data-admonition="caution"]
|
|
448
|
+
.admonition-title::before {
|
|
449
|
+
content: "‡ ";
|
|
450
|
+
}
|
|
451
|
+
html[data-theme-pack="botanica"]
|
|
452
|
+
[data-admonition="caution"]
|
|
453
|
+
.admonition-title::after {
|
|
454
|
+
content: " · cautio";
|
|
455
|
+
}
|
|
456
|
+
html[data-theme-pack="botanica"]
|
|
457
|
+
[data-admonition="danger"]
|
|
458
|
+
.admonition-title::before {
|
|
459
|
+
content: "✠ ";
|
|
460
|
+
}
|
|
461
|
+
html[data-theme-pack="botanica"]
|
|
462
|
+
[data-admonition="danger"]
|
|
463
|
+
.admonition-title::after {
|
|
464
|
+
content: " · periculum";
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
/* tables: the engraved index — double rule under small-caps column
|
|
468
|
+
heads, pressed-leaf row hover. */
|
|
469
|
+
html[data-theme-pack="botanica"] .zd-content th {
|
|
470
|
+
font-family: var(--font-display);
|
|
471
|
+
font-variant-caps: small-caps;
|
|
472
|
+
letter-spacing: 0.06em;
|
|
473
|
+
font-weight: 600;
|
|
474
|
+
font-size: 1.05em;
|
|
475
|
+
border-bottom: 3px double color-mix(in oklch, var(--zd-fg) 50%, transparent);
|
|
476
|
+
}
|
|
477
|
+
html[data-theme-pack="botanica"] .zd-content td {
|
|
478
|
+
border-bottom-color: color-mix(in oklch, var(--zd-fg) 18%, transparent);
|
|
479
|
+
}
|
|
480
|
+
html[data-theme-pack="botanica"] .zd-content tbody tr:hover td {
|
|
481
|
+
background-color: color-mix(in srgb, var(--zd-accent) 6%, var(--zd-bg));
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
/* TOC: the plate legend — active heading pressed in botanical green
|
|
485
|
+
(mirroring the sidebar's active-indicator token). The mobile TOC
|
|
486
|
+
is its own emitter (#2887): tinted, hairline-framed. */
|
|
487
|
+
html[data-theme-pack="botanica"] nav[data-zd-toc] a {
|
|
488
|
+
font-size: 0.98rem;
|
|
489
|
+
}
|
|
490
|
+
html[data-theme-pack="botanica"] nav[data-zd-toc] a[aria-current="true"],
|
|
491
|
+
html[data-theme-pack="botanica"] div[data-zd-mobile-toc] a[aria-current="true"] {
|
|
492
|
+
background-color: var(--zd-accent);
|
|
493
|
+
color: var(--zd-bg);
|
|
494
|
+
}
|
|
495
|
+
html[data-theme-pack="botanica"] div[data-zd-mobile-toc] {
|
|
496
|
+
background-color: color-mix(in srgb, var(--zd-accent) 4%, var(--zd-bg));
|
|
497
|
+
border: 1px solid color-mix(in oklch, var(--zd-fg) 20%, transparent);
|
|
498
|
+
border-radius: 0;
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
/* pager: plate cross-references — square cards, small-caps labels,
|
|
502
|
+
the engraved ring appearing on hover. Scoped to the data-doc-pager
|
|
503
|
+
hook so NavCardGrid never inherits it. */
|
|
504
|
+
html[data-theme-pack="botanica"] .zd-content > nav[data-doc-pager] a {
|
|
505
|
+
border-radius: 0;
|
|
506
|
+
border-color: color-mix(in oklch, var(--zd-fg) 25%, transparent);
|
|
507
|
+
}
|
|
508
|
+
html[data-theme-pack="botanica"] .zd-content > nav[data-doc-pager] a:hover {
|
|
509
|
+
border-color: var(--zd-accent);
|
|
510
|
+
box-shadow:
|
|
511
|
+
0 0 0 3px var(--zd-bg),
|
|
512
|
+
0 0 0 4px color-mix(in oklch, var(--zd-accent) 45%, transparent);
|
|
513
|
+
}
|
|
514
|
+
html[data-theme-pack="botanica"] .zd-content > nav[data-doc-pager] a > div {
|
|
515
|
+
font-family: var(--font-display);
|
|
516
|
+
font-variant-caps: small-caps;
|
|
517
|
+
letter-spacing: 0.08em;
|
|
518
|
+
}
|
|
519
|
+
html[data-theme-pack="botanica"] .zd-content > nav[data-doc-pager] a > p {
|
|
520
|
+
font-style: italic;
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
/* footer: the colophon — closing engraved double rule over a
|
|
524
|
+
pressed-leaf band. */
|
|
525
|
+
html[data-theme-pack="botanica"] footer[data-footer] {
|
|
526
|
+
border-top: 3px double color-mix(in oklch, var(--zd-fg) 50%, transparent);
|
|
527
|
+
background-color: color-mix(in srgb, var(--zd-accent) 4%, var(--zd-bg));
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
/* theme-pack switcher: the plate's cartouche — square card with the
|
|
531
|
+
engraved double ring; the round launcher keeps its ring too. */
|
|
532
|
+
html[data-theme-pack="botanica"] [data-switcher-card] {
|
|
533
|
+
border-radius: 0;
|
|
534
|
+
border: 1px solid color-mix(in oklch, var(--zd-fg) 40%, transparent);
|
|
535
|
+
box-shadow:
|
|
536
|
+
0 0 0 3px var(--zd-surface),
|
|
537
|
+
0 0 0 4px color-mix(in oklch, var(--zd-fg) 22%, transparent),
|
|
538
|
+
0 10px 30px -6px light-dark(oklch(0.35 0.05 110 / 0.25), oklch(0 0 0 / 0.55));
|
|
539
|
+
}
|
|
540
|
+
html[data-theme-pack="botanica"] [data-switcher-launcher] {
|
|
541
|
+
border: 1px solid color-mix(in oklch, var(--zd-fg) 40%, transparent);
|
|
542
|
+
box-shadow:
|
|
543
|
+
0 0 0 2px var(--zd-bg),
|
|
544
|
+
0 0 0 3px color-mix(in oklch, var(--zd-fg) 22%, transparent),
|
|
545
|
+
0 4px 14px -4px light-dark(oklch(0.35 0.05 110 / 0.3), oklch(0 0 0 / 0.6));
|
|
546
|
+
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"name": "Brutalist",
|
|
5
5
|
"description": "Raw concrete web — stark black on white, 4px slab borders, zero radius, hazard-orange tape. Structure you can see.",
|
|
6
6
|
"mode": "light",
|
|
7
|
-
"version": "1.0.
|
|
7
|
+
"version": "1.0.3",
|
|
8
8
|
"fonts": {
|
|
9
9
|
"sans": "Space Grotesk",
|
|
10
10
|
"mono": "IBM Plex Mono",
|
|
@@ -230,17 +230,18 @@ html[data-theme-pack="brutalist"] header[data-header]::after {
|
|
|
230
230
|
ink. The :not() exclusion skips the popover surfaces nested
|
|
231
231
|
inside the header (nav-more menu, nav dropdown panels, the
|
|
232
232
|
version-switcher menu, the search <dialog>) — those keep their
|
|
233
|
-
default ink-on-surface colors
|
|
234
|
-
|
|
235
|
-
html[data-theme-pack="brutalist"] header[data-header]
|
|
236
|
-
html[data-theme-pack="brutalist"] header[data-header]
|
|
237
|
-
html[data-theme-pack="brutalist"] header[data-header]
|
|
233
|
+
default ink-on-surface colors — plus the active nav chip and the
|
|
234
|
+
logo, whose dedicated full-ink rules below must win. */
|
|
235
|
+
html[data-theme-pack="brutalist"] header[data-header] a:not([data-nav-more-menu] *):not([data-nav-item-dropdown] div *):not([data-version-switcher] ul *):not(dialog *):not([aria-current="page"]):not([aria-current="page"] *):not([data-header-logo]):not([data-header-logo] *),
|
|
236
|
+
html[data-theme-pack="brutalist"] header[data-header] button:not([data-nav-more-menu] *):not([data-nav-item-dropdown] div *):not([data-version-switcher] ul *):not(dialog *):not([aria-current="page"]):not([aria-current="page"] *):not([data-header-logo]):not([data-header-logo] *),
|
|
237
|
+
html[data-theme-pack="brutalist"] header[data-header] span:not([data-nav-more-menu] *):not([data-nav-item-dropdown] div *):not([data-version-switcher] ul *):not(dialog *):not([aria-current="page"]):not([aria-current="page"] *):not([data-header-logo]):not([data-header-logo] *),
|
|
238
|
+
html[data-theme-pack="brutalist"] header[data-header] svg:not([data-nav-more-menu] *):not([data-nav-item-dropdown] div *):not([data-version-switcher] ul *):not(dialog *):not([aria-current="page"]):not([aria-current="page"] *):not([data-header-logo]):not([data-header-logo] *) {
|
|
238
239
|
color: color-mix(in srgb, var(--zd-bg) 80%, var(--zd-fg));
|
|
239
240
|
}
|
|
240
|
-
html[data-theme-pack="brutalist"] header[data-header] a:not([data-nav-more-menu] *):not([data-nav-item-dropdown] div *):not([data-version-switcher] ul *):not(dialog *):hover,
|
|
241
|
-
html[data-theme-pack="brutalist"] header[data-header] button:not([data-nav-more-menu] *):not([data-nav-item-dropdown] div *):not([data-version-switcher] ul *):not(dialog *):hover,
|
|
242
|
-
html[data-theme-pack="brutalist"] header[data-header] a:not([data-nav-more-menu] *):not([data-nav-item-dropdown] div *):not([data-version-switcher] ul *):not(dialog *):hover svg,
|
|
243
|
-
html[data-theme-pack="brutalist"] header[data-header] button:not([data-nav-more-menu] *):not([data-nav-item-dropdown] div *):not([data-version-switcher] ul *):not(dialog *):hover svg {
|
|
241
|
+
html[data-theme-pack="brutalist"] header[data-header] a:not([data-nav-more-menu] *):not([data-nav-item-dropdown] div *):not([data-version-switcher] ul *):not(dialog *):not([aria-current="page"]):not([aria-current="page"] *):not([data-header-logo]):not([data-header-logo] *):hover,
|
|
242
|
+
html[data-theme-pack="brutalist"] header[data-header] button:not([data-nav-more-menu] *):not([data-nav-item-dropdown] div *):not([data-version-switcher] ul *):not(dialog *):not([aria-current="page"]):not([aria-current="page"] *):not([data-header-logo]):not([data-header-logo] *):hover,
|
|
243
|
+
html[data-theme-pack="brutalist"] header[data-header] a:not([data-nav-more-menu] *):not([data-nav-item-dropdown] div *):not([data-version-switcher] ul *):not(dialog *):not([aria-current="page"]):not([aria-current="page"] *):not([data-header-logo]):not([data-header-logo] *):hover svg,
|
|
244
|
+
html[data-theme-pack="brutalist"] header[data-header] button:not([data-nav-more-menu] *):not([data-nav-item-dropdown] div *):not([data-version-switcher] ul *):not(dialog *):not([aria-current="page"]):not([aria-current="page"] *):not([data-header-logo]):not([data-header-logo] *):hover svg {
|
|
244
245
|
color: var(--zd-bg);
|
|
245
246
|
}
|
|
246
247
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|