Repository navigation
fix(remix): scroll a long RemixMenu - #345
Open
leoafarias wants to merge 2 commits into
Open
leoafarias wants to merge 2 commits into
leoafarias wants to merge 2 commits into
Conversation
A RemixMenu panel, and every submenu panel, rendered its items in a column with no scroll view, so a list taller than the overlay or than a maxHeight on the overlay style overflowed. RemixFlexBoxAdapter gains a scrollable option that puts a contained vertical scroll view between the box and its column. The box's padding, decoration, constraints, and effects frame the scroll view. The scroll view does not attach to the host's primary scroll controller, does not notify the host page, and clamps at the ends. RemixMenu and RemixSelect both use it, which replaces the select's private scroll structure.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
leoafarias
added a commit
that referenced
this pull request
Oct 27, 2026
# Conflicts: # docs/components/menu.mdx
This branch has not been deployed
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.
Description
A
RemixMenupanel taller than its overlay, or taller than amaxHeighton theoverlaystyle, overflowed the item column (A RenderFlex overflowed by N pixels) instead of scrolling. Submenus reuse the panel and overflowed the same way.Menu panels, root and submenus, now scroll their items. This is the same behavior #341 gives
RemixSelect:containerEffectsof theoverlaybox stay in place while the items scroll, and amaxHeightonoverlayis honored.primary: false, stops scroll notifications at the panel, clamps at the ends with no overscroll effect, and keeps the desktop scrollbar.The scroll structure now lives in one place. The internal
RemixFlexBoxAdaptergains ascrollableoption, and bothRemixMenuandRemixSelectuse it. This replaces #341's private_ScrollableOptions; select layout is unchanged, and #341's tests are untouched.The item column now sizes to its content inside the scroll view, so
mainAxisAlignmentandmainAxisSize.maxonoverlayno longer distribute free vertical space. The changelog notes this.docs/components/menu.mdxgains a short "Long menus" section.Validation
menu_scroll_test.dart(22 tests). It covers:maxHeight, and intrinsic width;AppBar;packages/remixfull suite: 2872 passed.registry_source: 1390 passed.dart analyze packages/remix, rootdart format,melos run ci:checks, andmelos run docs:check: pass.stack/follow-ups-integration(chore: integration check for the follow-up stack (do not merge) #339), the full remix suite passes (3124). Home and End reveal the target there because fix(naked_ui): scroll keyboard focus targets into view in overlays, tabs, toggle groups, and menubars #344 is included.Merge note
Stacked on #341. Merge #341 first, then retarget this PR to
main. The only textual conflict with the rest of the stack isdocs/components/menu.mdx; keep both sections. After #331 lands, the menu focus-ring note andskills/building-remix-design-system/references/components.mdmust also say that a scrolling list crops an outside row ring at its edges, whatever the panel's padding. The integration branch shows the wording.Related Issues
Follows #341. Home and End reveal the target only with #344. A panel can still take the whole overlay height and cover its trigger; that is naked_ui positioning and is tracked separately.
Checklist
///).Breaking Change
RemixFlexBoxAdapteris internal, so there is no API change.mainAxisAlignmentandmainAxisSize.maxon a menu'soverlaystyle no longer distribute free vertical space, as for the select in #341.