Repository navigation
fix(web-standalone): product-bar follow-up from the #146 review - #150
Merged
Merged
Conversation
Two review passes over the merge of #146 found a handful of things that all sit in the same file, so they go in one PR. User-visible - The primary button was the bare `.step-panel button`, so every other button in a panel had to out-specify it. The Step 1 entry tabs never reset its min-height and stood 38px tall instead of 28px. Primary is a class now (`.button-primary`, next to `.button-secondary` and `.button-muted`), the tabs, step heads, candidate cards and import row lose their exemption rules, and the intro's "Got it" uses the same class instead of a copy of the rule. - Primaries and secondaries get 8px vertical padding: a label that wraps in the 300px column was 42px tall with the text flush against both edges; it is 58px with the inset now. - The brand title opens dutchmeshcore.nl in a new tab like every other outbound link in the bar. It is where a click lands mid-resolve, and the page's state is not saved. - The language and theme menus kept role="menu" and menuitemradio without the arrow-key handling those roles promise, while the apps menu had dropped them for that reason. All three are plain disclosures now: aria-expanded plus aria-controls on the trigger, aria-pressed on the chosen option. AGENTS.md - The dropdowns open and close through the `hidden` attribute instead of an `.open` class flipping display. - `#ffffff` on the primaries becomes `var(--on-accent)`. Not `--white`: #f4f4f5 on the fill is 4.27:1, under AA; pure white is 4.7:1. Dead code and stale comments - The first `.topbar .dd-trig, .topbar-meta .is-icon` block and its hover were overridden wholesale by the quiet-role rule later at equal specificity; only the sizing and the mono face survive. - `.controls-card button.is-icon` matched nothing since #142. - Tokens nothing read: --bar-h, --bar-bg, --heading-shadow, and the three opacity tokens behind body::before/::after, which painted nothing at opacity 0 but were still composited with a mask and a blend mode. - The comment for the deleted `.topbar { z-index: 2 }` moves to the shell rule it was about; the heading and phone-bar comments now match the code. - The window resize listener for syncNavHeight only registers when there is no ResizeObserver. Verified in Chromium at 1280px and 375px against main with the same fonts: tabs 38 -> 28px, wrapped label 42px/0 inset -> 58px/8px, step heads 53px both, all three dropdowns open, swap, close on Escape and outside click, theme switch to light and back, no console errors. pytest 13 passed; accuracy harness --hop1-only 85 unchanged against main. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01H6fJpaq2uZ94Z2FW53yGtR
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #149
Follow-up to #146 from two code-review passes over its merge. One PR because every item sits in web-standalone/index.html.
User-visible
.button-primary, next to.button-secondaryand.button-muted. The bare.step-panel buttonprimary forced every other button in a panel to out-specify it; the Step 1 entry tabs never reset its min-height and stood 38px tall. The tabs, step heads, candidate cards and import row lose their exemption rules; the intro's "Got it" uses the class instead of a copy of the rule.aria-expanded+aria-controlson the trigger,aria-pressedon the chosen option, norole="menu"without the arrow-key handling it promises.AGENTS.md
hiddenattribute instead of an.openclass flipping display.#ffffffon the primaries becomesvar(--on-accent). Not--white: #f4f4f5 on the fill is 4.27:1, under AA; pure white is 4.7:1.Dead code and stale comments
.topbar .dd-trig, .topbar-meta .is-iconblock and its hover were overridden wholesale by the quiet-role rule; only sizing and the mono face remain..controls-card button.is-icon(matched nothing since Adopt the shared DMC product bar #142), the tokens--bar-h,--bar-bg,--heading-shadowand the three opacity tokens with thebody::before/::afterlayers behind them are gone.syncNavHeightonly registers without ResizeObserver.Verification (Chromium, 1280px and 375px, against main with the same fonts)
All three dropdowns open, swap, close on Escape and outside click; theme switch to light and back; no console errors.
pytest web-standalone/tests: 13 passed.accuracy.mjs --hop1-onlyagainst main: 85 unchanged (no estimator change).🤖 Generated with Claude Code