diff --git a/src/libdzonerzy.so.c b/src/libdzonerzy.so.c
index ec50af9..dfcda07 100644
--- a/src/libdzonerzy.so.c
+++ b/src/libdzonerzy.so.c
@@ -21,131 +21,151 @@ Copyright:
// this is a shared object library
#define MAIN_CSS \
- CSS_COMMENT("main.css - Terminal Noir Theme") \
+ CSS_COMMENT("main.css - Intelligence Dossier Theme") \
CSS_NEWLINE() \
CSS_COMMENT("Light mode variables") \
CSS_SELECTOR(":root") \
- CSS_PROPERTY("--bg", "#f7f5f2") \
+ CSS_PROPERTY("--bg", "#faf9f7") \
CSS_PROPERTY("--bg-surface", "#ffffff") \
- CSS_PROPERTY("--text", "#1a1a1a") \
- CSS_PROPERTY("--text-muted", "#5c5c5c") \
- CSS_PROPERTY("--accent", "#0969da") \
- CSS_PROPERTY("--accent-hover", "#0550ae") \
- CSS_PROPERTY("--accent-glow", "rgba(9,105,218,0.15)") \
- CSS_PROPERTY("--border", "#d1cdc7") \
- CSS_PROPERTY("--code-bg", "#f6f1eb") \
- CSS_PROPERTY("--code-text", "#24292f") \
- CSS_PROPERTY("--strong", "#9d174d") \
+ CSS_PROPERTY("--bg-elevated", "#f5f3f0") \
+ CSS_PROPERTY("--text", "#1c1917") \
+ CSS_PROPERTY("--text-muted", "#78716c") \
+ CSS_PROPERTY("--accent", "#b45309") \
+ CSS_PROPERTY("--accent-hover", "#92400e") \
+ CSS_PROPERTY("--accent-subtle", "rgba(180,83,9,0.08)") \
+ CSS_PROPERTY("--border", "#e7e5e4") \
+ CSS_PROPERTY("--border-strong", "#d6d3d1") \
+ CSS_PROPERTY("--code-bg", "#292524") \
+ CSS_PROPERTY("--code-text", "#fafaf9") \
+ CSS_PROPERTY("--strong", "#9a3412") \
CSS_PROPERTY("--heart", "#dc2626") \
- CSS_PROPERTY("--shadow", "0 1px 3px rgba(0,0,0,0.08), 0 4px 12px rgba(0,0,0,0.05)") \
- CSS_PROPERTY("--shadow-lg", "0 4px 20px rgba(0,0,0,0.12)") \
- CSS_PROPERTY("--table-header", "#f0ece6") \
- CSS_PROPERTY("--table-row-alt", "#faf8f5") \
- CSS_PROPERTY("--table-hover", "#e8f4fd") \
- CSS_PROPERTY("--scrollbar-bg", "#f0ece6") \
- CSS_PROPERTY("--scrollbar-thumb", "#c4bfb6") \
- CSS_COMMENT("Syntax highlighting - light mode") \
- CSS_PROPERTY("--syn-keyword", "#cf222e") \
- CSS_PROPERTY("--syn-string", "#0a3069") \
- CSS_PROPERTY("--syn-comment", "#6e7781") \
- CSS_PROPERTY("--syn-number", "#0550ae") \
- CSS_PROPERTY("--syn-function", "#8250df") \
- CSS_PROPERTY("--syn-variable", "#953800") \
- CSS_PROPERTY("--syn-operator", "#24292f") \
- CSS_PROPERTY("--syn-type", "#0550ae") \
- CSS_PROPERTY("--syn-constant", "#0550ae") \
- CSS_PROPERTY("--syn-builtin", "#8250df") \
- CSS_PROPERTY("--syn-control", "#cf222e") \
- CSS_PROPERTY("--syn-char", "#0a3069") \
- CSS_PROPERTY("--syn-special", "#cf222e") \
+ CSS_PROPERTY("--shadow", "0 1px 2px rgba(0,0,0,0.04)") \
+ CSS_PROPERTY("--shadow-lg", "0 4px 12px rgba(0,0,0,0.08)") \
+ CSS_PROPERTY("--table-header", "#f5f3f0") \
+ CSS_PROPERTY("--table-row-alt", "#faf9f7") \
+ CSS_PROPERTY("--table-hover", "#fef3c7") \
+ CSS_PROPERTY("--scrollbar-bg", "#292524") \
+ CSS_PROPERTY("--scrollbar-thumb", "#57534e") \
+ CSS_PROPERTY("--font-display", "\"Playfair Display\", Georgia, \"Times New Roman\", serif") \
+ CSS_PROPERTY("--font-body", "\"Source Sans 3\", \"Segoe UI\", system-ui, sans-serif") \
+ CSS_PROPERTY("--font-mono", "\"JetBrains Mono\", \"Fira Code\", \"SF Mono\", monospace") \
+ CSS_COMMENT("Syntax highlighting - light mode (on dark code bg)") \
+ CSS_PROPERTY("--syn-keyword", "#f97316") \
+ CSS_PROPERTY("--syn-string", "#a3e635") \
+ CSS_PROPERTY("--syn-comment", "#a8a29e") \
+ CSS_PROPERTY("--syn-number", "#60a5fa") \
+ CSS_PROPERTY("--syn-function", "#c084fc") \
+ CSS_PROPERTY("--syn-variable", "#fbbf24") \
+ CSS_PROPERTY("--syn-operator", "#e7e5e4") \
+ CSS_PROPERTY("--syn-type", "#22d3ee") \
+ CSS_PROPERTY("--syn-constant", "#60a5fa") \
+ CSS_PROPERTY("--syn-builtin", "#c084fc") \
+ CSS_PROPERTY("--syn-control", "#f97316") \
+ CSS_PROPERTY("--syn-char", "#a3e635") \
+ CSS_PROPERTY("--syn-special", "#fb923c") \
CSS_END_SELECTOR() \
CSS_COMMENT("Dark mode variables") \
CSS_SELECTOR("html.dark") \
- CSS_PROPERTY("--bg", "#0d1117") \
- CSS_PROPERTY("--bg-surface", "#161b22") \
- CSS_PROPERTY("--text", "#e6edf3") \
- CSS_PROPERTY("--text-muted", "#7d8590") \
- CSS_PROPERTY("--accent", "#58a6ff") \
- CSS_PROPERTY("--accent-hover", "#79c0ff") \
- CSS_PROPERTY("--accent-glow", "rgba(88,166,255,0.15)") \
- CSS_PROPERTY("--border", "#30363d") \
- CSS_PROPERTY("--code-bg", "#161b22") \
- CSS_PROPERTY("--code-text", "#e6edf3") \
- CSS_PROPERTY("--strong", "#f472b6") \
+ CSS_PROPERTY("--bg", "#0c0a09") \
+ CSS_PROPERTY("--bg-surface", "#1c1917") \
+ CSS_PROPERTY("--bg-elevated", "#292524") \
+ CSS_PROPERTY("--text", "#fafaf9") \
+ CSS_PROPERTY("--text-muted", "#a8a29e") \
+ CSS_PROPERTY("--accent", "#f59e0b") \
+ CSS_PROPERTY("--accent-hover", "#fbbf24") \
+ CSS_PROPERTY("--accent-subtle", "rgba(245,158,11,0.1)") \
+ CSS_PROPERTY("--border", "#292524") \
+ CSS_PROPERTY("--border-strong", "#44403c") \
+ CSS_PROPERTY("--code-bg", "#1c1917") \
+ CSS_PROPERTY("--code-text", "#fafaf9") \
+ CSS_PROPERTY("--strong", "#fb923c") \
CSS_PROPERTY("--heart", "#f87171") \
- CSS_PROPERTY("--shadow", "0 1px 3px rgba(0,0,0,0.3), 0 4px 12px rgba(0,0,0,0.2)") \
- CSS_PROPERTY("--shadow-lg", "0 4px 20px rgba(0,0,0,0.4)") \
- CSS_PROPERTY("--table-header", "#21262d") \
- CSS_PROPERTY("--table-row-alt", "#161b22") \
- CSS_PROPERTY("--table-hover", "#1c2631") \
- CSS_PROPERTY("--scrollbar-bg", "#21262d") \
- CSS_PROPERTY("--scrollbar-thumb", "#484f58") \
+ CSS_PROPERTY("--shadow", "0 1px 3px rgba(0,0,0,0.4)") \
+ CSS_PROPERTY("--shadow-lg", "0 4px 20px rgba(0,0,0,0.5)") \
+ CSS_PROPERTY("--table-header", "#292524") \
+ CSS_PROPERTY("--table-row-alt", "#1c1917") \
+ CSS_PROPERTY("--table-hover", "#44403c") \
+ CSS_PROPERTY("--scrollbar-bg", "#1c1917") \
+ CSS_PROPERTY("--scrollbar-thumb", "#57534e") \
CSS_COMMENT("Syntax highlighting - dark mode") \
- CSS_PROPERTY("--syn-keyword", "#ff7b72") \
- CSS_PROPERTY("--syn-string", "#a5d6ff") \
- CSS_PROPERTY("--syn-comment", "#8b949e") \
- CSS_PROPERTY("--syn-number", "#79c0ff") \
- CSS_PROPERTY("--syn-function", "#d2a8ff") \
- CSS_PROPERTY("--syn-variable", "#ffa657") \
- CSS_PROPERTY("--syn-operator", "#e6edf3") \
- CSS_PROPERTY("--syn-type", "#79c0ff") \
- CSS_PROPERTY("--syn-constant", "#79c0ff") \
- CSS_PROPERTY("--syn-builtin", "#d2a8ff") \
- CSS_PROPERTY("--syn-control", "#ff7b72") \
- CSS_PROPERTY("--syn-char", "#a5d6ff") \
- CSS_PROPERTY("--syn-special", "#ff7b72") \
+ CSS_PROPERTY("--syn-keyword", "#fb923c") \
+ CSS_PROPERTY("--syn-string", "#a3e635") \
+ CSS_PROPERTY("--syn-comment", "#78716c") \
+ CSS_PROPERTY("--syn-number", "#60a5fa") \
+ CSS_PROPERTY("--syn-function", "#c084fc") \
+ CSS_PROPERTY("--syn-variable", "#fcd34d") \
+ CSS_PROPERTY("--syn-operator", "#d6d3d1") \
+ CSS_PROPERTY("--syn-type", "#22d3ee") \
+ CSS_PROPERTY("--syn-constant", "#60a5fa") \
+ CSS_PROPERTY("--syn-builtin", "#c084fc") \
+ CSS_PROPERTY("--syn-control", "#fb923c") \
+ CSS_PROPERTY("--syn-char", "#a3e635") \
+ CSS_PROPERTY("--syn-special", "#fbbf24") \
CSS_END_SELECTOR() \
- CSS_COMMENT("Accent theme: Terminal Green") \
+ CSS_COMMENT("Accent theme: Emerald") \
CSS_SELECTOR("html.accent-green") \
- CSS_PROPERTY("--accent", "#22c55e") \
- CSS_PROPERTY("--accent-hover", "#16a34a") \
- CSS_PROPERTY("--accent-glow", "rgba(34,197,94,0.15)") \
- CSS_PROPERTY("--table-hover", "#ecfdf5") \
+ CSS_PROPERTY("--accent", "#059669") \
+ CSS_PROPERTY("--accent-hover", "#047857") \
+ CSS_PROPERTY("--accent-subtle", "rgba(5,150,105,0.08)") \
+ CSS_PROPERTY("--table-hover", "#d1fae5") \
CSS_END_SELECTOR() \
CSS_SELECTOR("html.dark.accent-green") \
- CSS_PROPERTY("--accent", "#4ade80") \
- CSS_PROPERTY("--accent-hover", "#86efac") \
- CSS_PROPERTY("--accent-glow", "rgba(74,222,128,0.15)") \
- CSS_PROPERTY("--table-hover", "#14352a") \
+ CSS_PROPERTY("--accent", "#34d399") \
+ CSS_PROPERTY("--accent-hover", "#6ee7b7") \
+ CSS_PROPERTY("--accent-subtle", "rgba(52,211,153,0.1)") \
+ CSS_PROPERTY("--table-hover", "#064e3b") \
CSS_END_SELECTOR() \
- CSS_COMMENT("Accent theme: Amber") \
+ CSS_COMMENT("Accent theme: Gold (default)") \
CSS_SELECTOR("html.accent-amber") \
CSS_PROPERTY("--accent", "#d97706") \
CSS_PROPERTY("--accent-hover", "#b45309") \
- CSS_PROPERTY("--accent-glow", "rgba(217,119,6,0.15)") \
+ CSS_PROPERTY("--accent-subtle", "rgba(217,119,6,0.08)") \
CSS_PROPERTY("--table-hover", "#fef3c7") \
CSS_END_SELECTOR() \
CSS_SELECTOR("html.dark.accent-amber") \
CSS_PROPERTY("--accent", "#fbbf24") \
CSS_PROPERTY("--accent-hover", "#fcd34d") \
- CSS_PROPERTY("--accent-glow", "rgba(251,191,36,0.15)") \
- CSS_PROPERTY("--table-hover", "#352a14") \
+ CSS_PROPERTY("--accent-subtle", "rgba(251,191,36,0.1)") \
+ CSS_PROPERTY("--table-hover", "#451a03") \
CSS_END_SELECTOR() \
- CSS_COMMENT("Accent theme: Cyan") \
+ CSS_COMMENT("Accent theme: Sky") \
CSS_SELECTOR("html.accent-cyan") \
- CSS_PROPERTY("--accent", "#0891b2") \
- CSS_PROPERTY("--accent-hover", "#0e7490") \
- CSS_PROPERTY("--accent-glow", "rgba(8,145,178,0.15)") \
- CSS_PROPERTY("--table-hover", "#ecfeff") \
+ CSS_PROPERTY("--accent", "#0284c7") \
+ CSS_PROPERTY("--accent-hover", "#0369a1") \
+ CSS_PROPERTY("--accent-subtle", "rgba(2,132,199,0.08)") \
+ CSS_PROPERTY("--table-hover", "#e0f2fe") \
CSS_END_SELECTOR() \
CSS_SELECTOR("html.dark.accent-cyan") \
- CSS_PROPERTY("--accent", "#22d3ee") \
- CSS_PROPERTY("--accent-hover", "#67e8f9") \
- CSS_PROPERTY("--accent-glow", "rgba(34,211,238,0.15)") \
- CSS_PROPERTY("--table-hover", "#143535") \
+ CSS_PROPERTY("--accent", "#38bdf8") \
+ CSS_PROPERTY("--accent-hover", "#7dd3fc") \
+ CSS_PROPERTY("--accent-subtle", "rgba(56,189,248,0.1)") \
+ CSS_PROPERTY("--table-hover", "#0c4a6e") \
CSS_END_SELECTOR() \
CSS_COMMENT("Accent theme: Rose") \
CSS_SELECTOR("html.accent-rose") \
- CSS_PROPERTY("--accent", "#e11d48") \
- CSS_PROPERTY("--accent-hover", "#be123c") \
- CSS_PROPERTY("--accent-glow", "rgba(225,29,72,0.15)") \
- CSS_PROPERTY("--table-hover", "#fff1f2") \
+ CSS_PROPERTY("--accent", "#be123c") \
+ CSS_PROPERTY("--accent-hover", "#9f1239") \
+ CSS_PROPERTY("--accent-subtle", "rgba(190,18,60,0.08)") \
+ CSS_PROPERTY("--table-hover", "#ffe4e6") \
CSS_END_SELECTOR() \
CSS_SELECTOR("html.dark.accent-rose") \
CSS_PROPERTY("--accent", "#fb7185") \
CSS_PROPERTY("--accent-hover", "#fda4af") \
- CSS_PROPERTY("--accent-glow", "rgba(251,113,133,0.15)") \
- CSS_PROPERTY("--table-hover", "#35141c") \
+ CSS_PROPERTY("--accent-subtle", "rgba(251,113,133,0.1)") \
+ CSS_PROPERTY("--table-hover", "#4c0519") \
+ CSS_END_SELECTOR() \
+ CSS_COMMENT("Accent theme: Classic Blue") \
+ CSS_SELECTOR("html.accent-blue") \
+ CSS_PROPERTY("--accent", "#2563eb") \
+ CSS_PROPERTY("--accent-hover", "#1d4ed8") \
+ CSS_PROPERTY("--accent-subtle", "rgba(37,99,235,0.08)") \
+ CSS_PROPERTY("--table-hover", "#dbeafe") \
+ CSS_END_SELECTOR() \
+ CSS_SELECTOR("html.dark.accent-blue") \
+ CSS_PROPERTY("--accent", "#60a5fa") \
+ CSS_PROPERTY("--accent-hover", "#93c5fd") \
+ CSS_PROPERTY("--accent-subtle", "rgba(96,165,250,0.1)") \
+ CSS_PROPERTY("--table-hover", "#1e3a5f") \
CSS_END_SELECTOR() \
CSS_COMMENT("Base styles") \
CSS_SELECTOR("*, *::before, *::after") \
@@ -160,87 +180,124 @@ Copyright:
CSS_END_SELECTOR() \
CSS_SELECTOR("body") \
CSS_PROPERTY("margin", "0 auto") \
- CSS_PROPERTY("padding", "0 1.5rem") \
- CSS_PROPERTY("max-width", "52rem") \
+ CSS_PROPERTY("padding", "0 2rem") \
+ CSS_PROPERTY("padding-top", "4.5rem") \
+ CSS_PROPERTY("max-width", "clamp(50rem, 75vw, 72rem)") \
CSS_PROPERTY("min-height", "100vh") \
- CSS_PROPERTY("font-family", "\"Fira Code\", \"SF Mono\", Monaco, \"Cascadia Code\", monospace") \
- CSS_PROPERTY("font-size", "1rem") \
- CSS_PROPERTY("line-height", "1.7") \
+ CSS_PROPERTY("font-family", "var(--font-body)") \
+ CSS_PROPERTY("font-size", "1.0625rem") \
+ CSS_PROPERTY("line-height", "1.75") \
CSS_PROPERTY("background-color", "var(--bg)") \
CSS_PROPERTY("color", "var(--text)") \
CSS_PROPERTY("display", "flex") \
CSS_PROPERTY("flex-direction", "column") \
- CSS_PROPERTY("transition", "background-color 0.3s ease, color 0.3s ease") \
+ CSS_PROPERTY("transition", "background-color 0.25s ease, color 0.25s ease") \
+ CSS_PROPERTY("-webkit-font-smoothing", "antialiased") \
+ CSS_PROPERTY("-moz-osx-font-smoothing", "grayscale") \
CSS_END_SELECTOR() \
- CSS_COMMENT("Theme toggle button") \
- CSS_SELECTOR(".theme-toggle") \
+ CSS_COMMENT("Top control bar") \
+ CSS_SELECTOR(".control-bar") \
CSS_PROPERTY("position", "fixed") \
- CSS_PROPERTY("top", "1.25rem") \
- CSS_PROPERTY("right", "1.25rem") \
- CSS_PROPERTY("width", "2.75rem") \
- CSS_PROPERTY("height", "2.75rem") \
- CSS_PROPERTY("border-radius", "50%") \
- CSS_PROPERTY("border", "1px solid var(--border)") \
+ CSS_PROPERTY("top", "0") \
+ CSS_PROPERTY("left", "0") \
+ CSS_PROPERTY("right", "0") \
+ CSS_PROPERTY("height", "3.5rem") \
CSS_PROPERTY("background", "var(--bg-surface)") \
+ CSS_PROPERTY("border-bottom", "1px solid var(--border)") \
+ CSS_PROPERTY("display", "flex") \
+ CSS_PROPERTY("align-items", "center") \
+ CSS_PROPERTY("justify-content", "space-between") \
+ CSS_PROPERTY("padding", "0 2rem") \
+ CSS_PROPERTY("z-index", "1000") \
+ CSS_PROPERTY("transition", "background-color 0.25s ease, border-color 0.25s ease") \
+ CSS_END_SELECTOR() \
+ CSS_SELECTOR(".control-bar__brand") \
+ CSS_PROPERTY("font-family", "var(--font-display)") \
+ CSS_PROPERTY("font-size", "1.125rem") \
+ CSS_PROPERTY("font-weight", "600") \
CSS_PROPERTY("color", "var(--text)") \
+ CSS_PROPERTY("text-decoration", "none") \
+ CSS_PROPERTY("letter-spacing", "-0.01em") \
+ CSS_END_SELECTOR() \
+ CSS_SELECTOR(".control-bar__brand:hover") \
+ CSS_PROPERTY("color", "var(--accent)") \
+ CSS_END_SELECTOR() \
+ CSS_SELECTOR(".control-bar__actions") \
+ CSS_PROPERTY("display", "flex") \
+ CSS_PROPERTY("align-items", "center") \
+ CSS_PROPERTY("gap", "0.5rem") \
+ CSS_END_SELECTOR() \
+ CSS_COMMENT("Control buttons") \
+ CSS_SELECTOR(".ctrl-btn") \
+ CSS_PROPERTY("width", "2.25rem") \
+ CSS_PROPERTY("height", "2.25rem") \
+ CSS_PROPERTY("border-radius", "6px") \
+ CSS_PROPERTY("border", "1px solid var(--border)") \
+ CSS_PROPERTY("background", "transparent") \
+ CSS_PROPERTY("color", "var(--text-muted)") \
CSS_PROPERTY("cursor", "pointer") \
CSS_PROPERTY("display", "flex") \
CSS_PROPERTY("align-items", "center") \
CSS_PROPERTY("justify-content", "center") \
- CSS_PROPERTY("font-size", "1.25rem") \
- CSS_PROPERTY("box-shadow", "var(--shadow)") \
- CSS_PROPERTY("transition", "all 0.2s ease") \
- CSS_PROPERTY("z-index", "1000") \
+ CSS_PROPERTY("font-size", "1rem") \
+ CSS_PROPERTY("transition", "all 0.15s ease") \
CSS_END_SELECTOR() \
- CSS_SELECTOR(".theme-toggle:hover") \
- CSS_PROPERTY("transform", "scale(1.1)") \
- CSS_PROPERTY("box-shadow", "var(--shadow-lg)") \
+ CSS_SELECTOR(".ctrl-btn:hover") \
+ CSS_PROPERTY("background", "var(--accent-subtle)") \
+ CSS_PROPERTY("border-color", "var(--accent)") \
+ CSS_PROPERTY("color", "var(--accent)") \
CSS_END_SELECTOR() \
- CSS_SELECTOR(".theme-toggle .icon-sun, .theme-toggle .icon-moon") \
+ CSS_SELECTOR(".ctrl-btn--accent") \
+ CSS_PROPERTY("background", "var(--accent)") \
+ CSS_PROPERTY("border-color", "var(--accent)") \
+ CSS_END_SELECTOR() \
+ CSS_SELECTOR(".ctrl-btn .icon-sun, .ctrl-btn .icon-moon") \
CSS_PROPERTY("line-height", "1") \
CSS_PROPERTY("display", "flex") \
CSS_PROPERTY("align-items", "center") \
CSS_PROPERTY("justify-content", "center") \
- CSS_PROPERTY("transition", "opacity 0.2s ease, transform 0.2s ease") \
CSS_END_SELECTOR() \
- CSS_SELECTOR(".theme-toggle .icon-sun") \
+ CSS_SELECTOR(".ctrl-btn .icon-sun") \
CSS_PROPERTY("display", "flex") \
CSS_END_SELECTOR() \
- CSS_SELECTOR(".theme-toggle .icon-moon") \
+ CSS_SELECTOR(".ctrl-btn .icon-moon") \
CSS_PROPERTY("display", "none") \
CSS_END_SELECTOR() \
- CSS_SELECTOR("html.dark .theme-toggle .icon-sun") \
+ CSS_SELECTOR("html.dark .ctrl-btn .icon-sun") \
CSS_PROPERTY("display", "none") \
CSS_END_SELECTOR() \
- CSS_SELECTOR("html.dark .theme-toggle .icon-moon") \
- CSS_PROPERTY("display", "block") \
+ CSS_SELECTOR("html.dark .ctrl-btn .icon-moon") \
+ CSS_PROPERTY("display", "flex") \
CSS_END_SELECTOR() \
CSS_COMMENT("Typography") \
CSS_SELECTOR("h1, h2, h3, h4, h5, h6") \
- CSS_PROPERTY("font-family", "inherit") \
- CSS_PROPERTY("font-weight", "600") \
- CSS_PROPERTY("line-height", "1.3") \
- CSS_PROPERTY("margin-top", "2rem") \
+ CSS_PROPERTY("font-family", "var(--font-display)") \
+ CSS_PROPERTY("font-weight", "700") \
+ CSS_PROPERTY("line-height", "1.25") \
+ CSS_PROPERTY("margin-top", "2.5rem") \
CSS_PROPERTY("margin-bottom", "1rem") \
CSS_PROPERTY("color", "var(--text)") \
CSS_PROPERTY("clear", "both") \
+ CSS_PROPERTY("letter-spacing", "-0.02em") \
CSS_END_SELECTOR() \
CSS_SELECTOR("h1") \
- CSS_PROPERTY("font-size", "1.75rem") \
+ CSS_PROPERTY("font-size", "2.25rem") \
CSS_END_SELECTOR() \
CSS_SELECTOR("h2") \
- CSS_PROPERTY("font-size", "1.4rem") \
+ CSS_PROPERTY("font-size", "1.75rem") \
CSS_PROPERTY("padding-bottom", "0.5rem") \
- CSS_PROPERTY("border-bottom", "1px solid var(--border)") \
+ CSS_PROPERTY("border-bottom", "2px solid var(--accent)") \
+ CSS_PROPERTY("display", "inline-block") \
+ CSS_PROPERTY("padding-right", "2rem") \
CSS_END_SELECTOR() \
CSS_SELECTOR("h3") \
- CSS_PROPERTY("font-size", "1.2rem") \
+ CSS_PROPERTY("font-size", "1.375rem") \
CSS_END_SELECTOR() \
CSS_SELECTOR("h4, h5, h6") \
- CSS_PROPERTY("font-size", "1.05rem") \
+ CSS_PROPERTY("font-size", "1.125rem") \
CSS_END_SELECTOR() \
CSS_SELECTOR("p") \
- CSS_PROPERTY("margin", "0 0 1.25rem 0") \
+ CSS_PROPERTY("margin", "0 0 1.5rem 0") \
CSS_END_SELECTOR() \
CSS_SELECTOR("strong") \
CSS_PROPERTY("font-weight", "600") \
@@ -250,11 +307,12 @@ Copyright:
CSS_SELECTOR("a") \
CSS_PROPERTY("color", "var(--accent)") \
CSS_PROPERTY("text-decoration", "none") \
- CSS_PROPERTY("transition", "color 0.15s ease") \
+ CSS_PROPERTY("border-bottom", "1px solid transparent") \
+ CSS_PROPERTY("transition", "color 0.15s ease, border-color 0.15s ease") \
CSS_END_SELECTOR() \
CSS_SELECTOR("a:hover") \
CSS_PROPERTY("color", "var(--accent-hover)") \
- CSS_PROPERTY("text-decoration", "underline") \
+ CSS_PROPERTY("border-bottom-color", "var(--accent-hover)") \
CSS_END_SELECTOR() \
CSS_SELECTOR("a:visited") \
CSS_PROPERTY("color", "var(--accent)") \
@@ -262,71 +320,143 @@ Copyright:
CSS_SELECTOR("a > strong") \
CSS_PROPERTY("color", "inherit") \
CSS_END_SELECTOR() \
- CSS_COMMENT("Header and TOC") \
+ CSS_COMMENT("Header and title block") \
CSS_SELECTOR("#title-block-header") \
- CSS_PROPERTY("background", "var(--bg-surface)") \
- CSS_PROPERTY("border", "1px solid var(--border)") \
- CSS_PROPERTY("border-radius", "8px") \
- CSS_PROPERTY("padding", "1.5rem 2rem") \
- CSS_PROPERTY("margin", "2rem 0") \
- CSS_PROPERTY("box-shadow", "var(--shadow)") \
- CSS_PROPERTY("transition", "background-color 0.3s ease, border-color 0.3s ease") \
+ CSS_PROPERTY("margin", "0 0 3rem 0") \
+ CSS_PROPERTY("padding", "0") \
+ CSS_PROPERTY("background", "transparent") \
+ CSS_PROPERTY("border", "none") \
CSS_END_SELECTOR() \
- CSS_SELECTOR("#TOC") \
- CSS_PROPERTY("background", "var(--bg-surface)") \
- CSS_PROPERTY("border", "1px solid var(--border)") \
- CSS_PROPERTY("border-radius", "8px") \
- CSS_PROPERTY("padding", "1.25rem 1.5rem") \
- CSS_PROPERTY("margin", "1.5rem 0") \
- CSS_PROPERTY("box-shadow", "var(--shadow)") \
- CSS_PROPERTY("transition", "background-color 0.3s ease, border-color 0.3s ease") \
- CSS_END_SELECTOR() \
- CSS_SELECTOR("nav#TOC > ul") \
- CSS_PROPERTY("list-style-type", "decimal") \
- CSS_PROPERTY("padding-left", "1.5rem") \
- CSS_PROPERTY("margin", "0") \
- CSS_END_SELECTOR() \
- CSS_SELECTOR("nav#TOC ul li") \
- CSS_PROPERTY("margin-bottom", "0.6rem") \
- CSS_PROPERTY("color", "var(--text-muted)") \
- CSS_END_SELECTOR() \
- CSS_SELECTOR("nav#TOC ul li a") \
- CSS_PROPERTY("color", "var(--text)") \
- CSS_END_SELECTOR() \
- CSS_SELECTOR("nav#TOC ul li a:hover") \
- CSS_PROPERTY("color", "var(--accent)") \
- CSS_END_SELECTOR() \
- CSS_COMMENT("Title block styling") \
CSS_SELECTOR("h1.title") \
- CSS_PROPERTY("text-align", "center") \
+ CSS_PROPERTY("font-size", "2.75rem") \
CSS_PROPERTY("margin-top", "0") \
CSS_PROPERTY("margin-bottom", "1rem") \
- CSS_PROPERTY("font-size", "1.6rem") \
CSS_PROPERTY("border-bottom", "none") \
CSS_PROPERTY("padding-bottom", "0") \
+ CSS_PROPERTY("line-height", "1.15") \
CSS_END_SELECTOR() \
CSS_SELECTOR("p.author") \
- CSS_PROPERTY("text-align", "center") \
+ CSS_PROPERTY("font-family", "var(--font-mono)") \
CSS_PROPERTY("text-transform", "uppercase") \
- CSS_PROPERTY("font-size", "0.85rem") \
- CSS_PROPERTY("letter-spacing", "0.05em") \
- CSS_PROPERTY("color", "var(--text-muted)") \
+ CSS_PROPERTY("font-size", "0.8125rem") \
+ CSS_PROPERTY("letter-spacing", "0.1em") \
+ CSS_PROPERTY("color", "var(--accent)") \
CSS_PROPERTY("margin-bottom", "0.25rem") \
CSS_END_SELECTOR() \
CSS_SELECTOR("p.author::before") \
- CSS_PROPERTY("content", "\"by \"") \
- CSS_PROPERTY("text-transform", "lowercase") \
- CSS_PROPERTY("font-weight", "normal") \
+ CSS_PROPERTY("content", "\"// \"") \
+ CSS_PROPERTY("opacity", "0.5") \
CSS_END_SELECTOR() \
CSS_SELECTOR("p.date") \
- CSS_PROPERTY("text-align", "center") \
- CSS_PROPERTY("font-size", "0.85rem") \
+ CSS_PROPERTY("font-family", "var(--font-mono)") \
+ CSS_PROPERTY("font-size", "0.8125rem") \
CSS_PROPERTY("color", "var(--text-muted)") \
CSS_PROPERTY("margin-bottom", "0") \
CSS_END_SELECTOR() \
CSS_SELECTOR("p.date::before") \
CSS_PROPERTY("content", "\"\"") \
CSS_END_SELECTOR() \
+ CSS_COMMENT("Table of Contents") \
+ CSS_SELECTOR("#TOC") \
+ CSS_PROPERTY("background", "transparent") \
+ CSS_PROPERTY("border", "none") \
+ CSS_PROPERTY("border-left", "3px solid var(--border-strong)") \
+ CSS_PROPERTY("padding", "0 0 0 1.5rem") \
+ CSS_PROPERTY("margin", "0 0 3rem 0") \
+ CSS_END_SELECTOR() \
+ CSS_SELECTOR("#TOC::before") \
+ CSS_PROPERTY("content", "\"CONTENTS\"") \
+ CSS_PROPERTY("display", "block") \
+ CSS_PROPERTY("font-family", "var(--font-mono)") \
+ CSS_PROPERTY("font-size", "0.6875rem") \
+ CSS_PROPERTY("letter-spacing", "0.15em") \
+ CSS_PROPERTY("color", "var(--text-muted)") \
+ CSS_PROPERTY("margin-bottom", "0.75rem") \
+ CSS_END_SELECTOR() \
+ CSS_SELECTOR("nav#TOC > ul") \
+ CSS_PROPERTY("list-style-type", "none") \
+ CSS_PROPERTY("padding-left", "0") \
+ CSS_PROPERTY("margin", "0") \
+ CSS_PROPERTY("counter-reset", "toc-h1") \
+ CSS_END_SELECTOR() \
+ CSS_SELECTOR("nav#TOC > ul > li") \
+ CSS_PROPERTY("margin-bottom", "0.5rem") \
+ CSS_PROPERTY("counter-increment", "toc-h1") \
+ CSS_PROPERTY("counter-reset", "toc-h2") \
+ CSS_END_SELECTOR() \
+ CSS_SELECTOR("nav#TOC > ul > li::before") \
+ CSS_PROPERTY("content", "counter(toc-h1) \".\"") \
+ CSS_PROPERTY("font-family", "var(--font-mono)") \
+ CSS_PROPERTY("font-size", "0.75rem") \
+ CSS_PROPERTY("color", "var(--text-muted)") \
+ CSS_PROPERTY("margin-right", "0.75rem") \
+ CSS_END_SELECTOR() \
+ CSS_COMMENT("Nested TOC items") \
+ CSS_SELECTOR("nav#TOC ul ul") \
+ CSS_PROPERTY("list-style-type", "none") \
+ CSS_PROPERTY("padding-left", "1.5rem") \
+ CSS_PROPERTY("margin", "0.5rem 0 0 0") \
+ CSS_END_SELECTOR() \
+ CSS_SELECTOR("nav#TOC ul ul li") \
+ CSS_PROPERTY("margin-bottom", "0.35rem") \
+ CSS_PROPERTY("counter-increment", "toc-h2") \
+ CSS_END_SELECTOR() \
+ CSS_SELECTOR("nav#TOC ul ul li::before") \
+ CSS_PROPERTY("content", "counter(toc-h1) \".\" counter(toc-h2)") \
+ CSS_PROPERTY("font-family", "var(--font-mono)") \
+ CSS_PROPERTY("font-size", "0.6875rem") \
+ CSS_PROPERTY("color", "var(--text-muted)") \
+ CSS_PROPERTY("margin-right", "0.625rem") \
+ CSS_PROPERTY("opacity", "0.7") \
+ CSS_END_SELECTOR() \
+ CSS_SELECTOR("nav#TOC ul li a") \
+ CSS_PROPERTY("color", "var(--text)") \
+ CSS_PROPERTY("font-size", "0.9375rem") \
+ CSS_PROPERTY("border-bottom", "none") \
+ CSS_END_SELECTOR() \
+ CSS_SELECTOR("nav#TOC ul ul li a") \
+ CSS_PROPERTY("font-size", "0.875rem") \
+ CSS_END_SELECTOR() \
+ CSS_SELECTOR("nav#TOC ul li a:hover") \
+ CSS_PROPERTY("color", "var(--accent)") \
+ CSS_END_SELECTOR() \
+ CSS_COMMENT("Collapsible TOC") \
+ CSS_SELECTOR("#TOC.is-collapsible") \
+ CSS_PROPERTY("position", "relative") \
+ CSS_END_SELECTOR() \
+ CSS_SELECTOR("#TOC.is-collapsible.is-collapsed > ul") \
+ CSS_PROPERTY("max-height", "14rem") \
+ CSS_PROPERTY("overflow", "hidden") \
+ CSS_END_SELECTOR() \
+ CSS_SELECTOR("#TOC.is-collapsible.is-collapsed::after") \
+ CSS_PROPERTY("content", "\"\"") \
+ CSS_PROPERTY("position", "absolute") \
+ CSS_PROPERTY("bottom", "2.5rem") \
+ CSS_PROPERTY("left", "0") \
+ CSS_PROPERTY("right", "0") \
+ CSS_PROPERTY("height", "4rem") \
+ CSS_PROPERTY("background", "linear-gradient(to bottom, transparent, var(--bg))") \
+ CSS_PROPERTY("pointer-events", "none") \
+ CSS_END_SELECTOR() \
+ CSS_SELECTOR(".toc-toggle") \
+ CSS_PROPERTY("display", "block") \
+ CSS_PROPERTY("margin-top", "0.75rem") \
+ CSS_PROPERTY("padding", "0.5rem 1rem") \
+ CSS_PROPERTY("font-family", "var(--font-mono)") \
+ CSS_PROPERTY("font-size", "0.75rem") \
+ CSS_PROPERTY("letter-spacing", "0.05em") \
+ CSS_PROPERTY("text-transform", "uppercase") \
+ CSS_PROPERTY("color", "var(--accent)") \
+ CSS_PROPERTY("background", "var(--accent-subtle)") \
+ CSS_PROPERTY("border", "1px solid var(--accent)") \
+ CSS_PROPERTY("border-radius", "4px") \
+ CSS_PROPERTY("cursor", "pointer") \
+ CSS_PROPERTY("transition", "all 0.15s ease") \
+ CSS_END_SELECTOR() \
+ CSS_SELECTOR(".toc-toggle:hover") \
+ CSS_PROPERTY("background", "var(--accent)") \
+ CSS_PROPERTY("color", "var(--bg)") \
+ CSS_END_SELECTOR() \
CSS_COMMENT("Main content") \
CSS_SELECTOR("section") \
CSS_PROPERTY("flex", "1 0 auto") \
@@ -340,15 +470,15 @@ Copyright:
CSS_SELECTOR("img") \
CSS_PROPERTY("max-width", "100%") \
CSS_PROPERTY("height", "auto") \
- CSS_PROPERTY("border-radius", "6px") \
- CSS_PROPERTY("border", "1px solid var(--border)") \
+ CSS_PROPERTY("border-radius", "4px") \
+ CSS_PROPERTY("border", "none") \
CSS_PROPERTY("background", "var(--bg-surface)") \
CSS_PROPERTY("float", "right") \
CSS_PROPERTY("clear", "right") \
- CSS_PROPERTY("margin-left", "1.5rem") \
+ CSS_PROPERTY("margin-left", "2rem") \
CSS_PROPERTY("margin-bottom", "1rem") \
- CSS_PROPERTY("max-height", "16rem") \
- CSS_PROPERTY("transition", "border-color 0.3s ease") \
+ CSS_PROPERTY("max-height", "14rem") \
+ CSS_PROPERTY("box-shadow", "var(--shadow-lg)") \
CSS_END_SELECTOR() \
CSS_SELECTOR("figcaption") \
CSS_PROPERTY("display", "none") \
@@ -356,46 +486,54 @@ Copyright:
CSS_SELECTOR("blockquote img") \
CSS_PROPERTY("float", "none") \
CSS_PROPERTY("clear", "none") \
- CSS_PROPERTY("max-height", "28rem") \
+ CSS_PROPERTY("max-height", "24rem") \
CSS_PROPERTY("margin", "0 auto") \
CSS_PROPERTY("display", "block") \
CSS_END_SELECTOR() \
CSS_SELECTOR(".zoomable") \
CSS_PROPERTY("cursor", "zoom-in") \
CSS_PROPERTY("max-width", "100%") \
- CSS_PROPERTY("max-height", "24rem") \
+ CSS_PROPERTY("max-height", "22rem") \
+ CSS_PROPERTY("transition", "transform 0.2s ease, box-shadow 0.2s ease") \
+ CSS_END_SELECTOR() \
+ CSS_SELECTOR(".zoomable:hover") \
+ CSS_PROPERTY("transform", "scale(1.01)") \
+ CSS_PROPERTY("box-shadow", "0 8px 30px rgba(0,0,0,0.15)") \
CSS_END_SELECTOR() \
CSS_COMMENT("Blockquotes") \
CSS_SELECTOR("blockquote") \
- CSS_PROPERTY("margin", "1.5rem 0") \
- CSS_PROPERTY("padding", "0.75rem 1.25rem") \
- CSS_PROPERTY("border-left", "3px solid var(--accent)") \
- CSS_PROPERTY("background", "var(--bg-surface)") \
- CSS_PROPERTY("border-radius", "0 6px 6px 0") \
+ CSS_PROPERTY("margin", "2rem 0") \
+ CSS_PROPERTY("padding", "1.25rem 1.5rem") \
+ CSS_PROPERTY("border-left", "4px solid var(--accent)") \
+ CSS_PROPERTY("background", "var(--accent-subtle)") \
+ CSS_PROPERTY("border-radius", "0 8px 8px 0") \
CSS_PROPERTY("color", "var(--text)") \
CSS_PROPERTY("clear", "both") \
+ CSS_PROPERTY("font-style", "italic") \
+ CSS_END_SELECTOR() \
+ CSS_SELECTOR("blockquote p:last-child") \
+ CSS_PROPERTY("margin-bottom", "0") \
CSS_END_SELECTOR() \
CSS_COMMENT("Code blocks") \
CSS_SELECTOR("code") \
- CSS_PROPERTY("font-family", "\"Fira Code\", \"SF Mono\", Monaco, monospace") \
- CSS_PROPERTY("font-size", "0.9em") \
+ CSS_PROPERTY("font-family", "var(--font-mono)") \
+ CSS_PROPERTY("font-size", "0.875em") \
CSS_PROPERTY("background", "var(--code-bg)") \
CSS_PROPERTY("color", "var(--code-text)") \
- CSS_PROPERTY("padding", "0.15em 0.4em") \
+ CSS_PROPERTY("padding", "0.2em 0.4em") \
CSS_PROPERTY("border-radius", "4px") \
- CSS_PROPERTY("transition", "background-color 0.3s ease") \
CSS_END_SELECTOR() \
CSS_SELECTOR("pre") \
CSS_PROPERTY("background", "var(--code-bg)") \
- CSS_PROPERTY("border", "1px solid var(--border)") \
- CSS_PROPERTY("border-radius", "6px") \
- CSS_PROPERTY("padding", "1rem 1.25rem") \
- CSS_PROPERTY("margin", "1.25rem 0") \
+ CSS_PROPERTY("border", "none") \
+ CSS_PROPERTY("border-radius", "8px") \
+ CSS_PROPERTY("padding", "1.25rem 1.5rem") \
+ CSS_PROPERTY("margin", "1.5rem 0") \
CSS_PROPERTY("overflow-x", "auto") \
CSS_PROPERTY("max-height", "500px") \
- CSS_PROPERTY("font-size", "0.88rem") \
- CSS_PROPERTY("line-height", "1.6") \
- CSS_PROPERTY("transition", "background-color 0.3s ease, border-color 0.3s ease") \
+ CSS_PROPERTY("font-size", "0.875rem") \
+ CSS_PROPERTY("line-height", "1.65") \
+ CSS_PROPERTY("box-shadow", "var(--shadow-lg)") \
CSS_END_SELECTOR() \
CSS_SELECTOR("pre code") \
CSS_PROPERTY("background", "transparent") \
@@ -405,12 +543,12 @@ Copyright:
CSS_END_SELECTOR() \
CSS_SELECTOR("div.sourceCode") \
CSS_PROPERTY("background", "var(--code-bg)") \
- CSS_PROPERTY("border", "1px solid var(--border)") \
- CSS_PROPERTY("border-radius", "6px") \
- CSS_PROPERTY("margin", "1.25rem 0") \
+ CSS_PROPERTY("border", "none") \
+ CSS_PROPERTY("border-radius", "8px") \
+ CSS_PROPERTY("margin", "1.5rem 0") \
CSS_PROPERTY("overflow", "auto") \
CSS_PROPERTY("max-height", "500px") \
- CSS_PROPERTY("transition", "background-color 0.3s ease, border-color 0.3s ease") \
+ CSS_PROPERTY("box-shadow", "var(--shadow-lg)") \
CSS_END_SELECTOR() \
CSS_SELECTOR("div.sourceCode pre") \
CSS_PROPERTY("margin", "0") \
@@ -418,6 +556,7 @@ Copyright:
CSS_PROPERTY("border-radius", "0") \
CSS_PROPERTY("max-height", "none") \
CSS_PROPERTY("overflow", "visible") \
+ CSS_PROPERTY("box-shadow", "none") \
CSS_END_SELECTOR() \
CSS_SELECTOR("pre.numberSource") \
CSS_PROPERTY("padding-left", "3.5em") \
@@ -431,16 +570,17 @@ Copyright:
CSS_PROPERTY("margin-right", "1em") \
CSS_PROPERTY("color", "var(--text-muted)") \
CSS_PROPERTY("text-align", "right") \
+ CSS_PROPERTY("opacity", "0.5") \
CSS_END_SELECTOR() \
CSS_COMMENT("Scrollbar styling") \
CSS_SELECTOR("pre::-webkit-scrollbar, code::-webkit-scrollbar, div.sourceCode::-webkit-scrollbar") \
- CSS_PROPERTY("width", "10px") \
- CSS_PROPERTY("height", "10px") \
- CSS_PROPERTY("background", "var(--scrollbar-bg)") \
+ CSS_PROPERTY("width", "8px") \
+ CSS_PROPERTY("height", "8px") \
+ CSS_PROPERTY("background", "transparent") \
CSS_END_SELECTOR() \
CSS_SELECTOR("pre::-webkit-scrollbar-thumb, code::-webkit-scrollbar-thumb, div.sourceCode::-webkit-scrollbar-thumb") \
CSS_PROPERTY("background", "var(--scrollbar-thumb)") \
- CSS_PROPERTY("border-radius", "5px") \
+ CSS_PROPERTY("border-radius", "4px") \
CSS_END_SELECTOR() \
CSS_SELECTOR("pre::-webkit-scrollbar-track, code::-webkit-scrollbar-track, div.sourceCode::-webkit-scrollbar-track") \
CSS_PROPERTY("background", "var(--scrollbar-bg)") \
@@ -449,25 +589,28 @@ Copyright:
CSS_SELECTOR("table") \
CSS_PROPERTY("width", "100%") \
CSS_PROPERTY("border-collapse", "collapse") \
- CSS_PROPERTY("margin", "1.5rem 0") \
- CSS_PROPERTY("font-size", "0.92rem") \
+ CSS_PROPERTY("margin", "2rem 0") \
+ CSS_PROPERTY("font-size", "0.9375rem") \
CSS_PROPERTY("background", "var(--bg-surface)") \
CSS_PROPERTY("border", "1px solid var(--border)") \
- CSS_PROPERTY("border-radius", "6px") \
+ CSS_PROPERTY("border-radius", "8px") \
CSS_PROPERTY("overflow", "hidden") \
- CSS_PROPERTY("transition", "background-color 0.3s ease, border-color 0.3s ease") \
CSS_END_SELECTOR() \
CSS_SELECTOR("thead") \
CSS_PROPERTY("background", "var(--table-header)") \
CSS_END_SELECTOR() \
CSS_SELECTOR("th, td") \
- CSS_PROPERTY("padding", "0.7rem 1rem") \
+ CSS_PROPERTY("padding", "0.875rem 1.25rem") \
CSS_PROPERTY("text-align", "left") \
CSS_PROPERTY("border-bottom", "1px solid var(--border)") \
CSS_END_SELECTOR() \
CSS_SELECTOR("th") \
+ CSS_PROPERTY("font-family", "var(--font-mono)") \
CSS_PROPERTY("font-weight", "600") \
- CSS_PROPERTY("color", "var(--text)") \
+ CSS_PROPERTY("font-size", "0.75rem") \
+ CSS_PROPERTY("text-transform", "uppercase") \
+ CSS_PROPERTY("letter-spacing", "0.05em") \
+ CSS_PROPERTY("color", "var(--text-muted)") \
CSS_END_SELECTOR() \
CSS_SELECTOR("tbody tr:nth-child(even)") \
CSS_PROPERTY("background", "var(--table-row-alt)") \
@@ -477,15 +620,14 @@ Copyright:
CSS_END_SELECTOR() \
CSS_COMMENT("Footer") \
CSS_SELECTOR("footer") \
- CSS_PROPERTY("margin-top", "3rem") \
- CSS_PROPERTY("padding", "1.5rem") \
+ CSS_PROPERTY("margin-top", "4rem") \
+ CSS_PROPERTY("padding", "2rem 0") \
CSS_PROPERTY("border-top", "1px solid var(--border)") \
CSS_PROPERTY("background", "transparent") \
CSS_PROPERTY("color", "var(--text-muted)") \
- CSS_PROPERTY("font-size", "0.85rem") \
+ CSS_PROPERTY("font-size", "0.875rem") \
CSS_PROPERTY("text-align", "center") \
CSS_PROPERTY("flex-shrink", "0") \
- CSS_PROPERTY("transition", "border-color 0.3s ease") \
CSS_END_SELECTOR() \
CSS_SELECTOR("footer > span") \
CSS_PROPERTY("display", "flex") \
@@ -496,14 +638,15 @@ Copyright:
CSS_END_SELECTOR() \
CSS_SELECTOR("footer a") \
CSS_PROPERTY("color", "var(--text-muted)") \
+ CSS_PROPERTY("border-bottom", "none") \
CSS_END_SELECTOR() \
CSS_SELECTOR("footer a:hover") \
CSS_PROPERTY("color", "var(--accent)") \
CSS_END_SELECTOR() \
- CSS_SELECTOR(".hearth") \
+ CSS_SELECTOR(".hearth") \
CSS_PROPERTY("display", "inline-flex") \
CSS_PROPERTY("color", "var(--heart)") \
- CSS_PROPERTY("margin", "0 0.15rem") \
+ CSS_PROPERTY("margin", "0 0.25rem") \
CSS_PROPERTY("animation", "pulse 1.5s ease-in-out infinite") \
CSS_END_SELECTOR() \
CSS_SELECTOR("b.author") \
@@ -514,19 +657,17 @@ Copyright:
CSS_KEYFRAMES("pulse") \
CSS_KEYFRAME("0%, 100%") \
CSS_KEYFRAME_PROPERTY("transform", "scale(1)") \
- CSS_KEYFRAME_PROPERTY("opacity", "1") \
CSS_KEYFRAME_END() \
CSS_KEYFRAME("50%") \
- CSS_KEYFRAME_PROPERTY("transform", "scale(1.15)") \
- CSS_KEYFRAME_PROPERTY("opacity", "0.8") \
+ CSS_KEYFRAME_PROPERTY("transform", "scale(1.2)") \
CSS_KEYFRAME_END() \
CSS_KEYFRAMES_END() \
CSS_COMMENT("Image modal") \
CSS_SELECTOR(".modal") \
CSS_PROPERTY("position", "fixed") \
CSS_PROPERTY("inset", "0") \
- CSS_PROPERTY("background", "rgba(0, 0, 0, 0.85)") \
- CSS_PROPERTY("backdrop-filter", "blur(4px)") \
+ CSS_PROPERTY("background", "rgba(0, 0, 0, 0.9)") \
+ CSS_PROPERTY("backdrop-filter", "blur(8px)") \
CSS_PROPERTY("z-index", "10000") \
CSS_PROPERTY("cursor", "zoom-out") \
CSS_PROPERTY("display", "flex") \
@@ -537,8 +678,8 @@ Copyright:
CSS_SELECTOR(".modal img") \
CSS_PROPERTY("max-height", "90vh") \
CSS_PROPERTY("max-width", "95vw") \
- CSS_PROPERTY("border-radius", "8px") \
- CSS_PROPERTY("box-shadow", "0 8px 32px rgba(0,0,0,0.4)") \
+ CSS_PROPERTY("border-radius", "4px") \
+ CSS_PROPERTY("box-shadow", "0 25px 50px rgba(0,0,0,0.5)") \
CSS_PROPERTY("border", "none") \
CSS_PROPERTY("float", "none") \
CSS_PROPERTY("margin", "0") \
@@ -554,26 +695,29 @@ Copyright:
CSS_COMMENT("Horizontal rule") \
CSS_SELECTOR("hr") \
CSS_PROPERTY("border", "none") \
- CSS_PROPERTY("height", "1px") \
- CSS_PROPERTY("background", "var(--border)") \
- CSS_PROPERTY("margin", "2.5rem 0") \
+ CSS_PROPERTY("height", "2px") \
+ CSS_PROPERTY("background", "linear-gradient(90deg, var(--accent) 0%, transparent 100%)") \
+ CSS_PROPERTY("margin", "3rem 0") \
CSS_END_SELECTOR() \
CSS_COMMENT("Lists") \
CSS_SELECTOR("ul, ol") \
CSS_PROPERTY("padding-left", "1.5rem") \
- CSS_PROPERTY("margin", "1rem 0") \
+ CSS_PROPERTY("margin", "1.5rem 0") \
CSS_END_SELECTOR() \
CSS_SELECTOR("li") \
- CSS_PROPERTY("margin-bottom", "0.4rem") \
+ CSS_PROPERTY("margin-bottom", "0.5rem") \
+ CSS_END_SELECTOR() \
+ CSS_SELECTOR("li::marker") \
+ CSS_PROPERTY("color", "var(--accent)") \
CSS_END_SELECTOR() \
CSS_COMMENT("Syntax highlighting - Pandoc classes") \
CSS_SELECTOR("code span.kw") \
CSS_PROPERTY("color", "var(--syn-keyword)") \
- CSS_PROPERTY("font-weight", "600") \
+ CSS_PROPERTY("font-weight", "500") \
CSS_END_SELECTOR() \
CSS_SELECTOR("code span.cf") \
CSS_PROPERTY("color", "var(--syn-control)") \
- CSS_PROPERTY("font-weight", "600") \
+ CSS_PROPERTY("font-weight", "500") \
CSS_END_SELECTOR() \
CSS_SELECTOR("code span.dt") \
CSS_PROPERTY("color", "var(--syn-type)") \
@@ -607,11 +751,11 @@ Copyright:
CSS_PROPERTY("color", "var(--syn-constant)") \
CSS_END_SELECTOR() \
CSS_SELECTOR("code span.al, code span.er") \
- CSS_PROPERTY("color", "#dc2626") \
+ CSS_PROPERTY("color", "#ef4444") \
CSS_PROPERTY("font-weight", "600") \
CSS_END_SELECTOR() \
CSS_SELECTOR("code span.wa") \
- CSS_PROPERTY("color", "#ca8a04") \
+ CSS_PROPERTY("color", "#eab308") \
CSS_PROPERTY("font-style", "italic") \
CSS_END_SELECTOR() \
CSS_SELECTOR("code span.an, code span.in, code span.do") \
@@ -621,65 +765,53 @@ Copyright:
CSS_SELECTOR("code span.ot, code span.at, code span.pp") \
CSS_PROPERTY("color", "var(--syn-special)") \
CSS_END_SELECTOR() \
- CSS_COMMENT("Accent color picker button") \
- CSS_SELECTOR(".accent-picker") \
- CSS_PROPERTY("position", "fixed") \
- CSS_PROPERTY("top", "1.25rem") \
- CSS_PROPERTY("right", "4.5rem") \
- CSS_PROPERTY("width", "2.75rem") \
- CSS_PROPERTY("height", "2.75rem") \
- CSS_PROPERTY("border-radius", "50%") \
- CSS_PROPERTY("border", "1px solid var(--border)") \
- CSS_PROPERTY("background", "var(--accent)") \
- CSS_PROPERTY("cursor", "pointer") \
- CSS_PROPERTY("box-shadow", "var(--shadow)") \
- CSS_PROPERTY("transition", "all 0.2s ease") \
- CSS_PROPERTY("z-index", "1000") \
- CSS_END_SELECTOR() \
- CSS_SELECTOR(".accent-picker:hover") \
- CSS_PROPERTY("transform", "scale(1.1)") \
- CSS_PROPERTY("box-shadow", "var(--shadow-lg)") \
- CSS_END_SELECTOR() \
CSS_COMMENT("Responsive - Tablet") \
"@media (max-width: 900px) {\\n" \
- " body { padding: 0 1rem; }\\n" \
- " img { max-height: 14rem; }\\n" \
- " .zoomable { max-height: 20rem; }\\n" \
- " #title-block-header, #TOC { padding: 1rem 1.25rem; }\\n" \
- " .accent-picker { right: 4rem; width: 2.5rem; height: 2.5rem; }\\n" \
+ " body { padding: 4.5rem 1.5rem 0; }\\n" \
+ " .control-bar { padding: 0 1.5rem; }\\n" \
+ " h1.title { font-size: 2.25rem; }\\n" \
+ " img { max-height: 12rem; }\\n" \
+ " .zoomable { max-height: 18rem; }\\n" \
"}\\n" \
CSS_COMMENT("Responsive - Mobile") \
"@media (max-width: 640px) {\\n" \
- " body { font-size: 0.92rem; padding: 0 0.75rem; }\\n" \
- " h1 { font-size: 1.4rem; }\\n" \
- " h2 { font-size: 1.2rem; }\\n" \
- " h3 { font-size: 1.05rem; }\\n" \
- " h1.title { font-size: 1.3rem; }\\n" \
- " img { float: none; margin: 1rem auto; display: block; max-height: 12rem; }\\n" \
- " blockquote img { max-height: 18rem; }\\n" \
- " .zoomable { max-height: 16rem; max-width: 100%; }\\n" \
- " pre { font-size: 0.8rem; padding: 0.75rem; }\\n" \
- " code { font-size: 0.85em; }\\n" \
- " table { font-size: 0.85rem; }\\n" \
- " th, td { padding: 0.5rem 0.6rem; }\\n" \
- " #title-block-header, #TOC { margin: 1rem 0; padding: 1rem; }\\n" \
- " footer { margin-top: 2rem; padding: 1rem; }\\n" \
- " .theme-toggle { top: 0.6rem; right: 0.6rem; width: 2.25rem; height: 2.25rem; font-size: 1.1rem; }\\n" \
- " .accent-picker { top: 0.6rem; right: 3.25rem; width: 2.25rem; height: 2.25rem; }\\n" \
- " nav#TOC ul { padding-left: 1.25rem; }\\n" \
- " nav#TOC ul li { font-size: 0.9rem; margin-bottom: 0.5rem; }\\n" \
+ " body { font-size: 1rem; padding: 4rem 1rem 0; }\\n" \
+ " .control-bar { padding: 0 1rem; height: 3.25rem; }\\n" \
+ " .control-bar__brand { font-size: 1rem; }\\n" \
+ " .ctrl-btn { width: 2rem; height: 2rem; font-size: 0.875rem; }\\n" \
+ " h1 { font-size: 1.75rem; }\\n" \
+ " h1.title { font-size: 1.75rem; }\\n" \
+ " h2 { font-size: 1.375rem; padding-right: 0; display: block; }\\n" \
+ " h3 { font-size: 1.125rem; }\\n" \
+ " img { float: none; margin: 1.5rem auto; display: block; max-height: 10rem; }\\n" \
+ " blockquote img { max-height: 16rem; }\\n" \
+ " .zoomable { max-height: 14rem; max-width: 100%; }\\n" \
+ " pre { font-size: 0.8125rem; padding: 1rem; }\\n" \
+ " code { font-size: 0.8125em; }\\n" \
+ " table { font-size: 0.875rem; }\\n" \
+ " th, td { padding: 0.625rem 0.875rem; }\\n" \
+ " footer { margin-top: 3rem; padding: 1.5rem 0; }\\n" \
+ " #TOC { padding-left: 1rem; }\\n" \
+ " nav#TOC ul li a { font-size: 0.875rem; }\\n" \
+ " nav#TOC ul ul li a { font-size: 0.8125rem; }\\n" \
"}\\n" \
CSS_COMMENT("Responsive - Small mobile") \
"@media (max-width: 380px) {\\n" \
- " body { font-size: 0.88rem; }\\n" \
- " h1 { font-size: 1.25rem; }\\n" \
- " h1.title { font-size: 1.15rem; }\\n" \
+ " body { font-size: 0.9375rem; padding: 3.75rem 0.75rem 0; }\\n" \
+ " .control-bar { padding: 0 0.75rem; height: 3rem; }\\n" \
+ " .control-bar__brand { font-size: 0.9375rem; }\\n" \
+ " h1 { font-size: 1.5rem; }\\n" \
+ " h1.title { font-size: 1.5rem; }\\n" \
" pre { font-size: 0.75rem; }\\n" \
- " .theme-toggle, .accent-picker { width: 2rem; height: 2rem; font-size: 1rem; }\\n" \
- " .accent-picker { right: 2.75rem; }\\n" \
"}\\n"
#define HEAD_HTML \
+ HTML_RAWTEXT("") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT("") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT("") \
+ HTML_NEWLINE() \
HTML_RAWTEXT("") \
HTML_NEWLINE() \
HTML_RAWTEXT("") \
@@ -698,7 +830,7 @@ Copyright:
HTML_RAWTEXT("var a=localStorage.getItem('accent-preference');") \
HTML_RAWTEXT("if(!t)t=window.matchMedia('(prefers-color-scheme:dark)').matches?'dark':'light';") \
HTML_RAWTEXT("if(t==='dark')document.documentElement.classList.add('dark');") \
- HTML_RAWTEXT("if(a&&a!=='blue')document.documentElement.classList.add('accent-'+a);") \
+ HTML_RAWTEXT("if(a)document.documentElement.classList.add('accent-'+a);") \
HTML_RAWTEXT("})();") \
HTML_TAG_CLOSE("script") \
HTML_NEWLINE()
@@ -736,13 +868,11 @@ Copyright:
#define MAIN_JS \
HTML_RAWTEXT("(function() {") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" // Theme management") \
- HTML_NEWLINE() \
HTML_RAWTEXT(" var THEME_KEY = 'theme-preference';") \
HTML_NEWLINE() \
HTML_RAWTEXT(" var ACCENT_KEY = 'accent-preference';") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" var ACCENTS = ['blue', 'green', 'amber', 'cyan', 'rose'];") \
+ HTML_RAWTEXT(" var ACCENTS = ['green', 'amber', 'cyan', 'rose', 'blue'];") \
HTML_NEWLINE() \
HTML_RAWTEXT(" function getThemePreference() {") \
HTML_NEWLINE() \
@@ -772,11 +902,9 @@ Copyright:
HTML_NEWLINE() \
HTML_RAWTEXT(" }") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" // Accent color management") \
- HTML_NEWLINE() \
HTML_RAWTEXT(" function getAccentPreference() {") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" return localStorage.getItem(ACCENT_KEY) || 'blue';") \
+ HTML_RAWTEXT(" return localStorage.getItem(ACCENT_KEY);") \
HTML_NEWLINE() \
HTML_RAWTEXT(" }") \
HTML_NEWLINE() \
@@ -790,13 +918,17 @@ Copyright:
HTML_NEWLINE() \
HTML_RAWTEXT(" });") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" if (accent !== 'blue') {") \
+ HTML_RAWTEXT(" if (accent) {") \
HTML_NEWLINE() \
HTML_RAWTEXT(" html.classList.add('accent-' + accent);") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" }") \
+ HTML_RAWTEXT(" localStorage.setItem(ACCENT_KEY, accent);") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" localStorage.setItem(ACCENT_KEY, accent);") \
+ HTML_RAWTEXT(" } else {") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" localStorage.removeItem(ACCENT_KEY);") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" }") \
HTML_NEWLINE() \
HTML_RAWTEXT(" }") \
HTML_NEWLINE() \
@@ -804,62 +936,76 @@ Copyright:
HTML_NEWLINE() \
HTML_RAWTEXT(" var current = getAccentPreference();") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" var idx = ACCENTS.indexOf(current);") \
+ HTML_RAWTEXT(" var idx = current ? ACCENTS.indexOf(current) : -1;") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" var next = ACCENTS[(idx + 1) % ACCENTS.length];") \
+ HTML_RAWTEXT(" var nextIdx = (idx + 1) % (ACCENTS.length + 1);") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" var next = nextIdx < ACCENTS.length ? ACCENTS[nextIdx] : null;") \
HTML_NEWLINE() \
HTML_RAWTEXT(" setAccent(next);") \
HTML_NEWLINE() \
HTML_RAWTEXT(" }") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" // Apply preferences immediately") \
- HTML_NEWLINE() \
HTML_RAWTEXT(" setTheme(getThemePreference());") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" setAccent(getAccentPreference());") \
+ HTML_RAWTEXT(" var acc = getAccentPreference();") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" // Create theme toggle button") \
+ HTML_RAWTEXT(" if (acc) setAccent(acc);") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" function createToggle() {") \
+ HTML_RAWTEXT(" function createControlBar() {") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" var btn = document.createElement('button');") \
+ HTML_RAWTEXT(" var bar = document.createElement('div');") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" btn.className = 'theme-toggle';") \
+ HTML_RAWTEXT(" bar.className = 'control-bar';") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" btn.setAttribute('aria-label', 'Toggle theme');") \
+ HTML_RAWTEXT(" var brand = document.createElement('a');") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" btn.setAttribute('title', 'Toggle dark/light mode (Alt+T)');") \
+ HTML_RAWTEXT(" brand.className = 'control-bar__brand';") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" btn.innerHTML = '☀'") \
+ HTML_RAWTEXT(" brand.href = '/index.html';") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" brand.textContent = 'DZONERZY';") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" var actions = document.createElement('div');") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" actions.className = 'control-bar__actions';") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" var accentBtn = document.createElement('button');") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" accentBtn.className = 'ctrl-btn ctrl-btn--accent';") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" accentBtn.setAttribute('aria-label', 'Change accent color');") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" accentBtn.setAttribute('title', 'Cycle accent color (Alt+A)');") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" accentBtn.addEventListener('click', cycleAccent);") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" var themeBtn = document.createElement('button');") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" themeBtn.className = 'ctrl-btn';") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" themeBtn.setAttribute('aria-label', 'Toggle theme');") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" themeBtn.setAttribute('title', 'Toggle dark/light mode (Alt+T)');") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" themeBtn.innerHTML = '☀'") \
HTML_NEWLINE() \
HTML_RAWTEXT(" + '☾';") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" btn.addEventListener('click', toggleTheme);") \
+ HTML_RAWTEXT(" themeBtn.addEventListener('click', toggleTheme);") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" document.body.appendChild(btn);") \
+ HTML_RAWTEXT(" actions.appendChild(accentBtn);") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" actions.appendChild(themeBtn);") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" bar.appendChild(brand);") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" bar.appendChild(actions);") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" document.body.insertBefore(bar, document.body.firstChild);") \
HTML_NEWLINE() \
HTML_RAWTEXT(" }") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" // Create accent picker button") \
- HTML_NEWLINE() \
- HTML_RAWTEXT(" function createAccentPicker() {") \
- HTML_NEWLINE() \
- HTML_RAWTEXT(" var btn = document.createElement('button');") \
- HTML_NEWLINE() \
- HTML_RAWTEXT(" btn.className = 'accent-picker';") \
- HTML_NEWLINE() \
- HTML_RAWTEXT(" btn.setAttribute('aria-label', 'Change accent color');") \
- HTML_NEWLINE() \
- HTML_RAWTEXT(" btn.setAttribute('title', 'Cycle accent color (Alt+A)');") \
- HTML_NEWLINE() \
- HTML_RAWTEXT(" btn.addEventListener('click', cycleAccent);") \
- HTML_NEWLINE() \
- HTML_RAWTEXT(" document.body.appendChild(btn);") \
- HTML_NEWLINE() \
- HTML_RAWTEXT(" }") \
- HTML_NEWLINE() \
- HTML_RAWTEXT(" // Listen for system theme changes") \
- HTML_NEWLINE() \
HTML_RAWTEXT(" window.matchMedia('(prefers-color-scheme: dark)')") \
HTML_NEWLINE() \
HTML_RAWTEXT(" .addEventListener('change', function(e) {") \
@@ -872,7 +1018,35 @@ Copyright:
HTML_NEWLINE() \
HTML_RAWTEXT(" });") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" // Image zoom functionality") \
+ HTML_RAWTEXT(" function setupCollapsibleTOC() {") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" var toc = document.getElementById('TOC');") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" if (!toc) return;") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" var items = toc.querySelectorAll('li').length;") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" if (items < 12) return;") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" toc.classList.add('is-collapsible', 'is-collapsed');") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" var btn = document.createElement('button');") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" btn.className = 'toc-toggle';") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" btn.textContent = 'Show all ' + items + ' sections';") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" btn.addEventListener('click', function() {") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" var collapsed = toc.classList.toggle('is-collapsed');") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" btn.textContent = collapsed ? 'Show all ' + items + ' sections' : 'Collapse';") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" });") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" toc.appendChild(btn);") \
+ HTML_NEWLINE() \
+ HTML_RAWTEXT(" }") \
HTML_NEWLINE() \
HTML_RAWTEXT(" function zoomImages() {") \
HTML_NEWLINE() \
@@ -906,8 +1080,6 @@ Copyright:
HTML_NEWLINE() \
HTML_RAWTEXT(" }") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" // Keyboard shortcuts") \
- HTML_NEWLINE() \
HTML_RAWTEXT(" document.addEventListener('keydown', function(e) {") \
HTML_NEWLINE() \
HTML_RAWTEXT(" if (e.altKey && e.key === 't') toggleTheme();") \
@@ -916,13 +1088,11 @@ Copyright:
HTML_NEWLINE() \
HTML_RAWTEXT(" });") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" // Initialize on DOM ready") \
- HTML_NEWLINE() \
HTML_RAWTEXT(" document.addEventListener('DOMContentLoaded', function() {") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" createToggle();") \
+ HTML_RAWTEXT(" createControlBar();") \
HTML_NEWLINE() \
- HTML_RAWTEXT(" createAccentPicker();") \
+ HTML_RAWTEXT(" setupCollapsibleTOC();") \
HTML_NEWLINE() \
HTML_RAWTEXT(" zoomImages();") \
HTML_NEWLINE() \