Normalize /display left rail dividers to #16202b (O1 fidelity round) - #401
Conversation
Corrected SPEC-display-left-rail.md round: retires the ambiguous Bootstrap .border-bottom utility on .rail-head/.artist-line/.sources, adds a boundary to the Select Version wrapper, and normalizes the unified filter fieldset + its internal divider - all to the explicit #16202b hairline .d14 already used. Spec doc + mockup updated in place; DisplayLeftRailFidelity.spec.ts asserts the new values; adds a pin localStorage-persists-across-reload Playwright test. Leaves the spec's .btn-sm 14px/4x8 row unimplemented pending an explicit owner call (it conflicts with the already-shipped "buttons are too big" fix) - flagged in the spec/docs/tests. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Throwaway computed-style diff against the corrected mockup caught 63 mismatches beyond the O1 divider round: mostly Bootstrap body-default (16px) font-size fall-throughs on bespoke rail classnames that never had their own font-size rule (rail-head .slot/.name, artist-line, select-version-heading, Sources filter input, all fixed component-scoped per the #400 rule), plus the Source row's own border-bottom (missed by O1's named list), the tile corner tag (8px/alpha .9 -> 7px/.92), and the Ghost tile's UA-default button padding. Per explicit owner ruling, also resolves the three rows held back pending sign-off: AutofillCollapse header background reverts to #4E5D6B (#400 mis-corrected this to #4e5d6c - deliberately distinct token, not a typo), the Source toggle is restyled (scoped to a new rail-source-toggle class) from react-bootstrap-toggle's stock sliding switch into the mockup's static two-cell segmented look, and the Filters disclosure toggle returns to real Bootstrap sm metrics (14px/4px 8px), superseding the earlier "buttons are too big" shrink for that one control only. Also removes the stray border-light Bootstrap utility from AutofillCollapse's header (no spec calls for it). DisplayLeftRailFidelity.spec.ts asserts every fixed value. Deliberately left open: "Demoted body" 13px (blast radius across four other untested demoted sections not verified this round). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Follow-up round: machine-diff fix pass A throwaway computed-style diff against the corrected mockup (bundle-401) caught 63 property mismatches beyond the O1 divider round. Fixed every unambiguous one this round (mostly Bootstrap body-default font-size fall-throughs on bespoke rail classnames, plus the Source row's own border-bottom and the tile corner tag's font-size/alpha), all component-scoped per the #400 rule. Per explicit owner ruling, also resolved the three rows previously held back pending sign-off:
Re-measured after the fix: 63 → 44 raw mismatches (re-diff via the same
|
Description
Corrected
SPEC-display-left-rail.mdfidelity round (Quorra's owner-approved corrected spec + mockup). Most of the corrected round's binding table was already shipped in PR #352 (Sources disclosure, unified Frame+Treatment filter, preferred-sources pin with the #353 seam, artist support button, the D14 Y/N consensus treatment, the buttons-look-like-buttons sweep) — verified against the corrected spec and left untouched where it already matched. This PR ships the one genuinely new binding change (O1) plus the doc/test/mockup sync the corrected round requires.Per-item mapping to the corrected spec:
SourcesAccordion.tsx): summary count, pinned-source chips, filter input, bulk enable/disable/invert, 38px toggle rows. Verified matches §D.1, no changes needed.SelectVersionResults.tsx's.ufilterfieldset, Border its own row above). Only its border color changed this round (see O1).localStorage(getLocalStoragePinnedSourcePks/setLocalStoragePinnedSourcePks), disabled#353"Save as my defaults" seam present. Added a new Playwright test asserting the pin survives a real reload.btn-outline-primary"Support on MTG Artist Connection ↗" (ArtistSection.tsx).#16202b— implemented this PR..rail-head/.artist-line/.sources(previously the ambiguous Bootstrap.border-bottomutility), the Select Version wrapper (previously no boundary at all), and the unified filter fieldset + its internal Frame↔Treatment divider (previously an unthemedrgba(0,0,0,.22)) all now carry the explicit#16202bhairline.d14already used.✗ not this printingis a real vote that stays visible atopacity:.6on a confirmed printing (owner answer Promote PringlePrints to a full ordering tab #2). No standalone Y/N block anywhere in the rail.Docs updated in place (no dated appendix):
docs/proposals/mockups/proposal-h/SPEC-display-left-rail.mdrewritten to the corrected binding tables (§A–§J, including a refreshed source-map addendum);docs/proposals/mockups/proposal-h/display-left-rail-mockup.htmlreplaced with the corrected mockup;docs/features/display-left-rail.mdgained an "O1 — divider normalization" section.frontend/tests/DisplayLeftRailFidelity.spec.tsupdated to assert the new#16202b=rgb(22, 32, 43)border values (comment-linked to the spec's §D.1/O1), and to flag the one spec row deliberately NOT implemented (see Deviations).Deviations from spec
.btn-smsizing (14px / 4px 8px, spec §A item 2 / §D.1's final row) — NOT implemented. The corrected spec's own §A explicitly flags this specific row as "needs owner sign-off" (denser-vs-standard tradeoff) separately from O1's already-confirmed divider normalization. It directly conflicts with a more specific, already-shipped owner directive on the exact same controls ("the buttons are too big" —CompactButton/CompactToggleButton/CompactLinkButton/TreatmentChip, currently ~12px/0.2rem 0.5rem). Left as shipped pending an explicit owner call; flagged in the spec (§A/§H "O5"), the source-map addendum (§J), the fidelity test's own comment at thefunnel-filters-toggleassertion, anddocs/features/display-left-rail.md.Verification
DisplayLeftRailFidelity.spec.ts— 2/2 passed (asserts the new#16202bborder values).DisplayPage.spec.ts— 32/32 passed (includes the existing Sources/D14 coverage plus the new pin-persists-across-reload test).SelectVersionSection.spec.ts— 6/6 passed.DisplaySlotStates.spec.ts— 4/4 passed in isolation (one test flaked once under 4-worker CPU contention in a combined run, unrelated to this change — passed cleanly re-run alone, matching this repo's documented CI shard-contention pattern).jest— 568/568 passed.tsc --noEmit— clean.npx prettier@2.7.1 --check— clean on all changed files.test-results/).shot.jsscreenshots (mockup-side tooling, not part of this repo) — the CSS-fidelity guard'sgetComputedStyleassertions are the binding check for this repo per its own established convention.Checklist
pre-commitand installed the hooks withpre-commit installbefore creating any commits.tsc --noEmit, and prettier - all listed above.docs/proposals/mockups/proposal-h/SPEC-display-left-rail.md(rewritten in place),docs/proposals/mockups/proposal-h/display-left-rail-mockup.html(replaced),docs/features/display-left-rail.md(O1 section added).Do not merge - for owner review.