Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Limit Dialog max width to 560dp per Material Design spec #170065

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: master
Choose a base branch
Loading
from

Conversation

dogaozyagci
Copy link
Contributor

Summary

This PR enforces a maximum width of 560dp on the Dialog widget as per the Material Design 3 specification. The limitation is applied both:

  • in the external ConstrainedBox (used in the build method),
  • and inside the IntrinsicWidth layout block (to prevent internal content from expanding beyond the expected width).

Why This Change?

According to the Material guidelines:

"Dialogs should not exceed a maximum width of 560dp to maintain readability and design consistency."
Material Design Spec

Without a maxWidth constraint, Dialogs on large screens (like tablets or desktops) may grow excessively wide.

Changes

  • Defined _kDialogMaxWidth = 560.0.
  • Applied it in the outer boxConstraints.
  • Applied it again in the inner ConstrainedBox wrapped by IntrinsicWidth.
  • Verified that layout respects this constraint.

Related Issue

Fixes: #163709


Let me know if this constraint should be conditional on useMaterial3, or if platform-specific logic is preferred.

@flutter-dashboard
Copy link

It looks like this pull request may not have tests. Please make sure to add tests or get an explicit test exemption before merging.

If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix?

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing.If you believe this PR qualifies for a test exemption, contact "@test-exemption-reviewer" in the #hackers channel in Discord (don't just cc them here, they won't see it!). The test exemption team is a small volunteer group, so all reviewers should feel empowered to ask for tests, without delegating that responsibility entirely to the test exemption group.

@github-actions github-actions bot added framework flutter/packages/flutter repository. See also f: labels. f: material design flutter/packages/flutter/material repository. labels Jun 5, 2025
Comment on lines +274 to +276
constraints ??
dialogTheme.constraints ??
const BoxConstraints(minWidth: 280.0, maxWidth: 560.0);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maxWidth and minWidth should be extracted to a const with a proper name.

@@ -1339,7 +1336,7 @@ class SimpleDialog extends StatelessWidget {
Widget dialogChild = IntrinsicWidth(
stepWidth: 56.0,
child: ConstrainedBox(
constraints: const BoxConstraints(minWidth: 280.0),
constraints: const BoxConstraints(minWidth: 280.0, maxWidth: 560.0),

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maxWidth and minWidth should be extracted to a const with a proper name.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
f: material design flutter/packages/flutter/material repository. framework flutter/packages/flutter repository. See also f: labels.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Set Dialog's maximum width to 560dp according to Material's guidelines
2 participants
Morty Proxy This is a proxified and sanitized view of the page, visit original site.