commit a81d82bb2be26a4ea4606e71ef5ac1fe0f91d051
parent c0e6bbbabb2c835d10460b6f93ed333ac16a2a3d
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date: Fri, 25 Sep 2026 21:15:52 -0400
plans: brand — Archilyzer Media proposed (the YouTube channel): canvas row, mark/lockup options, asset specs, umtool preset, S4 outline; awaiting the operator's picks
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Diffstat:
1 file changed, 57 insertions(+), 0 deletions(-)
diff --git a/plans/brand-and-themes.md b/plans/brand-and-themes.md
@@ -579,3 +579,60 @@ operator picks an accent or a lead.
4. Build and deploy every site: `pnpm ops build-deploy --json '{"siteIds":[…]}' --wait`; then the
hub (`pnpm ops build-hub --json '{"deploy":true}' --wait`) and the homepage
(`archilyzer deploy homepage`).
+
+## Proposed — Archilyzer Media, the YouTube channel (awaiting the operator's picks)
+
+Asked 2026-09-25: branding for **Archilyzer Media**, the operator's YouTube channel for the
+videos. It is a new row on the canvas, "Archilyzer Media · the YouTube channel" (canvas
+version 10), with three boards: *Media · mark + lockup*, *Media · the channel* and *Media · in
+the video*. The generators are `gen.py` and `gen_media.py` beside the staging dir
+(`node_modules/.brand-canvas/`); `gen_media.py` takes the live `canvas.json` it read as its
+argument.
+
+**Open choices** (recommendation first):
+- **Mark.**
+ - **M2 · Signal:** the parent mark, graphite and dim, with the found line and play head lit in
+ Signal `#5fa8a0`.
+ - **M1 · Bone:** the parent mark unchanged.
+
+ At 40 px in a subscription list, bone on graphite reads as a blank grey avatar. Signal is
+ Archilyzer's own accent, so the channel speaks as the project rather than as any one site,
+ and it does not fight YouTube's red.
+- **Lockup.**
+ - **Imprint:** the `Archi|lyzer` wordmark over a `MEDIA` tag (Plex Mono 500, tracked
+ 0.24em, in the accent).
+ - **Inline:** `Archi|lyzer Media`, with "Media" in the suffix weight.
+
+**The channel assets.** YouTube's specs were checked 2026-09-25.
+
+| Asset | Size | Design |
+|---|---|---|
+| Profile picture | 800×800 PNG, rendered as a 98 px circle | `markSvg` maskable (scale 0.8 keeps the farthest corner at 69% of the circle's radius) |
+| Banner | 2560×1440 PNG ≤ 6 MB. Every device shows only the centre 1546×423; desktop shows 2560×423, tablet 1855×423 | A field of dim transcript lines wrapping around a clear safe area, the lockup centred in it, and one lit found line in the desktop strip |
+| Watermark (Studio) | 150×150 PNG | `markSvg` any |
+| Thumbnail template | 1280×720 | The still on the left; the headline (Archivo 118%, 800) and a found line on the right; the mark top-left; the bottom-right kept clear for YouTube's duration badge |
+
+**In the video** (`umtool/report-to-video`).
+- **Today:**
+ - The cards are drawn with ImageMagick + Pango (`render-cards.mjs`), and the clip header
+ with ffmpeg `drawtext` (`build-video.mjs`).
+ - Colours come from the manifest's `render.palette`; fonts come from `render.fontRegular` /
+ `render.fontBold`.
+ - "Fira Sans" is the hardcoded default in `span()`.
+ - Nothing is burned in.
+- **Proposed:**
+ - A `brand` preset: ground `#151b20`, fg `#e7edf1`, muted `#8496a2`, accent Signal.
+ - The mark leads the existing `Channel · title · date @ time` header. It is burned in, so
+ reposts keep it.
+ - A title card and an end card that carry the lockup, the end card with slots for the
+ end-screen elements.
+- **Fonts:** this needs Archivo and IBM Plex installed as system fonts; neither is on this
+ machine. `ttf-ibm-plex` is in Arch's extra repo. Archivo's variable TTF comes from Google
+ Fonts, into `~/.local/share/fonts`. Pango takes `@wdth=118` variations.
+
+**Slice S4, after S1** (it reuses `markSvg` and S1's PNG renderer):
+- `common/bin/brand-icons.ts --youtube <dir>` writes the profile picture, banner and watermark.
+ The banner's text needs Archivo at exactly 118%: a static instance (fontTools `instancer`)
+ for satori, or installed fonts for `rsvg-convert`.
+- The umtool preset.
+- The operator claims the handle and uploads the assets.