@@ -10,6 +10,15 @@ in `out/` is served by any static host (GitHub Pages, GitLab Pages, Bitbucket).
1010
1111** Key Features:**
1212- Search over curated repository listing (` repositories.txt ` )
13+ - Dark mode, 100% CSS switching (` components/theme-toggle.jsx ` +
14+ ` plans/css-only-dark-mode.md ` ): three radios (light/dark/system) as the
15+ last ` .menu-bar ` child, palettes selected in ` app/globals.css ` via
16+ ` :root:has(#rf-theme-…:checked) ` + ` prefers-color-scheme ` ; an inline
17+ pre-paint script in ` app/layout.jsx ` only restores/persists the choice
18+ (CSP-hashed by the build). Guards: ` tests/unit/theme-css.test.js ` (the
19+ two dark blocks must stay byte-identical; all hex colors live in the
20+ palette blocks; dark palette passes the same WCAG AA math as
21+ ` tests/unit/css-a11y.test.js ` )
1322- Breadcrumb trail under the menu (` components/breadcrumbs.jsx ` +
1423 ` lib/breadcrumbs.js ` ): mirrors ` /user/repo/branch ` with linked ancestors;
1524 the repo crumb never self-links, and ReportView announces the resolved
@@ -130,6 +139,14 @@ coverage there when introducing new markup patterns.
130139- ** Environment config:** meta tags in ` app/layout.jsx ` (` submission-target ` ,
131140 ` sentry-dsn ` , ` platform-base-url ` ) plus ` NEXT_PUBLIC_HOSTING_ENVIRONMENT `
132141 / ` NEXT_PUBLIC_BASE_PATH ` at build time.
142+ - ** Theming:** see the dark-mode bullet above — the radios in
143+ ` components/theme-toggle.jsx ` are the single source of truth; never add
144+ JS-driven styling. All colors must be custom properties declared only in
145+ the four palette blocks (` :root ` , ` html:root ` mvp overrides, and the two
146+ identical dark blocks) in ` app/globals.css ` ; mvp.css light overrides must
147+ stay on ` html:root ` (mvp loads after the bundle). Report-template
148+ widgets that hardcode light colors are re-driven from ` main#app … `
149+ rules there (the mustache stays byte-identical).
133150
134151## Report Tables (Enhanced)
135152
@@ -178,7 +195,7 @@ coverage there when introducing new markup patterns.
178195
179196## Current Test Count
180197
181- ~ 543 unit/integration + ~ 202 E2E (~ 198 across three browsers + 4 basePath leg).
198+ ~ 584 unit/integration + ~ 229 E2E (~ 202 across three browsers + 4 basePath leg + 27 dark mode ).
182199
183200WCAG 2.2 AA / HTML5 guards live in tests/unit/html5-attributes.test.js,
184201tests/unit/report-template-wcag.test.js, tests/unit/css-a11y.test.js and
0 commit comments