From 5b53dc2726867538c15bc0f9c8245afa80d2b0d1 Mon Sep 17 00:00:00 2001 From: AJ Barea Date: Sun, 20 Sep 2026 14:50:48 -0400 Subject: [PATCH] docs(impl): record the hero brief, and why the layout waits on it The landing page centres its copy because the artwork is square and symmetric. The legibility fix made that copy readable, but a veil dense enough to carry text also dims the art beneath it, so the real fix is an image with empty ground to set type on. Records the prompt, the three files a regeneration has to produce, and the CSS that changes once one exists. The aspect ratio is the load-bearing part: a 1:1 source forecloses a left-aligned column whatever is drawn in it. --- IMPL.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/IMPL.md b/IMPL.md index d66290f5b..e09981d86 100644 --- a/IMPL.md +++ b/IMPL.md @@ -15,6 +15,56 @@ lines. --- +## Blocked on an asset: a hero that leaves room for the words + +The landing page centres its copy because the artwork is square and symmetric, which +leaves nowhere clean to set a left-aligned column. The legibility fix (2026-09-20) +made the copy readable over it, but a veil dense enough to carry text is also dense +enough to dim the art it covers. The sister sites that read best (periplus, ariadne) +put the copy left and the art right, on deliberately empty ground. + +Replacing the art is what unblocks that layout. Regenerating it needs three files, +not one: + +| file | current | needed | used by | +|---|---|---|---| +| `docs/assets/phalanx-hero.png` | 1678x1641 | ~2560x1440 | dark scheme, `extra.css:54` | +| `docs/assets/phalanx-hero-light.png` | 734x740 | ~2560x1440 | light scheme, `extra.css:29` | +| `docs/assets/phalanx-og.png` | 1200x630 | 1200x630 | social card, `overrides/main.html:17` | + +The aspect ratio is the load-bearing part. `background: ... / contain` on a square +image letterboxes it in a wide viewport, and a square frame cannot hold an empty +left third, so a 1:1 source forecloses the layout no matter what is drawn in it. + +### Prompt + +> Isometric view of a dark field of many small identical compute nodes arranged in +> loose phalanx formation, each emitting a thin luminous telemetry trace; the traces +> converge rightward and braid into a single ribbon of light. Deep slate-teal base, +> emission only in cyan and violet. The left third of the frame falls off to +> near-black empty space with no detail. Cinematic depth of field, subtle volumetric +> haze. No shields, no crests, no heraldry, no faces, no symmetry, no text. + +For the light variant, the same scene on a pale ground: near-white empty left third, +the nodes and traces in the same cyan and violet at higher saturation so they hold +against the paler field. + +Two things the prompt is deliberately steering away from. The current art reads as +heraldry rather than as *many clients, telemetry, aggregation*, which is what the +system does; and its symmetry is what forces the centred type. The palette stays on +the existing `--intefl-teal` / `--intefl-purple` tokens so the page does not have to +be recoloured around a new image. + +### When the asset lands + +`extra.css` needs the hero switched from `center 48px / contain` to a right-anchored +`cover`, the flex container from `align-items: center` to `flex-start`, and the copy +column capped near `min(34rem, 42%)` with a scrim measured from that column's edge +rather than from a share of the viewport — the mistake that made ariadne's hero +unreadable, fixed there in ariadne#46. + +--- + ## Open bugs & findings ### Dependabot: 5 open alerts are upstream pins in flwr 1.36.0 (2026-09-13)