style: place catalog status indicators after their labels

This commit is contained in:
Codex
2026-09-13 01:23:46 +02:00
parent eed398e569
commit 8c81996896
4 changed files with 29 additions and 3 deletions
@@ -42,6 +42,15 @@ Docker usando il medesimo tag di revisione; immagine di ripristino invariata, ne
La nuova immagine sostituisce quella identificata nella prima consegna sotto: La nuova immagine sostituisce quella identificata nella prima consegna sotto:
`sha256:f576ee4882456b4d2d338dbb2228d301f9ffd8d0c7de541842c767bbe8d02dad`. `sha256:f576ee4882456b4d2d338dbb2228d301f9ffd8d0c7de541842c767bbe8d02dad`.
## Follow-up: indicatori del catalogo (2026-09-13)
Spostati i pallini dopo le etichette Catalog, Operations e Metadata updated, mantenendo
il rientro del testo e l'allineamento con i valori sottostanti. Spaziatura uniforme e
centratura verticale secondo Impeccable. I 7 scenari Playwright passano, inclusi nuovi
controlli geometrici per tutte e tre le etichette alle cinque larghezze responsive.
Il successivo aggiornamento del medesimo tag frontend include questa correzione;
il digest del follow-up precedente identifica quindi una versione superata.
## Verifica ## Verifica
| Verifica | Esito | | Verifica | Esito |
+11
View File
@@ -104,6 +104,17 @@ for (const width of [390, 649, 768, 1280, 1600]) {
await expect(heading).toHaveCSS("font-size", "24px"); await expect(heading).toHaveCSS("font-size", "24px");
expect(await inspect(page)).toEqual({ overflow: 0, serif: [], tiny: [] }); expect(await inspect(page)).toEqual({ overflow: 0, serif: [], tiny: [] });
if (name === "Memory") await expect(page.getByText("No memory cards yet.", { exact: false })).toBeVisible(); if (name === "Memory") await expect(page.getByText("No memory cards yet.", { exact: false })).toBeVisible();
if (name === "Database") {
const statuses = page.locator(".thot-fleet-ledger__header-status .thot-fleet-ledger__status-item");
await expect(statuses).toHaveCount(3);
for (const status of await statuses.all()) {
const label = await status.locator(".thot-fleet-ledger__status-label > span:first-child").boundingBox();
const mark = await status.locator(".thot-fleet-ledger__status-mark").boundingBox();
const value = await status.locator(".thot-fleet-ledger__status-value").boundingBox();
expect(mark!.x - (label!.x + label!.width)).toBeGreaterThanOrEqual(7);
expect(Math.abs(label!.x - value!.x)).toBeLessThan(1);
}
}
if (name === "Evidence") { if (name === "Evidence") {
const search = await page.getByRole("textbox", { name: "Search Evidence" }).boundingBox(); const search = await page.getByRole("textbox", { name: "Search Evidence" }).boundingBox();
expect(search!.width).toBeGreaterThan(180); expect(search!.width).toBeGreaterThan(180);
@@ -154,6 +154,8 @@
min-width: min(100%, 10rem); min-width: min(100%, 10rem);
gap: 0.5rem; gap: 0.5rem;
align-items: flex-start; align-items: flex-start;
/* Preserve the text inset formerly occupied by the leading marker and gap. */
padding-inline-start: 0.95rem;
} }
.thot-fleet-ledger__status-item[data-tone="success"] { .thot-fleet-ledger__status-item[data-tone="success"] {
@@ -175,7 +177,6 @@
.thot-fleet-ledger__status-mark { .thot-fleet-ledger__status-mark {
width: 0.45rem; width: 0.45rem;
height: 0.45rem; height: 0.45rem;
margin-top: 0.33rem;
flex: 0 0 auto; flex: 0 0 auto;
border-radius: 999px; border-radius: 999px;
background: var(--fleet-status-color); background: var(--fleet-status-color);
@@ -191,6 +192,9 @@
.thot-fleet-ledger__status-label { .thot-fleet-ledger__status-label {
grid-column: 1 / -1; grid-column: 1 / -1;
display: flex;
align-items: center;
gap: 0.5rem;
font-size: var(--text-meta); font-size: var(--text-meta);
} }
@@ -159,9 +159,11 @@ export function FleetLedgerRealStatus({
className="thot-fleet-ledger__status-item" className="thot-fleet-ledger__status-item"
data-tone={item.tone ?? "neutral"} data-tone={item.tone ?? "neutral"}
> >
<span className="thot-fleet-ledger__status-mark" aria-hidden="true" />
<span className="thot-fleet-ledger__status-copy"> <span className="thot-fleet-ledger__status-copy">
<span className="thot-fleet-ledger__status-label">{item.label}</span> <span className="thot-fleet-ledger__status-label">
<span>{item.label}</span>
<span className="thot-fleet-ledger__status-mark" aria-hidden="true" />
</span>
<strong className="thot-fleet-ledger__status-value">{item.value}</strong> <strong className="thot-fleet-ledger__status-value">{item.value}</strong>
{item.detail ? ( {item.detail ? (
<span className="thot-fleet-ledger__status-detail">{item.detail}</span> <span className="thot-fleet-ledger__status-detail">{item.detail}</span>