Skip to main content
Docs

12. Pack System & Theming

12.1 The 10 Packs#

SlugVisual Identity
minimalClean, light, neutral
editorialWarm cream, magazine typography
bold-conversionDark + hot orange CTAs
neobrutalistRaw, yellow/orange, hard shadows, no radius
aurora-glassGlassmorphism, dark purple/teal
obsidian-luxuryBlack + Gold, premium serif
retro-futureNeon Magenta/Cyan on Deep-Purple
verdantSage green + warm ochre
enterprise-trustCorporate blue, conservative
kinetic-editorialRed accent, sharp edges

12.2 Token Shape#

Each Pack is an object with ~25 CSS custom property tokens:

{
  background: "0 0% 4%",         // HSL triple without hsl() wrapper
  foreground: "0 0% 96%",
  muted: "0 0% 12%",
  primary: "25 95% 53%",          // bold-conversion: hot orange
  border: "0 0% 16%",
  card: "0 0% 12%",
  "font-sans": "Sora, system-ui, sans-serif",
  "font-display": "Sora, ...",
  radius: "0.5rem",
  // ...
}

In SSR, this becomes :root { --background: 0 0% 4%; ... }. Tailwind then uses bg-background which expands to background-color: hsl(var(--background)). Changing a Pack = just resetting the variables, no new render code.

12.3 Live Pack Switching#

In the editor: Pack dropdown → postMessage(CHANGE_PACK) → Preview applies new tokens → Mermaid diagrams react via getComputedStyle(document.documentElement) → re-init with new theme variables → new colors.#