From 10e7a2bdb2f151094c6d2ffd9b4882dd40eadc59 Mon Sep 17 00:00:00 2001 From: "russell@unturf.com" Date: Tue, 12 May 2026 08:39:30 -0400 Subject: [PATCH] =?UTF-8?q?docs:=20T16=20=E2=80=94=20themes=20self-contain?= =?UTF-8?q?ed;=20common.css=20is=20the=20built-in=20(embed)=20stylesheet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tickets/16.md | 50 +++++++++++++++++++++++++++++++++++++++++++ docs/tickets/index.md | 1 + 2 files changed, 51 insertions(+) create mode 100644 docs/tickets/16.md diff --git a/docs/tickets/16.md b/docs/tickets/16.md new file mode 100644 index 0000000..62a6d5d --- /dev/null +++ b/docs/tickets/16.md @@ -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. diff --git a/docs/tickets/index.md b/docs/tickets/index.md index 14a3553..d340f7c 100644 --- a/docs/tickets/index.md +++ b/docs/tickets/index.md @@ -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 |