docs: T16 — themes self-contained; common.css is the built-in (embed) stylesheet

This commit is contained in:
russell@unturf.com 2026-05-12 08:39:30 -04:00
parent 89679fd784
commit 10e7a2bdb2
No known key found for this signature in database
2 changed files with 51 additions and 0 deletions

50
docs/tickets/16.md Normal file
View file

@ -0,0 +1,50 @@
# T16 — Themes must be self-contained; `common.css` is the built-in (embed) stylesheet
**Status:** open
**Priority:** medium
**Source:** fox directive 2026-05-12 (after chaostheory palette leaked into meta via `common.css`, fixed in `89679fd` + theme `37c496f`)
## Problem
Every base template — `base.j2`, `meta-base.j2`, `chaostheory-base.j2` — includes
`snippets/stylesheet-includes.j2`, which loads `/static/css/common.css`. So a meta
page and a chaostheory page both pull the same shared stylesheet. When `common.css`
carries palette or visual assumptions (as it did after `68ca0ef`), those bleed into
every theme. A meta page should load only meta CSS; a chaostheory page should load
only chaostheory CSS.
The intent: **`common.css` (+ `embed.css`) is the "built in" — the styling for embed
mode and unthemed namespaces (`base.j2`)**. Full themes are standalone (their base
templates already "extend nothing"); they should ship a complete stylesheet and not
piggyback on the built-in.
## Why it's not a one-line change
The themes are not currently self-contained. They depend on behavioral CSS in
`common.css`, e.g. chaostheory's `theme.css` notes *"Reply form inside node —
display:none owned by common.css"*. Ripping `common.css` out of the themed templates
today would break reply-form toggles, the burger/phone menu, alerts, node action
rows, etc.
## Plan
1. Inventory which `common.css` rules each theme actually relies on (behavioral:
`display:none` toggles, `.toggle-open`, burger menu, AJAX states; structural:
`.node`, `.remark-box-div`; visual: alerts, wells, `.question-mark-circle`).
2. Move the rules each theme needs into that theme's own CSS (`meta.css`,
`remarkbox-theme-chaostheory/theme.css`). Keep them theme-local.
3. Split `stylesheet-includes.j2` (or add a `theme_stylesheet_includes` block) so
`meta-base.j2` / `chaostheory-base.j2` load only `pygments.css`,
`dynamic-remarkbox.css`, the per-namespace stylesheet, and their own theme CSS —
not `common.css`.
4. `base.j2` keeps `common.css`; `common.css` + `embed.css` become the documented
"built-in / embed" stylesheet. Add a header comment to `common.css` saying so.
5. Regression-check: embed mode, default (unthemed) namespace, meta (meta.remarkbox.com,
faq.remarkbox.com), chaostheory (foxhop.net), light + dark mode, reply-form toggle,
burger menu, flash alerts, `?` help circles.
## Done when
Loading a meta page pulls zero chaostheory CSS and zero chaostheory-flavored rules
from `common.css`, and vice versa; embed/default still styled by `common.css`; all
regression points above verified.

View file

@ -20,3 +20,4 @@ Tracked issues from the meta.remarkbox.com and faq.remarkbox.com audit (2026-02-
| [T13](13.md) | Reply to lock/archive thread confirming done | resolved | low | meta `7e9d5864` |
| [T14](14.md) | meta/faq SSL outage — missing proxy blocks | resolved | critical | postmortem 2026-02-25 |
| [T15](15.md) | Operation Undigg — Pandoc export & wiki mode | resolved | high | fox directive 2026-03-09 |
| [T16](16.md) | Themes self-contained; `common.css` is the built-in (embed) stylesheet | open | medium | fox directive 2026-05-12 |