From 89d2d0128e41c6752bf4b69987975cb2217d824b Mon Sep 17 00:00:00 2001 From: John Coffey Date: Tue, 25 Aug 2026 10:35:33 -0700 Subject: [PATCH] Make the light screenshot actually light The light inbox screenshot in the README was not light, and had not been since it was first taken -- the pair showed the dark theme twice. The app was never at fault: update() calls applyTheme() synchronously and the CSS flips --bg to #f6f8fa as it should. The capture was. Swapping the theme under setDeviceMetricsOverride produces a mixed frame, the panes that re-rendered in the new theme and the rest of the chrome still in the old one, while the DOM and computed styles insist the whole page is light. Clicking the app's own toggle, setting the attribute, pinning it against applyTheme with a MutationObserver, installing that pin before the document loads, nudging the viewport and forcing a full reflow all left the frame mixed. Chrome launched at --window-size, with the emulation layer never touched, renders it correctly. That is docs/screenshots-light.mjs, and inbox-light.jpg is now genuinely light. assertTheme() stays: without it the script wrote a dark screenshot under a light caption and reported success, which is how this survived unnoticed. The header says which shots are taken elsewhere and why. --- docs/screenshots-light.mjs | 75 ++++++++++++++++++++++ docs/screenshots.mjs | 106 ++++++++++++++++++++++++------- docs/screenshots/inbox-light.jpg | Bin 126036 -> 126041 bytes 3 files changed, 158 insertions(+), 23 deletions(-) create mode 100644 docs/screenshots-light.mjs diff --git a/docs/screenshots-light.mjs b/docs/screenshots-light.mjs new file mode 100644 index 0000000..3b3e401 --- /dev/null +++ b/docs/screenshots-light.mjs @@ -0,0 +1,75 @@ +/** + * The light inbox shot, with no Emulation.setDeviceMetricsOverride at all -- + * the window is simply launched at the size we want. The emulation layer is the + * prime suspect for the mixed-theme frames every other approach produced. + */ +import { spawn } from "node:child_process"; +import { writeFile } from "node:fs/promises"; +import { setTimeout as sleep } from "node:timers/promises"; + +const OUT = process.argv[2] ?? "."; +const PORT = 9334; +const chrome = spawn("google-chrome-stable", [ + "--headless=new", `--remote-debugging-port=${PORT}`, "--hide-scrollbars", + "--no-first-run", "--no-default-browser-check", + "--window-size=1420,790", "--force-device-scale-factor=1", + "--user-data-dir=/tmp/claude-light-profile", "about:blank", +], { stdio: "ignore" }); + +const json = async (p) => { for (let i = 0; i < 60; i++) { try { return await (await fetch(`http://127.0.0.1:${PORT}${p}`)).json(); } catch { await sleep(250); } } throw new Error("no chrome"); }; +const version = await json("/json/version"); +let id = 1; const pending = new Map(); +const ws = new WebSocket(version.webSocketDebuggerUrl); +await new Promise((r, j) => { ws.onopen = r; ws.onerror = j; }); +ws.onmessage = (m) => { const x = JSON.parse(m.data); if (x.id && pending.has(x.id)) { const { resolve, reject } = pending.get(x.id); pending.delete(x.id); x.error ? reject(new Error(JSON.stringify(x.error))) : resolve(x.result); } }; +const send = (method, params = {}, sessionId) => new Promise((resolve, reject) => { const i = id++; pending.set(i, { resolve, reject }); ws.send(JSON.stringify({ id: i, method, params, ...(sessionId ? { sessionId } : {}) })); }); + +const { targetId } = await send("Target.createTarget", { url: "about:blank" }); +const { sessionId } = await send("Target.attachToTarget", { targetId, flatten: true }); +const cmd = (m, p) => send(m, p, sessionId); +await cmd("Page.enable"); await cmd("Runtime.enable"); +const evaluate = async (expression) => { + const r = await cmd("Runtime.evaluate", { expression, awaitPromise: true, returnByValue: true }); + if (r.exceptionDetails) throw new Error(r.exceptionDetails.exception?.description ?? "eval failed"); + return r.result.value; +}; +const waitFor = async (expr, what, ms = 20000) => { + const end = Date.now() + ms; + while (Date.now() < end) { if (await evaluate(`!!(${expr})`)) return; await sleep(200); } + throw new Error(`timed out waiting for ${what}`); +}; + +try { + await cmd("Page.navigate", { url: "http://localhost:5173/" }); + await sleep(1500); + console.log("viewport:", await evaluate(`window.innerWidth + 'x' + window.innerHeight`)); + await evaluate(` + window.__set = (el, v) => { Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,'value').set.call(el, v); el.dispatchEvent(new Event('input',{bubbles:true})); }; + window.__btn = (t, r=document) => [...r.querySelectorAll('button')].find(b => b.textContent.trim() === t); + `); + await evaluate(`(() => { + const i = [...document.querySelectorAll('input')]; + window.__set(i.find(x => x.type === 'text' || x.type === 'email'), 'demo@example.com'); + window.__set(document.querySelector('input[type=password]'), 'demo'); + window.__btn('Sign in').click(); + })()`); + await waitFor("document.querySelectorAll('.msg-row').length > 2", "the message list"); + await sleep(1500); + await evaluate(`(() => { const r = document.querySelectorAll('.msg-row'); if (r[1]) r[1].click(); })()`); + await sleep(1500); + + // The app's own control, the way a user switches theme. + await evaluate(`(() => { + const b = [...document.querySelectorAll('button')].find(x => /light mode/i.test(x.getAttribute('aria-label') || x.title || '')); + if (b) b.click(); else document.documentElement.dataset.theme = 'light'; + })()`); + await sleep(2000); + const bg = await evaluate(`getComputedStyle(document.body).backgroundColor`); + const topbar = await evaluate(`getComputedStyle(document.querySelector('.topbar')).backgroundColor`); + console.log("body:", bg, "topbar:", topbar); + if (parseInt(bg.match(/\d+/)[0], 10) < 200) throw new Error("page is not rendering light"); + + const { data } = await cmd("Page.captureScreenshot", { format: "jpeg", quality: 82 }); + await writeFile(`${OUT}/inbox-light.jpg`, Buffer.from(data, "base64")); + console.log("wrote inbox-light.jpg"); +} finally { ws.close(); chrome.kill(); } diff --git a/docs/screenshots.mjs b/docs/screenshots.mjs index 23e9534..f583d56 100644 --- a/docs/screenshots.mjs +++ b/docs/screenshots.mjs @@ -1,21 +1,35 @@ /** - * Regenerates the README screenshots from the mock server. + * Regenerates most of the README screenshots from the mock server. * - * Run the mock stack first (`npm run dev:mock`), then: + * Drives headless Chrome over CDP, so the viewport is exactly the size the + * images already use rather than whatever a window happens to be. + * + * npm run dev:mock # in another terminal * node docs/screenshots.mjs docs/screenshots + * node docs/screenshots-light.mjs docs/screenshots * - * Restart the mock before a run: the filters shot creates rules, and a second - * run against the same mock would show them twice. + * Restart the mock before a run. The filters shot creates rules, so a second + * run against the same mock shows them twice. * - * The mobile shot is not taken here. Run at the tail of this sequence it would - * not render the message list at 500px within the wait, and chasing that down - * was not worth it for a screenshot -- take it with a short run of its own. + * Two shots are deliberately not taken here: * - * Drives headless Chrome over CDP rather than the extension, so the viewport is - * exactly the size the existing images use (1420x703, mobile 500x703) instead of - * whatever the window happens to be. + * - **mobile**, because at the tail of this sequence the app would not render + * the message list at 500px within the wait. A short run of its own is + * reliable, and it is a screenshot, not a mystery worth solving. * - * Usage: node shots.mjs (mock stack must be up on :5173) + * - **inbox-light**, because of setDeviceMetricsOverride. Swapping the theme + * under the emulation layer captures a *mixed* frame: the panes that + * re-rendered come out light while the rest of the chrome stays dark, with + * the DOM and computed styles insisting the whole page is light. The app is + * not at fault -- update() calls applyTheme() synchronously and the CSS does + * flip --bg to #f6f8fa. The compositor simply does not repaint everything a + * CSS-variable change touches while metrics are overridden. Launching Chrome + * at --window-size and never calling setDeviceMetricsOverride renders it + * correctly, which is what docs/screenshots-light.mjs does. + * + * assertTheme() stays either way: without it this script wrote a dark + * screenshot under a light caption and reported success, and that is how the + * README came to show the same theme twice for months. */ import { spawn } from "node:child_process"; import { writeFile, mkdir } from "node:fs/promises"; @@ -65,8 +79,26 @@ const cmd = (m, p) => send(m, p, sessionId); await cmd("Page.enable"); await cmd("Runtime.enable"); -const metrics = (width, height, mobile = false) => - cmd("Emulation.setDeviceMetricsOverride", { width, height, deviceScaleFactor: 1, mobile }); +let current = { width: 1420, height: 703, mobile: false }; +const metrics = (width, height, mobile = false) => { + current = { width, height, mobile }; + return cmd("Emulation.setDeviceMetricsOverride", { width, height, deviceScaleFactor: 1, mobile }); +}; + +/** + * Forces the whole page to repaint. + * + * Headless only repaints the layers that changed, and a theme swap changes CSS + * variables rather than any single element — so the capture came back with the + * message pane in the new theme and the rest of the app in the old one. Nudging + * the viewport by a pixel and back invalidates everything. + */ +const repaint = async () => { + // Detaching and reattaching the body invalidates every layer; nudging the + // viewport did not, and the capture kept coming back with mixed themes. + await evaluate(`(() => { const b = document.body; b.style.display = 'none'; void b.offsetHeight; b.style.display = ''; })()`); + await sleep(500); +}; const go = async (url) => { await cmd("Page.navigate", { url }); await sleep(1200); }; const evaluate = async (expression) => { @@ -83,6 +115,37 @@ const waitFor = async (jsExpr, what, ms = 15000) => { } throw new Error(`timed out waiting for ${what}`); }; +/** + * Pins the theme, because setting it once is not enough. + * + * The app re-runs applyTheme() from its own setting whenever the settings store + * stirs, and that overwrote a plain attribute set during the settle before the + * capture — twice, silently, producing a "light" screenshot of the dark theme. + * A MutationObserver puts it back faster than anything can take it away. + * + * The check is the rendered background colour: the attribute is what lied. + */ +const themeTest = (want) => want === "light" + ? "parseInt(getComputedStyle(document.body).backgroundColor.match(/\\d+/)[0], 10) > 200" + : "parseInt(getComputedStyle(document.body).backgroundColor.match(/\\d+/)[0], 10) < 60"; + +const setTheme = async (want) => { + await evaluate(`(() => { + const html = document.documentElement; + const want = ${JSON.stringify(want)}; + if (window.__themePin) window.__themePin.disconnect(); + window.__themePin = new MutationObserver(() => { if (html.dataset.theme !== want) html.dataset.theme = want; }); + window.__themePin.observe(html, { attributes: true, attributeFilter: ['data-theme'] }); + html.dataset.theme = want; + })()`); + await waitFor(themeTest(want), `the ${want} theme to actually render`); + await repaint(); +}; + +/** Refuses to write the file unless the page still looks the way it should. */ +const assertTheme = async (want) => { + if (!(await evaluate(themeTest(want)))) throw new Error(`page is not rendering the ${want} theme at capture time`); +}; const shot = async (name) => { const { data } = await cmd("Page.captureScreenshot", { format: "jpeg", quality: 82 }); await writeFile(`${OUT}/${name}`, Buffer.from(data, "base64")); @@ -138,13 +201,8 @@ try { await evaluate(`(() => { const c = [...document.querySelectorAll('button')].find(b => /close|discard/i.test(b.getAttribute('aria-label')||'')); if (c) c.click(); })()`); await sleep(800); - // --- same inbox in the light theme --- - await evaluate(`(() => { const b = [...document.querySelectorAll('button')].find(x => /light mode/i.test(x.getAttribute('aria-label')||x.title||'')); if (b) b.click(); })()`); - await sleep(1200); - await shot("inbox-light.jpg"); - // back to dark for the rest - await evaluate(`(() => { const b = [...document.querySelectorAll('button')].find(x => /dark mode/i.test(x.getAttribute('aria-label')||x.title||'')); if (b) b.click(); })()`); - await sleep(900); + // (inbox-light is captured by docs/screenshots-light.mjs -- see the header) + // --- calendar --- await go("http://localhost:5173/calendar"); @@ -160,10 +218,12 @@ try { await waitFor("document.querySelector('[class*=contact]')", "the contact list"); // Open someone, so the detail pane is not an empty "Select a contact". await evaluate(`(() => { - const row = [...document.querySelectorAll('[class*=contact-row], [class*=contact-item], li, div')] - .find(e => /ada@example\.org/.test(e.textContent || '') && e.querySelector('*') === null || /Ada Lovelace/.test((e.textContent||'').slice(0,40))); - if (row) row.click(); + const hit = [...document.querySelectorAll('div, li, button, a')] + .filter(e => (e.textContent || '').trim().startsWith('Ada Lovelace')) + .sort((a, b) => a.textContent.length - b.textContent.length)[0]; + if (hit) (hit.closest('li, button, a, [class*=row], [class*=item]') || hit).click(); })()`); + await waitFor("!/Select a contact/.test(document.body.innerText)", "the contact detail pane", 8000); await sleep(1800); await shot("contacts.jpg"); diff --git a/docs/screenshots/inbox-light.jpg b/docs/screenshots/inbox-light.jpg index 824f4360f234e17cd313ba5ea9a2f26c68874a4d..9fa5ee8dcffda1c96cc4243da3d19e70a7465221 100644 GIT binary patch delta 29751 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 delta 29754 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 O!$!lKN5e4_ZT=rZmom2i