Summary
Request from W4CL Charles (Discord): the default all-dark Meshpoint local dashboard is hard to read even with display brightness and contrast turned up. A Day mode (or user-selectable light theme) would improve accessibility for operators who struggle with low-contrast dark UIs.
Problem
- Default theme is a deep navy/black palette (
frontend/css/dashboard.css :root tokens).
- Users with vision sensitivity, bright ambient light, or high-glare screens report difficulty distinguishing text, borders, and chart elements.
- Turning up monitor brightness/contrast helps only so much when foreground/background contrast on the dashboard itself stays low.
Current behavior (v0.7.6)
The dashboard already has a theme controller (frontend/js/theme_controller.js) with three modes:
| Theme |
Notes |
dark |
Default |
high-contrast |
Brighter text and accent strokes; background still very dark |
sunlight |
Slightly lifted backgrounds for outdoor glare; still a dark palette, not a true light/day mode |
Themes are switched via the command palette only (Cycle theme (dark / high-contrast / sunlight) in app.js). There is no Settings UI picker and no persisted light-background option.
Proposed direction
- Add a Day / light theme (or rename/clarify
sunlight if it should serve this role) with light --bg-primary / --bg-secondary, dark text, and accessible contrast on panels, tables, charts, and the map chrome.
- Expose theme selection in Settings (dropdown or segmented control), not only the command palette.
- Keep existing dark + high-contrast modes; honor
prefers-contrast / consider prefers-color-scheme where sensible.
- Follow
docs/DESIGN-SYSTEM.md: reuse canonical tokens in :root overrides (no parallel palette namespace).
Out of scope (for this issue)
- Full user-defined accent color picker / arbitrary themes.
- Meshradar cloud dashboard theming (separate codebase).
Acceptance ideas
- User can pick Day mode from Settings and it persists across reloads.
- Primary text, stat cards, packet table, Messages, Configuration, and Stats remain readable without OS-level display hacks.
- Map tile layer choice for Day mode is considered (current map uses Carto dark tiles in
node_map.js).
Reporter
W4CL Charles (Discord community)
Summary
Request from W4CL Charles (Discord): the default all-dark Meshpoint local dashboard is hard to read even with display brightness and contrast turned up. A Day mode (or user-selectable light theme) would improve accessibility for operators who struggle with low-contrast dark UIs.
Problem
frontend/css/dashboard.css:roottokens).Current behavior (v0.7.6)
The dashboard already has a theme controller (
frontend/js/theme_controller.js) with three modes:darkhigh-contrastsunlightThemes are switched via the command palette only (
Cycle theme (dark / high-contrast / sunlight)inapp.js). There is no Settings UI picker and no persisted light-background option.Proposed direction
sunlightif it should serve this role) with light--bg-primary/--bg-secondary, dark text, and accessible contrast on panels, tables, charts, and the map chrome.prefers-contrast/ considerprefers-color-schemewhere sensible.docs/DESIGN-SYSTEM.md: reuse canonical tokens in:rootoverrides (no parallel palette namespace).Out of scope (for this issue)
Acceptance ideas
node_map.js).Reporter
W4CL Charles (Discord community)