Chronos Atlas uses a fully dynamic, CSS-variable-driven color system. Every color in the application — backgrounds, text, borders, accents, and canvas surfaces — is expressed as a semantic token. Switching between themes or toggling light/dark mode requires only a CSS class change on the root element; no component code needs to change.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Fixius50/WorlBuilding-Writting-App/llms.txt
Use this file to discover all available pages before exploring further.
Light and Dark Mode
Theme variants are applied by setting a CSS class on the root element. Dark themes use the.dark or .theme-dark class; each named theme has its own dark and light variant classes:
| Class | Mode |
|---|---|
.dark / .theme-dark | Generic dark mode |
.theme-deep_space | Deep Space — dark |
.theme-deep_space_light | Deep Space — light |
.theme-nebula | Nebula — dark |
.theme-nebula_light | Nebula — light |
.theme-writer | Writer — dark |
.theme-writer_light | Writer — light |
"nebula_light") is persisted to SQLite and applied on application load.
The base (:root) token set defines the light theme default — a soft emerald-green accent on a pure white background:
.dark / .theme-dark variant switches to a near-black base with an indigo accent:
hsl() wrapper), which allows Tailwind’s opacity modifier syntax — hsl(var(--background) / 0.5) — to work without any workaround.
Named Theme Variants
Each named theme defines its own--background, --foreground, and --primary values independently for the dark and light modes.
Deep Space
Nebula
Writer
The Writer theme is fully monochromatic — it strips all saturation for a pure ink-on-paper aesthetic:Color Tokens
Beyond the foundational four, each theme defines a full palette of semantic color tokens. These tokens back thetext-*, bg-*, and border-* classes used throughout the component layer.
StatCard accent colors in Analytics, and drive badge/tag colors across the World Bible. The Writer theme overrides all color tokens to desaturated grays for a pure monochrome aesthetic:
Layer Opacity System
Rather than hard-coding semi-transparent or muted colors, Chronos Atlas uses theforeground/X opacity pattern everywhere. This means the same markup works across all themes because it reads the current --foreground value (which is already inverted for light vs dark) and applies an opacity fraction.
| Tailwind class | Usage |
|---|---|
bg-foreground/5 | Hover backgrounds, subtle fills |
bg-foreground/10 | Secondary backgrounds |
border-foreground/10 | Default hairline borders |
border-foreground/20 | Sunken panel borders |
border-foreground/40 | Primary panel borders (--panel-border) |
text-foreground/40 | Muted meta-text, labels |
text-foreground/60 | Secondary text |
* rule:
Avoid hard-coding hex colors (
#rrggbb or bg-[#xxx]) in components. Always use CSS variable tokens for proper theme switching. Hard-coded hex values will not invert between light and dark modes and will appear broken on themes other than the one they were tested against.Canvas Tokens
The Map and Graph canvas components (built on Konva / custom SVG) cannot use Tailwind classes directly on canvas elements. Instead, they read raw HSL channel values from a set of dedicated canvas tokens, which are also defined in the* rule:
getComputedStyle(element).getPropertyValue('--canvas-node-stroke') and passes the resolved HSL string directly to Konva fill/stroke properties. This ensures the graph and map canvases theme-switch correctly alongside the rest of the UI.
World Bible Card Tokens
A second group of specialty tokens powers the card grid in the World Bible:.dark, .theme-dark, .theme-deep_space, .theme-nebula, .theme-writer) override --bible-card-image-blend to screen so that entity portrait images composite correctly against the dark background without appearing washed out.