feat(dashboard): add 'default-large' built-in theme with 18px base size (#20820)

Same Hermes Teal palette as the default theme, but with baseSize 18px,
lineHeight 1.65, and spacious density so the whole dashboard scales up.
Gives users a one-click bigger-text preset and a copyable reference for
authoring custom YAML themes with their own typography settings.
This commit is contained in:
Teknium 2026-05-06 09:10:44 -07:00 committed by GitHub
parent a24789d738
commit 6388aafbd6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 27 additions and 2 deletions

View file

@ -3260,8 +3260,9 @@ def mount_spa(application: FastAPI):
# Built-in dashboard themes — label + description only. The actual color # Built-in dashboard themes — label + description only. The actual color
# definitions live in the frontend (web/src/themes/presets.ts). # definitions live in the frontend (web/src/themes/presets.ts).
_BUILTIN_DASHBOARD_THEMES = [ _BUILTIN_DASHBOARD_THEMES = [
{"name": "default", "label": "Hermes Teal", "description": "Classic dark teal — the canonical Hermes look"}, {"name": "default", "label": "Hermes Teal", "description": "Classic dark teal — the canonical Hermes look"},
{"name": "midnight", "label": "Midnight", "description": "Deep blue-violet with cool accents"}, {"name": "default-large", "label": "Hermes Teal (Large)", "description": "Hermes Teal with bigger fonts and roomier spacing"},
{"name": "midnight", "label": "Midnight", "description": "Deep blue-violet with cool accents"},
{"name": "ember", "label": "Ember", "description": "Warm crimson and bronze — forge vibes"}, {"name": "ember", "label": "Ember", "description": "Warm crimson and bronze — forge vibes"},
{"name": "mono", "label": "Mono", "description": "Clean grayscale — minimal and focused"}, {"name": "mono", "label": "Mono", "description": "Clean grayscale — minimal and focused"},
{"name": "cyberpunk", "label": "Cyberpunk", "description": "Neon green on black — matrix terminal"}, {"name": "cyberpunk", "label": "Cyberpunk", "description": "Neon green on black — matrix terminal"},

View file

@ -183,8 +183,30 @@ export const roseTheme: DashboardTheme = {
}, },
}; };
/**
* Same look as ``defaultTheme`` but with a larger root font size, looser
* line-height, and ``spacious`` density so every rem-based size in the
* dashboard scales up. For users who find the default 15px UI too dense.
*/
export const defaultLargeTheme: DashboardTheme = {
name: "default-large",
label: "Hermes Teal (Large)",
description: "Hermes Teal with bigger fonts and roomier spacing",
palette: defaultTheme.palette,
typography: {
...DEFAULT_TYPOGRAPHY,
baseSize: "18px",
lineHeight: "1.65",
},
layout: {
...DEFAULT_LAYOUT,
density: "spacious",
},
};
export const BUILTIN_THEMES: Record<string, DashboardTheme> = { export const BUILTIN_THEMES: Record<string, DashboardTheme> = {
default: defaultTheme, default: defaultTheme,
"default-large": defaultLargeTheme,
midnight: midnightTheme, midnight: midnightTheme,
ember: emberTheme, ember: emberTheme,
mono: monoTheme, mono: monoTheme,

View file

@ -265,6 +265,7 @@ Each built-in ships its own palette, typography, and layout — switching produc
| Theme | Palette | Typography | Layout | | Theme | Palette | Typography | Layout |
|-------|---------|------------|--------| |-------|---------|------------|--------|
| **Hermes Teal** (`default`) | Dark teal + cream | System stack, 15px | 0.5rem radius, comfortable | | **Hermes Teal** (`default`) | Dark teal + cream | System stack, 15px | 0.5rem radius, comfortable |
| **Hermes Teal (Large)** (`default-large`) | Same as default | System stack, 18px, line-height 1.65 | 0.5rem radius, spacious |
| **Midnight** (`midnight`) | Deep blue-violet | Inter + JetBrains Mono, 14px | 0.75rem radius, comfortable | | **Midnight** (`midnight`) | Deep blue-violet | Inter + JetBrains Mono, 14px | 0.75rem radius, comfortable |
| **Ember** (`ember`) | Warm crimson + bronze | Spectral (serif) + IBM Plex Mono, 15px | 0.25rem radius, comfortable | | **Ember** (`ember`) | Warm crimson + bronze | Spectral (serif) + IBM Plex Mono, 15px | 0.25rem radius, comfortable |
| **Mono** (`mono`) | Grayscale | IBM Plex Sans + IBM Plex Mono, 13px | 0 radius, compact | | **Mono** (`mono`) | Grayscale | IBM Plex Sans + IBM Plex Mono, 13px | 0 radius, compact |

View file

@ -334,6 +334,7 @@ Built-in themes:
| Theme | Character | | Theme | Character |
|-------|-----------| |-------|-----------|
| **Hermes Teal** (`default`) | Dark teal + cream, system fonts, comfortable spacing | | **Hermes Teal** (`default`) | Dark teal + cream, system fonts, comfortable spacing |
| **Hermes Teal (Large)** (`default-large`) | Same as default with 18px text and roomier spacing |
| **Midnight** (`midnight`) | Deep blue-violet, Inter + JetBrains Mono | | **Midnight** (`midnight`) | Deep blue-violet, Inter + JetBrains Mono |
| **Ember** (`ember`) | Warm crimson + bronze, Spectral serif + IBM Plex Mono | | **Ember** (`ember`) | Warm crimson + bronze, Spectral serif + IBM Plex Mono |
| **Mono** (`mono`) | Grayscale, IBM Plex, compact | | **Mono** (`mono`) | Grayscale, IBM Plex, compact |