I am using Angular Material and I am using md-dialog for my popups for my gallery. The default animation and styling looks nice. However, I would like to change the width and height of size of the md-dialog-container
? which is hidden. Only added when I click the modal and when you open the chrome dev tools you can see the md-dialog-container
appearing. Do include how to override the rest of the styling.
Much appreciate with some help. Thanks.
use updateSize() in any function in dialog component. it will change dialog size automatically.
MatDialog creates modal dialogs that implements the ARIA role="dialog" pattern by default. You can change the dialog's role to alertdialog via MatDialogConfig . You should provide an accessible label to this root dialog element by setting the ariaLabel or ariaLabelledBy properties of MatDialogConfig .
From the official documentation:
Styling overlay components
Overlay-based components have a panelClass property (or similar) that can be used to target the overlay pane.
You can override the default dialog container styles by adding a css class in your global styles.css
. For example:
.custom-dialog-container .mat-dialog-container {
/* add your styles */
}
After that, you'll need to providies you css class as a panelClass
parameter to your dialog:
this.dialog.open(MyDialogComponent, { panelClass: 'custom-dialog-container' })
Read this official documentation for more information.
There is no need to add global styles.
You can add this to your own component style:
::ng-deep .my-custom-dialog-class {
mat-dialog-container {
padding: 0;
}
}
Make sure there is no "." (dot class selector) for
mat-dialog-container
because you must use the html tag selector.
Then when you open the dialog, add your class in panelClass
property:
this.dialog.open(MyDialogComponent, {
data: {},
panelClass: 'my-custom-dialog-class'
});
By using a custom panelClass
, this ensures only dialogs opened with that class will be affected, even using ng::deep
.
You can change width/height of the modal by setting the values in the open() method, something like the following:
this.dialog.open(MyDialogComponent, {
height: '300px'
width: '400px'
});
const dialogRef = this.dialog.open(WorkModalComponent, {
width: '1200px',
data: workObj,
panelClass: 'my-dialog-container-class' // Replace with your actual dialog container class
});
add the panelClass to your Dialog and add your CSS style to this class.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With