Archilyzer · Source

archilyzer

Archilyzer
git clone https://archilyzer.pages.dev/source/archilyzer.git
Log | Files | Refs | README | LICENSE

commit 4ac9196b7f79f74b45a4c4101f6e40441a23383d
parent 79f29880e3670d01bf68782679c8d8cc136b82ee
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Fri, 25 Sep 2026 22:30:33 -0400

export, common: site-branding checks the server's data-accent; tone.ts names the three bases (brand S2 review)

The live data-accent is also written by ThemeProvider, so it cannot tell the server markup apart. The spec now reads the raw HTML of / (page.request.get) for <html data-accent="custom"> and the inline --accent-custom-light. tone.ts's header still spoke of four theme families × light/dark.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

Diffstat:
Mcommon/views/pipeline/tone.ts | 6+++---
Mexport/e2e/site-branding.spec.ts | 5+++++
2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/common/views/pipeline/tone.ts b/common/views/pipeline/tone.ts @@ -1,9 +1,9 @@ import type { StageTone } from "./stageStatus"; // The line invents no colours. Every value below is one of the semantic tokens -// the repo already carries across four theme families × light/dark -// (common/styles/tokens.css); a bespoke hue here would be wrong in eight -// palettes at once. +// the repo already carries across the three bases, light, sepia and dark +// (common/styles/tokens.css); a bespoke hue here would be wrong on every base +// at once. export const STATION_DOT: Record<StageTone, string> = { // A station with nothing to say is an outline, not a filled dot: "○" in the diff --git a/export/e2e/site-branding.spec.ts b/export/e2e/site-branding.spec.ts @@ -90,6 +90,11 @@ test("per-site accent is baked onto <html> as data-accent", async ({ // site.json sets the custom hex #cc3366: the layout renders // data-accent="custom" plus the hex fitted to each base as inline // --accent-custom-* vars at prerender, so it is right on first paint. + // The live attribute below is also written by ThemeProvider, so it cannot + // tell the server's markup apart; the raw HTML can. + const served = await (await page.request.get("/")).text(); + expect(served).toMatch(/<html[^>]*\sdata-accent="custom"/); + expect(served).toMatch(/<html[^>]*--accent-custom-light:\s*#cc3366/); const html = page.locator("html"); await expect(html).toHaveAttribute("data-accent", "custom"); await expect(html).toHaveAttribute("style", /--accent-custom-light:\s*#cc3366/);