← Commit history

dev skill: scrim root cause + alignment

John Lauer ·e4c621249a ·2mo ago ·parent f8e74e4
1 file changed +20−7
dev-skills/fusion-hero/SKILL.md+20−7
@@ -80,8 +80,8 @@ window sized 1822x1793 logical = 2734x2690 physical, captured at 1568x1543. |---|---| | Background | `radial-gradient(1100px 750px at 92% -8%, rgba(0,184,177,.16), transparent 60%), linear-gradient(155deg,#0a0e14,#0d1117 48%,#0a1216)` | | ADOM wordmark | left 64, top 51, height 40, white SVG |-| Title | Familjen Grotesk 700, 235px, letter-spacing -7px, #eef3f8, at (64,128) |-| Subtitle | Satoshi 400, 35px, at (68,405), one line, accent `linear-gradient(100deg,#39b8ff,#5ea0f2 60%,#8c6bf7)` text-clipped |+| Title | Familjen Grotesk 700, 235px, letter-spacing -7px, #eef3f8, box at (50,128) so the F's 14px side bearing lands the INK at 64 |+| Subtitle | Satoshi 400, 35px, box at (64,405), one line, accent `linear-gradient(100deg,#39b8ff,#5ea0f2 60%,#8c6bf7)` text-clipped | | BRIDGE pill | top 42, right 42, bg #7ce0d3, radius 999, padding 10x22, Familjen 700 16px ls 2.4, color #0b2723 | | Vitrine | left 807, top 171, width 751, height 739 (img width:100%, NO object-fit), radius 12, shadow `0 30px 90px rgba(0,0,0,.66), 0 0 0 1px rgba(255,255,255,.08)` | @@ -98,12 +98,18 @@ every render before shipping; the margin failures were all invisible in code. 2. Stage the PNG: `hero-studio vitrine --file screenshots/hero.png --full --port <p>`.    Verify by sha: state.vitrine.src bytes == local file. Restage after every revision;    the open gate updates live.-3. **Before the human clicks Generate, force BOTH:**-   `hero-studio set marqueePreview=false overlay.pill=false --port <p>`+3. **Before the human clicks Generate, force ALL THREE:**+   `hero-studio set layout=contained marqueePreview=false overlay.pill=false --port <p>`+   - **layout=contained is the critical one.** The default `showcase` layout composites+     its gradient SCRIM over a full-hero import and BAKES it into the export: the first+     approved export shipped with dimmed title/wordmark/subtitle while the vitrine stayed+     bright. Cost a full human re-review round to root-cause (hero-studio bug).    - overlay.pill=true bakes the studio's type pill next to our BRIDGE chip = two pills.-   - marqueePreview=true BAKES THE PREVIEW DIM SCRIM into the export despite the UI's-     "never exported" promise (hero-studio bug, cost us a full re-review round: the-     first approved export shipped with dimmed title/wordmark/subtitle).+   - marqueePreview off is hygiene; it was NOT the dim culprit (it was already off when+     the dim export happened).+   Then PROVE fidelity before wasting a human click: `POST /generate {"renderer":"local"}`+   is sanctioned for testing; pixel-diff the test export against the staged PNG+   (mean abs diff under ~1.0 and equal title-zone brightness = faithful). 4. If the page title changed since pose: `POST /api/pages` upsert, or the marquee band    previews stale data. 5. Signal the human by flashing: ab's `desktop_flash_window {hwnd}` directly.@@ -122,3 +128,10 @@ adom-wiki repo push adom/fusion-bridge --files page.json -m "page.json LAST"  Same `screenshots/hero.png` path every revision so the URL stays stable. Always push a COMPLETE page.json LAST; a stale one clobbers the page title (done once, restored).++## Optical alignment (measure ink, not boxes)++Left-align the wordmark, title, and subtitle by their INK pixels, not their CSS boxes:+glyph side bearings differ per font and size (the 235px Familjen F carries ~14px). After+every render, scan each element's leftmost ink column at export scale and adjust the+boxes until all three land within ~2px. The approved hero: all three at 80px (2000-wide).