Reference Surface Topology
Created openspec/changes/add-reference-web-dark-mode/specs/reference-surface-topology/spec.mdView on GitHub →
ADDED Requirements
Requirement: Reference web surfaces SHALL support light and dark themes
The PDPP reference web app SHALL support an explicit dark theme alongside its existing light theme, the dashboard SHALL be usable for sustained operator sessions in either theme, and the theme choice SHALL apply to dashboard, docs, and reference public surfaces inside the same browser session.
Scenario: An operator opens the dashboard with the OS in dark mode and no prior preference
- WHEN the operator first loads
/dashboardandlocalStoragecontains no PDPP theme preference and the operating system reportsprefers-color-scheme: dark - THEN the dashboard SHALL render in dark mode on first paint
- AND there SHALL be no visible light-to-dark flash during hydration
Scenario: An operator picks an explicit theme
- WHEN the operator activates the theme toggle and selects light or dark
- THEN the choice SHALL persist across reloads in the same browser
- AND the choice SHALL apply to dashboard, docs, and reference public surfaces in the same session
Scenario: An operator returns to system tracking
- WHEN the operator selects "system" from the theme toggle
- THEN the explicit preference SHALL be cleared
- AND the rendered theme SHALL follow the operating system's
prefers-color-schemevalue, including subsequent OS changes during the session
Requirement: Status colors SHALL remain identifiable in both themes
Dashboard status indicators SHALL remain distinguishable in both light and dark themes. Status indicators (online/offline, success/destructive/warning, verified/unverified) SHALL NOT be conveyed by hue alone where a non-color affordance is reasonably available.
Scenario: An operator scans endpoint health in dark mode
- WHEN the dashboard endpoint footer renders in dark mode
- THEN online and offline endpoints SHALL be distinguishable by indicator shape/position and label, not only by color
- AND the chosen success and destructive token SHALL meet WCAG AA contrast against the dark background for the indicator and label