Skip to content

Feature: Day mode / light theme option for local dashboard #75

@KMX415

Description

@KMX415

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

  1. 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.
  2. Expose theme selection in Settings (dropdown or segmented control), not only the command palette.
  3. Keep existing dark + high-contrast modes; honor prefers-contrast / consider prefers-color-scheme where sensible.
  4. 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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions