m3 Issue with Dialog Width Property
Is this a regression?
- [ ] Yes, this behavior used to work in the previous version
The previous version in which this bug was not present was
No response
Description
When attempting to set the width property of a dialog element, it does not behave as expected. Specifically, using a fixed width or setting it to 100% results in unexpected behavior. When setting the width to 100%, the dialog is pushed to the left instead of occupying the entire viewport width. This inconsistency in behavior hampers the intended layout and user experience. Further investigation is required to identify the root cause and implement a suitable solution.
Reproduction
StackBlitz link: Steps to reproduce:
- https://ng-comp-devapp.web.app/dialog
Expected Behavior
- When setting the width of the dialog element using a fixed value (e.g., pixels), the dialog should render with the specified width without any distortion or unexpected positioning.
- When setting the width of the dialog element to 100%, it should occupy the entire width of the viewport, ensuring that it is centered horizontally and does not get pushed to the left or right edges of the screen.
- The dialog should maintain responsiveness, adjusting its width dynamically based on the viewport size while adhering to the specified width constraints.
Actual Behavior
- When setting the width of the dialog element using a fixed value, the dialog may render with the specified width, but it might not align properly within the viewport or may not respect the specified width, leading to unexpected layout issues.
- When setting the width of the dialog element to 100%, it may not occupy the entire width of the viewport as intended. Instead, it might get pushed to the left side of the screen, causing it to appear off-center or misaligned.
- The responsiveness of the dialog may be compromised, with the width not adjusting appropriately based on the viewport size, leading to inconsistent presentation across different devices or screen sizes.
Environment
- Angular: 17.2
- CDK/Material: 17.2
- Browser(s): Chrinr
- Operating System (e.g. Windows, macOS, Ubuntu): macos
We should resolve this on our end, but you can also work around it by setting an explicit maxWidth or minWidth yourself. In M3 the dialog has default min and max widths in order to align with the spec better.
for now you can set the max width variable in your theme file
// html.<theme token>, using "dark" for example
html.dark {
--mat-dialog-container-max-width: 95vw;
}