fix: restore the coverage pane's divider and inset

Revert the dashboard-level gutter from the previous commit - it addressed
the wrong element.

The approved mockup gave the right pane a hairline divider and a 24px
left inset (.pane-div). The plan's renderRightPane only ever created a
plain .wd-pane, so neither reached the implementation. The table cells
are deliberately zero-padded on the left so the concept column aligns
with the eyebrow above it, which only reads correctly when the pane
supplies the inset - without it the table ran flush against the grid gap.

Marked with an explicit class rather than :nth-child, since an error box
can occupy that grid slot. Collapsed to one column, the divider moves to
the top edge.
This commit is contained in:
meels
2026-07-28 16:21:46 +02:00
parent 81676e9daa
commit 4803c009a2
2 changed files with 28 additions and 8 deletions

View File

@@ -299,7 +299,10 @@ function renderLeftPane(container, pipeline, onIngest, gate) {
const STATUS_ICON = { covered: "check", partial: "minus", absent: "x" }; const STATUS_ICON = { covered: "check", partial: "minus", absent: "x" };
function renderRightPane(container, parsed, reconciled, cfg) { function renderRightPane(container, parsed, reconciled, cfg) {
const pane = container.createDiv({ cls: "wd-pane" }); // The right-pane class carries the hairline divider and left inset that
// separate coverage from the source pipeline. Marked explicitly rather than
// selected positionally, because an error box can take this slot in the grid.
const pane = container.createDiv({ cls: "wd-pane wd-pane-right" });
pane.createDiv({ cls: "wd-eyebrow", text: "Coverage — by station" }); pane.createDiv({ cls: "wd-eyebrow", text: "Coverage — by station" });
const meta = parsed.meta || {}; const meta = parsed.meta || {};

View File

@@ -32,13 +32,6 @@
rows get hard to track across. Cap the whole dashboard, not just the rows get hard to track across. Cap the whole dashboard, not just the
grid, so the toolbar stays flush with the panes below it. */ grid, so the toolbar stays flush with the panes below it. */
max-width: 1600px; max-width: 1600px;
/* Lifting the host's readable-line-width cap also removes the centring that
was providing the note's side margins, so the content ran flush to the
pane edge. Restore a gutter on our own element rather than reaching into
Obsidian's: centred when the pane is wider than the cap, and a fixed
24px inset (the tesanti gutter) at every width including narrow panes. */
margin-inline: auto;
padding-inline: 24px;
/* Makes this element the reference for the @container query further down, /* Makes this element the reference for the @container query further down,
so the grid collapses on the pane's width rather than the window's. */ so the grid collapses on the pane's width rather than the window's. */
container-type: inline-size; container-type: inline-size;
@@ -134,14 +127,38 @@
media query stays as a floor for a genuinely narrow window. */ media query stays as a floor for a genuinely narrow window. */
@container (max-width: 820px) { @container (max-width: 820px) {
.wd-grid { grid-template-columns: minmax(0, 1fr); } .wd-grid { grid-template-columns: minmax(0, 1fr); }
/* Stacked, the divider belongs above the pane, not beside it. */
.wd-pane-right {
border-left: 0;
padding-left: 0;
border-top: 1px solid var(--wd-border);
padding-top: 20px;
}
} }
@media (max-width: 820px) { @media (max-width: 820px) {
.wd-grid { grid-template-columns: minmax(0, 1fr); } .wd-grid { grid-template-columns: minmax(0, 1fr); }
/* Stacked, the divider belongs above the pane, not beside it. */
.wd-pane-right {
border-left: 0;
padding-left: 0;
border-top: 1px solid var(--wd-border);
padding-top: 20px;
}
} }
.wd-pane { display: flex; flex-direction: column; gap: 20px; } .wd-pane { display: flex; flex-direction: column; gap: 20px; }
/* The coverage pane sits behind a hairline with a 24px inset, so its table does
not run flush against the gap between the two panes. The table cells are
deliberately zero-padded on the left (`.wd-tbl td`) so the concept column
aligns with the eyebrow above it — that alignment only reads correctly when
the pane itself provides the inset, which is what this rule restores. */
.wd-pane-right {
border-left: 1px solid var(--wd-border);
padding-left: 24px;
}
.wd-eyebrow { .wd-eyebrow {
font-family: var(--wd-mono); font-size: 11px; line-height: 1; font-family: var(--wd-mono); font-size: 11px; line-height: 1;
letter-spacing: 0.12em; text-transform: uppercase; letter-spacing: 0.12em; text-transform: uppercase;