Port Diogramos' blueprint theme and make it the default

aeab0c5 · Gabriel Morell · 2026-10-13 19:42

5 files +28 -7

Files changed

modified sass/_tokens.scss
+23 −2
@@ -1,6 +1,7 @@
1 1 // Palette ported from neiam.co (../neiam-co/sass/main.scss), plus the
2 −// light/dark pair from Diogramos (../Diogramos/assets/css/app.css) so a deck
3 −// can match its embedded diagrams. `her` is the default; only `light` is light.
2 +// light/dark/blueprint themes from Diogramos (../Diogramos/assets/css/app.css)
3 +// so a deck can match its embedded diagrams. `blueprint` is the site default
4 +// (zola.toml); `her` stays the bare :root fallback. Only `light` is light.
4 5
5 6 // ── Shared tokens ─────────────────────────────────────────────────────────────
6 7 :root {
@@ -182,3 +183,23 @@
182 183 --warning: oklch(66% 0.179 58.318);
183 184 --error: oklch(58% 0.253 17.585);
184 185 }
186 +
187 +// ── "blueprint" theme — from Diogramos ──────────────────────────────────────
188 +[data-theme="blueprint"] {
189 + --base-100: oklch(28% 0.12 252);
190 + --base-200: oklch(24% 0.11 252);
191 + --base-300: oklch(20% 0.10 252);
192 + --base-content: oklch(91% 0.05 235);
193 + --primary: oklch(68% 0.18 248);
194 + --primary-content: oklch(15% 0.05 248);
195 + --secondary: oklch(82% 0.10 240);
196 + --secondary-content: oklch(15% 0.05 240);
197 + --accent: oklch(96% 0.058 96);
198 + --accent-content: oklch(10% 0.010 96);
199 + --neutral: oklch(40% 0.16 253);
200 + --neutral-content: oklch(91% 0.05 235);
201 + --info: oklch(83% 0.101 230);
202 + --success: oklch(90% 0.089 164);
203 + --warning: oklch(95% 0.124 102);
204 + --error: oklch(81% 0.103 20);
205 +}
modified static/themes.js
+3 −3
@@ -1,12 +1,12 @@
1 1 // Theme registry shared by the site chrome and the reveal.js decks.
2 2 // Persisted under localStorage "theme", matching neiam.co.
3 3 window.NeiamThemes = (function () {
4 − // light/dark are Diogramos' own pair, so embedded diagrams can match.
5 − const themes = ["her", "afterdark", "forest", "sky", "clays", "stones", "light", "dark"];
4 + // blueprint/light/dark are Diogramos' own, so embedded diagrams can match.
5 + const themes = ["blueprint", "her", "afterdark", "forest", "sky", "clays", "stones", "light", "dark"];
6 6 const emoji = {
7 7 her: "❤️", afterdark: "💜", forest: "💚",
8 8 sky: "🩵", clays: "🧡", stones: "🩶",
9 − light: "🤍", dark: "🖤",
9 + light: "🤍", dark: "🖤", blueprint: "💙",
10 10 };
11 11 const html = document.documentElement;
12 12
modified zola.toml
+2 −2
@@ -7,10 +7,10 @@ build_search_index = false
7 7
8 8 [extra]
9 9 # Color schemes are ported from neiam.co: her, afterdark, forest, sky, clays,
10 −# stones -- plus light and dark from Diogramos. A visitor's pick is remembered in localStorage and applies site-wide;
10 +# stones -- plus light, dark and blueprint from Diogramos. A visitor's pick is remembered in localStorage and applies site-wide;
11 11 # `default_theme` is only the starting point. Override per deck with
12 12 # `theme = "..."` in the deck's [extra] table.
13 −default_theme = "her"
13 +default_theme = "blueprint"
14 14
15 15 # reveal.js defaults, overridable per deck in its [extra] table.
16 16 reveal_highlight_theme = "monokai"

Parents: caf8326