fix: light emphasis colour so plain Bootstrap tables are readable (#36) #37

Merged
archvillainette merged 1 commits from fix/wiki-manage-table-contrast into main 2026-07-20 11:05:46 +00:00
Owner

Closes #36.

What was wrong

/wiki/manage showed its table in near-black text on the near-black page: the
header row, the tid, Posts and Created columns were effectively invisible.

Root cause

The theme repaints Bootstrap's light colour mode dark ($body-color,
$body-bg, $card-bg, …) but never overrode $body-emphasis-color, which
Bootstrap defaults to $black (#09080b here). Everything that chains to
--bs-emphasis-color inherited that ink:

  • --bs-table-color / -striped- / -hover- / -active- on any plain .table
  • --bs-tooltip-bg (dark text on a dark tooltip)
  • --bs-nav-tabs-link-active-color, --bs-nav-underline-link-active-color
  • --bs-list-group-action-hover-color / -active-color
  • the .text-emphasis / .link-body-emphasis utilities

_controls.scss had already patched this by hand for the two tables anyone had
noticed (notification/table, flags/list) and for post-content tables. Every
other table in the forum was still broken. Fixing the variable once is a smaller
diff than a third per-table patch, and it covers tables that do not exist yet.

The change

One variable in scss/overrides.scss — the file whose stated job is exactly
this — plus a contract test so the next dark-repaint variable that goes missing
fails a check instead of shipping.

Verification

Booted the sow-nodebb dev stack with this working tree mounted
(PLUGIN_PATH=../sow-nodebb-theme), seeded a wiki namespace with topics, and
compared /wiki/manage before and after: unreadable → fully legible, gold rules
and buttons unchanged. Also eyeballed /categories, /notifications,
/user/admin, a topic, /wiki and /flags for regressions — none. The ACP is
unaffected: it builds from admin/overrides, not this file.

All tests/*.test.js pass; the new test fails when the variable is reverted.

Closes #36. ## What was wrong `/wiki/manage` showed its table in near-black text on the near-black page: the header row, the `tid`, `Posts` and `Created` columns were effectively invisible. ## Root cause The theme repaints Bootstrap's **light** colour mode dark (`$body-color`, `$body-bg`, `$card-bg`, …) but never overrode `$body-emphasis-color`, which Bootstrap defaults to `$black` (`#09080b` here). Everything that chains to `--bs-emphasis-color` inherited that ink: - `--bs-table-color` / `-striped-` / `-hover-` / `-active-` on any plain `.table` - `--bs-tooltip-bg` (dark text on a dark tooltip) - `--bs-nav-tabs-link-active-color`, `--bs-nav-underline-link-active-color` - `--bs-list-group-action-hover-color` / `-active-color` - the `.text-emphasis` / `.link-body-emphasis` utilities `_controls.scss` had already patched this by hand for the two tables anyone had noticed (`notification/table`, `flags/list`) and for post-content tables. Every other table in the forum was still broken. Fixing the variable once is a smaller diff than a third per-table patch, and it covers tables that do not exist yet. ## The change One variable in `scss/overrides.scss` — the file whose stated job is exactly this — plus a contract test so the next dark-repaint variable that goes missing fails a check instead of shipping. ## Verification Booted the `sow-nodebb` dev stack with this working tree mounted (`PLUGIN_PATH=../sow-nodebb-theme`), seeded a wiki namespace with topics, and compared `/wiki/manage` before and after: unreadable → fully legible, gold rules and buttons unchanged. Also eyeballed `/categories`, `/notifications`, `/user/admin`, a topic, `/wiki` and `/flags` for regressions — none. The ACP is unaffected: it builds from `admin/overrides`, not this file. All `tests/*.test.js` pass; the new test fails when the variable is reverted.
archvillainette added 1 commit 2026-07-20 08:16:07 +00:00
/wiki/manage rendered its table in near-black on the near-black page.
The theme repaints Bootstrap's LIGHT colour mode dark but never overrode
$body-emphasis-color, which Bootstrap defaults to $black. Any component
that chains to --bs-emphasis-color inherited that ink: plain .table text
and header cells, tooltips (dark text on dark background), nav-tabs and
nav-underline active links, and list-group hover states.

Point it at $wg-text, next to the other body colour overrides, instead of
patching .table per page. Verified in the sow-nodebb dev stack against a
seeded wiki namespace: the manage table, topics, categories, notifications
and account pages all render correctly.

Also refresh AGENTS.md "How To Test" for the current `make dev*` loop and
state that a theme change can always be checked on a live local forum.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
archvillainette scheduled this pull request to auto merge when all checks succeed 2026-07-20 11:05:19 +00:00
xtul approved these changes 2026-07-20 11:05:44 +00:00
archvillainette merged commit 985ff0755d into main 2026-07-20 11:05:46 +00:00
archvillainette deleted branch fix/wiki-manage-table-contrast 2026-07-20 11:05:46 +00:00
Sign in to join this conversation.