diff --git a/DESIGN.md b/DESIGN.md index e9edf85c..4691b9eb 100644 --- a/DESIGN.md +++ b/DESIGN.md @@ -222,6 +222,10 @@ for SQL, code, paths and machine identifiers, never for ordinary UI labels or st Typography uses fixed sizes. Responsive changes happen at structural breakpoints, not through fluid type scaling. Numeric data and identifiers use tabular numerals where comparison matters. +**Application wordmark:** ThothII is a brand mark, not a page title: use Manrope semibold at +48px (`3rem`) in the Core welcome area and 32px (`2rem`) in the session sidebar, with the +`II` suffix in brand red. Preserve these sizes across responsive layouts. + **The One Family Rule.** The UI and document readers use sans-serif throughout. The legacy `--font-heading` alias resolves to `--font-sans`. Preserve technical monospace without turning it into a second decorative hierarchy. Do not shrink text to solve layout constraints. diff --git a/docs/reports/2026-09-12-ui-visual-review-delivery.md b/docs/reports/2026-09-12-ui-visual-review-delivery.md index f5fdc357..fbfe878e 100644 --- a/docs/reports/2026-09-12-ui-visual-review-delivery.md +++ b/docs/reports/2026-09-12-ui-visual-review-delivery.md @@ -31,6 +31,17 @@ Interventi specifici: Il modello globale, i default, le autorizzazioni e i blocchi di navigazione non sono stati ridisegnati. Non sono state eseguite elaborazioni LLM o mutate informazioni applicative per questa verifica. +## Follow-up: marchio applicativo (2026-09-13) + +Su richiesta dell'utente, ripristinato ThothII a 48 px nel Core e ingrandito a 32 px nella +sidebar destra. Manrope semibold e suffisso II rosso restano coerenti con Impeccable; +il marchio รจ un'eccezione esplicita alla scala dei titoli ordinari in DESIGN.md. +Nessuna modifica funzionale. Build e 7 scenari Playwright superati, con controlli delle +dimensioni del marchio alle cinque larghezze. Pubblicato nuovamente il solo frontend +Docker usando il medesimo tag di revisione; immagine di ripristino invariata, nessun merge. +La nuova immagine sostituisce quella identificata nella prima consegna sotto: +`sha256:f576ee4882456b4d2d338dbb2228d301f9ffd8d0c7de541842c767bbe8d02dad`. + ## Verifica | Verifica | Esito | diff --git a/frontend/e2e/ui-visual-review.spec.ts b/frontend/e2e/ui-visual-review.spec.ts index e3b805f5..28d012e2 100644 --- a/frontend/e2e/ui-visual-review.spec.ts +++ b/frontend/e2e/ui-visual-review.spec.ts @@ -116,6 +116,7 @@ for (const width of [390, 649, 768, 1280, 1600]) { await page.screenshot({ path: testInfo.outputPath("Pi-guide.png") }); await navigation(page); await page.getByRole("tab", { name: "All sessions", exact: true }).click(); + await expect(page.locator(".thot-wordmark--sidebar")).toHaveCSS("font-size", "32px"); await page.getByRole("button", { name: /Archive \(1\)/ }).click(); await page.getByRole("button", { name: "Cohort review", exact: true }).click(); const documents = page.getByRole("complementary", { name: "Session summary" }); @@ -127,6 +128,7 @@ for (const width of [390, 649, 768, 1280, 1600]) { await page.screenshot({ path: testInfo.outputPath("Sessions.png") }); await page.getByRole("button", { name: "Close panel", exact: true }).click(); await expect(page.getByRole("textbox", { name: "New question", exact: true })).toBeVisible(); + await expect(page.locator(".thot-wordmark--core")).toHaveCSS("font-size", "48px"); await page.screenshot({ path: testInfo.outputPath("Core.png") }); expect(writes).toEqual([]); }); diff --git a/frontend/src/shell/AppShell.tsx b/frontend/src/shell/AppShell.tsx index cf7965d0..a9a55b76 100644 --- a/frontend/src/shell/AppShell.tsx +++ b/frontend/src/shell/AppShell.tsx @@ -919,7 +919,7 @@ export function AppShell({ canLogout }: AppShellProps) {