style: restore prominent ThothII application wordmarks

This commit is contained in:
Codex
2026-09-13 01:18:06 +02:00
parent c8d276ddc6
commit eed398e569
4 changed files with 19 additions and 2 deletions
+4
View File
@@ -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 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. 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 **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 `--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. into a second decorative hierarchy. Do not shrink text to solve layout constraints.
@@ -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. 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
| Verifica | Esito | | Verifica | Esito |
+2
View File
@@ -116,6 +116,7 @@ for (const width of [390, 649, 768, 1280, 1600]) {
await page.screenshot({ path: testInfo.outputPath("Pi-guide.png") }); await page.screenshot({ path: testInfo.outputPath("Pi-guide.png") });
await navigation(page); await navigation(page);
await page.getByRole("tab", { name: "All sessions", exact: true }).click(); 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: /Archive \(1\)/ }).click();
await page.getByRole("button", { name: "Cohort review", exact: true }).click(); await page.getByRole("button", { name: "Cohort review", exact: true }).click();
const documents = page.getByRole("complementary", { name: "Session summary" }); 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.screenshot({ path: testInfo.outputPath("Sessions.png") });
await page.getByRole("button", { name: "Close panel", exact: true }).click(); await page.getByRole("button", { name: "Close panel", exact: true }).click();
await expect(page.getByRole("textbox", { name: "New question", exact: true })).toBeVisible(); 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") }); await page.screenshot({ path: testInfo.outputPath("Core.png") });
expect(writes).toEqual([]); expect(writes).toEqual([]);
}); });
+2 -2
View File
@@ -919,7 +919,7 @@ export function AppShell({ canLogout }: AppShellProps) {
<ArchiveNavigation surface={activeSurface} forceDrawer={activeSurface === "core" && showActivity}> <ArchiveNavigation surface={activeSurface} forceDrawer={activeSurface === "core" && showActivity}>
<aside aria-label="Session navigation" className="flex w-64 shrink-0 flex-col bg-sidebar"> <aside aria-label="Session navigation" className="flex w-64 shrink-0 flex-col bg-sidebar">
<div className="thot-session-navigation__header relative text-center"> <div className="thot-session-navigation__header relative text-center">
<h1 className="font-heading text-xl font-semibold leading-none tracking-tight text-foreground"> <h1 className="thot-wordmark--sidebar font-heading text-[2rem] font-semibold leading-none tracking-tight text-foreground">
Thoth<span className="text-primary">II</span> Thoth<span className="text-primary">II</span>
</h1> </h1>
<p className="thot-label mt-1.5"> <p className="thot-label mt-1.5">
@@ -1286,7 +1286,7 @@ export function AppShell({ canLogout }: AppShellProps) {
function EmptyState() { function EmptyState() {
return ( return (
<div className="flex min-h-[72vh] flex-col items-center justify-center text-center"> <div className="flex min-h-[72vh] flex-col items-center justify-center text-center">
<span className="font-heading text-2xl font-semibold tracking-tight text-foreground"> <span className="thot-wordmark--core font-heading text-5xl font-semibold tracking-tight text-foreground">
Thoth<span className="text-primary">II</span> Thoth<span className="text-primary">II</span>
</span> </span>
<p className="mt-4 max-w-md text-balance text-base leading-relaxed text-muted-foreground"> <p className="mt-4 max-w-md text-balance text-base leading-relaxed text-muted-foreground">