Repository navigation
feat(options): collapse bar into Parse settings drop-up below fit threshold - #225
Merged
Merged
Conversation
…eshold Replace the wrapping options footer and the small-screen accordion with one behavior: below the measured fit threshold the bar renders a single Parse settings line (trigger, live summary, large-file notice) and the full control set lives in a drop-up panel above it. Mirrors the FeedbackVote popout pattern for dismissal and focus return. Co-authored-by: David Boskovic <[email protected]>
Co-authored-by: David Boskovic <[email protected]>
Co-authored-by: David Boskovic <[email protected]>
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.
Human author: David Boskovic ([email protected])
Why
The converter's options footer wraps onto two lines anywhere below ~1576px of viewport — the default state in the small-desktop band — and the sub-768px accordion squeezed the panes whenever it was open. Wrapping reads as clutter and the accordion steals pane height, so the bar now collapses to a single Parse settings line with the full control set in a drop-up panel.
What
md:flex-wrapstacking and themax-mdaccordion (mobileOpen/options-mobile-toggle) are gone.fitbreakpoint at 98.5rem (1576px) inindex.css(--breakpoint-fit), mirrored in the component'suseMediaQueryquery (media queries can't read CSS vars). Biased to the safe side: collapsing a beat early is invisible, wrapping again is the bug. One breakpoint for both directions, per the locked decision.FeedbackVote's popout pattern: trigger toggles; Escape, outside click (click, notmousedown), and trigger re-click close it; focus returns to the trigger.aria-expanded+aria-haspopupon the trigger; the panel is a labelled non-modal region — controls inside are ordinary form controls, notrole=menuitems.How to Review
app/src/components/OptionsRow.tsx— the whole change: both presentations (collapsed trigger row + drop-up; inline row), dismissal/focus handling, and the shared control set.app/src/index.css— the measured--breakpoint-fittoken with the measurement documented in place.OptionsRow.test.tsx(accordion coverage removed; collapsed rendering, all three close paths + focus return, live summary updates from inside the menu, notice placement, direction-conditional contents, encoding-wired select, inline presentation at threshold) andApp.test.tsx(mobile/small-screen coverage updated).app/distrebuilt.Test Evidence
Open the menu, toggle Parse numbers inside it (collapsed summary drops the option), close via Escape with focus returning to the trigger
Open the menu, toggle Parse numbers inside it (collapsed summary drops the option), close via Escape with focus returning to the trigger — recording
Drop-up panel carries the full control set over the panes without layout shift (before: 375px accordion open squeezing panes; after: open menu at 1024px and 375px)



Collapsed one-line options bar below the fit threshold (1024px: wrapped 2-line bar before, 41px one-line trigger row after)


npm run lintandnpx tsc -b --noEmitclean, production build + prerender rebuilt and committed,verify-seo.shpasses.🔗 Obvious Project · 🧵 Obvious Thread · 🔀 Obvious PR Artifact