Ringside: replace native selects with a downward-opening listbox#54
Open
mlava wants to merge 1 commit into
Open
Ringside: replace native selects with a downward-opening listbox#54mlava wants to merge 1 commit into
mlava wants to merge 1 commit into
Conversation
The run picker and version picker were native <select> elements; macOS anchors that popup so the checked option sits over the control, which sends long run lists off the top of the screen (the pickers live at the top of the page, so upward overflow is always clipped). The popup direction of a native select is OS-controlled and cannot be fixed with CSS, and the customizable-select CSS (appearance: base-select) is not available in WebKit, which Ringside runs in via VS Code Simple Browser and Safari. Both pickers are now a small custom listbox (button trigger + role="listbox" panel) that always opens downward, capped to the viewport space below the trigger with internal scrolling and the selected option scrolled into view. Keyboard support matches the native control: ArrowUp/Down to open and move, Home/End, Enter/Space to select, Escape to close, type-ahead by option text. The version picker right-aligns its panel when it would overflow the right viewport edge. Also restores the chevron affordance that the `background:` shorthand in .artifact-tools had been silently wiping. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Problem
The run picker and version picker in Ringside are native
<select>elements sitting at the top of the page. macOS anchors a native select popup so the checked option sits over the control, which means a long run list extends upward — off the top of the screen, clipped and unreachable:The popup direction of a native select is OS-controlled: no CSS or JS can redirect it, and the CSS customizable-select path (
appearance: base-select) is Chromium-only — Ringside is viewed in Safari and VS Code Simple Browser (WebKit), so it never applies.Fix
Both pickers are now a small vanilla listbox component (
createDropdown: button trigger +role="listbox"panel) that always opens downward:aria-haspopup/aria-expandedon the trigger,aria-activedescendant+aria-selectedon the listbox.sync()re-renders mutate options in place, so an open menu doesn't lose its active row or scroll position.syncSelecthelper is replaced by the component'ssync(); change handlers moved topickArtifact()/pickVersion()with identical behavior.background:shorthand in.artifact-toolswas silently wiping thebackground-imagechevron declared earlier in the sheet.The
inject_models_tab_into_ringside_htmlanchor lines in ringer.py (main {,<main>,</main>,tickClock();) are untouched; injection re-tested against the new file.Verification
Playwright against a live Ringside with 26 real runs, plus a stubbed-API run of the merged file:
🤖 Generated with Claude Code