style: align catalog status with summary grid
This commit is contained in:
@@ -66,6 +66,15 @@ mirati; coperti ingresso dal Core e dall'Admin, Shift+Enter, testo lungo, mobile
|
|||||||
navigazione con bozza conservata e svuotamento. Build Docker frontend aggiornata;
|
navigazione con bozza conservata e svuotamento. Build Docker frontend aggiornata;
|
||||||
branch di revisione isolato, immagine di ripristino invariata.
|
branch di revisione isolato, immagine di ripristino invariata.
|
||||||
|
|
||||||
|
## Follow-up: griglia di allineamento del catalogo (2026-09-13)
|
||||||
|
|
||||||
|
Catalog condivide il margine di Catalog summary; sui layout ampi Metadata updated
|
||||||
|
condivide l'asse di Description coverage e Operations occupa il punto medio fra i due.
|
||||||
|
Usati margini condivisi e gli stessi cinque riferimenti di colonna dei KPI, senza offset
|
||||||
|
assoluti. Sulle larghezze ridotte gli stati continuano a disporsi senza sovrapposizioni.
|
||||||
|
Passati 9 scenari Playwright, con assert geometrici sugli allineamenti richiesti.
|
||||||
|
Pubblicazione limitata al frontend Docker del worktree di revisione, nessun merge.
|
||||||
|
|
||||||
## Verifica
|
## Verifica
|
||||||
|
|
||||||
| Verifica | Esito |
|
| Verifica | Esito |
|
||||||
|
|||||||
@@ -151,6 +151,17 @@ for (const width of [390, 649, 768, 1280, 1600]) {
|
|||||||
if (name === "Database") {
|
if (name === "Database") {
|
||||||
const statuses = page.locator(".thot-fleet-ledger__header-status .thot-fleet-ledger__status-item");
|
const statuses = page.locator(".thot-fleet-ledger__header-status .thot-fleet-ledger__status-item");
|
||||||
await expect(statuses).toHaveCount(3);
|
await expect(statuses).toHaveCount(3);
|
||||||
|
const catalog = await statuses.nth(0).boundingBox();
|
||||||
|
const operations = await statuses.nth(1).boundingBox();
|
||||||
|
const metadata = await statuses.nth(2).boundingBox();
|
||||||
|
const summary = await page.locator(".thot-fleet-ledger__kpi-section > h2").boundingBox();
|
||||||
|
expect(Math.abs(catalog!.x - summary!.x)).toBeLessThan(1);
|
||||||
|
const workArea = await page.locator(".thot-fleet-ledger__workspace").boundingBox();
|
||||||
|
if (workArea!.width >= 768) {
|
||||||
|
const coverage = await page.locator(".thot-fleet-ledger__kpi-label").filter({ hasText: "Description coverage" }).boundingBox();
|
||||||
|
expect(Math.abs(metadata!.x - coverage!.x)).toBeLessThan(1);
|
||||||
|
expect(Math.abs(operations!.x - (catalog!.x + metadata!.x) / 2)).toBeLessThan(1);
|
||||||
|
}
|
||||||
for (const status of await statuses.all()) {
|
for (const status of await statuses.all()) {
|
||||||
const label = await status.locator(".thot-fleet-ledger__status-label > span:first-child").boundingBox();
|
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 mark = await status.locator(".thot-fleet-ledger__status-mark").boundingBox();
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.thot-fleet-ledger__workspace {
|
.thot-fleet-ledger__workspace {
|
||||||
|
--fleet-summary-inset: 1.25rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
@@ -101,6 +102,7 @@
|
|||||||
.thot-fleet-ledger__header-status {
|
.thot-fleet-ledger__header-status {
|
||||||
grid-area: status;
|
grid-area: status;
|
||||||
min-width: 0;
|
min-width: 0;
|
||||||
|
padding-inline: var(--fleet-summary-inset);
|
||||||
}
|
}
|
||||||
|
|
||||||
.thot-fleet-ledger__header-status > .thot-fleet-ledger__status {
|
.thot-fleet-ledger__header-status > .thot-fleet-ledger__status {
|
||||||
@@ -154,8 +156,6 @@
|
|||||||
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"] {
|
||||||
@@ -221,7 +221,7 @@
|
|||||||
.thot-fleet-ledger__kpi-section {
|
.thot-fleet-ledger__kpi-section {
|
||||||
display: grid;
|
display: grid;
|
||||||
gap: 0.625rem;
|
gap: 0.625rem;
|
||||||
padding: 0.75rem 1.25rem 0;
|
padding: 0.75rem var(--fleet-summary-inset) 0;
|
||||||
border-bottom: 1px solid oklch(var(--border));
|
border-bottom: 1px solid oklch(var(--border));
|
||||||
background: oklch(var(--card));
|
background: oklch(var(--card));
|
||||||
}
|
}
|
||||||
@@ -813,6 +813,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 64rem) {
|
@media (min-width: 64rem) {
|
||||||
|
.thot-fleet-ledger__workspace {
|
||||||
|
--fleet-summary-inset: 1.5rem;
|
||||||
|
}
|
||||||
.thot-fleet-ledger__header {
|
.thot-fleet-ledger__header {
|
||||||
padding-inline: 1.5rem;
|
padding-inline: 1.5rem;
|
||||||
}
|
}
|
||||||
@@ -823,10 +826,6 @@
|
|||||||
padding-inline: 1.5rem;
|
padding-inline: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.thot-fleet-ledger__kpi-section {
|
|
||||||
padding-inline: 1.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.thot-fleet-ledger__navigation,
|
.thot-fleet-ledger__navigation,
|
||||||
.thot-fleet-ledger__command-bar {
|
.thot-fleet-ledger__command-bar {
|
||||||
padding-inline: 1.25rem;
|
padding-inline: 1.25rem;
|
||||||
@@ -834,6 +833,18 @@
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Share the KPI grid's first, middle and last column anchors on wide work areas. */
|
||||||
|
@container fleet-workspace (min-width: 48rem) {
|
||||||
|
.thot-fleet-ledger__header-status .thot-fleet-ledger__status-list {
|
||||||
|
grid-template-columns: repeat(5, minmax(0, 1fr));
|
||||||
|
column-gap: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.thot-fleet-ledger__header-status .thot-fleet-ledger__status-item:nth-child(-n + 2) {
|
||||||
|
grid-column: span 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@container fleet-surface (max-width: 47.999rem) {
|
@container fleet-surface (max-width: 47.999rem) {
|
||||||
.thot-fleet-ledger__drawer,
|
.thot-fleet-ledger__drawer,
|
||||||
.thot-fleet-ledger .thot-fleet-ledger__context-panel {
|
.thot-fleet-ledger .thot-fleet-ledger__context-panel {
|
||||||
|
|||||||
Reference in New Issue
Block a user