Archilyzer · Source

archilyzer

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

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:
Mplans/brand-and-themes.md | 57+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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.