Summary
The structured RemixDialog path has no bounded or scrollable body region. At 200% text scaling, ordinary settings content can overflow a constrained desktop dialog and make later content/actions unreachable.
Found while validating #80 at b16636b017f3c8832d8f27f316cc24c0ad92ce8a.
Evidence
RemixDialog documents that child composes with title, description, and actions in AlertDialog order, but the implementation places all regions in one Column(mainAxisSize: MainAxisSize.min) with no flexible/scrollable body:
dialog_widget.dart
A focused reproduction uses a 400×320 dialog, 200% text scale, a title, description, eight short environment rows, and one icon action. It produces a vertical RenderFlex overflow from the structured column. This does not rely on a single child whose explicit height is already larger than the parent.
Flutter AlertDialog under the same outer constraint avoids the overflow and also exposes an explicit scrollable contract.
Expected
Structured dialog content remains reachable in a small window or at large text sizes. Title and actions can stay visible while the body scrolls, or the public API clearly exposes another bounded composition.
Suggested direction
- Add an optional scrollable structured path or a dedicated bounded body slot.
- Keep title and actions outside the body scroll region where feasible.
- Preserve the existing lone-child path as fully caller-owned layout.
- Document how route centering/viewport insets and content scrolling divide responsibility.
Acceptance criteria
Scope
This is separate from route positioning. showRemixDialog may continue to use caller-owned navigation and placement; the issue is the structured content composition once bounded.
Summary
The structured
RemixDialogpath has no bounded or scrollable body region. At 200% text scaling, ordinary settings content can overflow a constrained desktop dialog and make later content/actions unreachable.Found while validating #80 at
b16636b017f3c8832d8f27f316cc24c0ad92ce8a.Evidence
RemixDialogdocuments thatchildcomposes with title, description, and actions in AlertDialog order, but the implementation places all regions in oneColumn(mainAxisSize: MainAxisSize.min)with no flexible/scrollable body:dialog_widget.dartA focused reproduction uses a 400×320 dialog, 200% text scale, a title, description, eight short environment rows, and one icon action. It produces a vertical
RenderFlexoverflow from the structured column. This does not rely on a single child whose explicit height is already larger than the parent.Flutter
AlertDialogunder the same outer constraint avoids the overflow and also exposes an explicitscrollablecontract.Expected
Structured dialog content remains reachable in a small window or at large text sizes. Title and actions can stay visible while the body scrolls, or the public API clearly exposes another bounded composition.
Suggested direction
Acceptance criteria
Scope
This is separate from route positioning.
showRemixDialogmay continue to use caller-owned navigation and placement; the issue is the structured content composition once bounded.