Dialogs elicit a response or reveal critical information without losing the context of the underlying page.
Use to communicate critical information.
<div role="dialog" class="mds-dialog ">
<div class="mds-dialog__message"> You have uploaded an incorrect file type, please only upload .xls files. </div>
<div class="mds-dialog__action-buttons">
<div class="mds-dialog__cancel-resolve-buttons-holder">
<button class="mds-button mds-dialog__cancel-button" type="button"> Cancel </button>
</div>
</div>
</div>
escape
key.Use to communicate critical information that presents the user with a choice.
<div role="dialog" class="mds-dialog ">
<div class="mds-dialog__message"> Turning off logic mode will remove all parentheses and change the connection between all widgets back to “and”. Are you sure you want to proceed? </div>
<div class="mds-dialog__action-buttons">
<div class="mds-dialog__cancel-resolve-buttons-holder">
<button class="mds-button mds-dialog__cancel-button" type="button"> Cancel </button>
<button class="mds-button mds-dialog__resolve-button mds-button--primary" type="button"> Continue </button>
</div>
</div>
</div>
escape
key or by clicking outside of the dialog.<div role="dialog" class="mds-dialog ">
<div class="mds-dialog__message"> Your Workbook contains unsaved data, do you want to save your changes? </div>
<div class="mds-dialog__action-buttons">
<button class="mds-button mds-dialog__reject-button" type="button"> Don’t Save </button>
<div class="mds-dialog__cancel-resolve-buttons-holder">
<button class="mds-button mds-dialog__cancel-button" type="button"> Cancel </button>
<button class="mds-button mds-dialog__resolve-button mds-button--primary" type="button"> Save </button>
</div>
</div>
</div>
Dialogs are available at a single size, which uses $mds-font-size-m
(16px) text for the message and medium Buttons.
Dialogs are available in two predefined widths. The default width is 350px and you can use a modifier class to make the dialog wider (mds-dialog--width-500px
).
<div role="dialog" class="mds-dialog ">
<div class="mds-dialog__message"> Turning off logic mode will remove all parentheses and change the connection between all widgets back to “and”. Are you sure you want to proceed? </div>
<div class="mds-dialog__action-buttons">
<div class="mds-dialog__cancel-resolve-buttons-holder">
<button class="mds-button mds-dialog__cancel-button" type="button"> Cancel </button>
<button class="mds-button mds-dialog__resolve-button mds-button--primary" type="button"> Continue </button>
</div>
</div>
</div>
Predefined widths are a starting point. If requirements call for a different dialog width, work with a designer to create custom width styles in your product’s CSS.
[.my-custom-dialog-width] {
max-width: 600px;
}
<div class="mds-dialog [my-custom-dialog-width]" role="dialog"> ... </div>
.mds-overlay
) to partially block out the underlying page and focus attention on the dialog contents.role=”dialog”
in .mds-dialog
element attributes.aria-describedby
attribute with .mds-dialog
.aria-describedby
attribute should but used to describe the content of the dialog.tabIndex
status for all elements. Then, remove the page element’s tab group and focus status..mds-dialog
.
Class |
Applies to |
Outcome |
---|---|---|
|
|
Indicates that the dialog is active. |
|
|
Renders a 500px wide dialog. |
|
|
Fades out the |
closing tag.
tab-index
on the page beneath the page overlay.tab-index
for the underlying page contents.Promise
.Resolve
, Reject
, and Cancel
, which are sufficient for mapping the prime, reject and close buttons.Promise
s. You may need to consider writing your own Promise
/ Deferred
solution in plain JavaScript for asynchronous capturing Resolve
, Reject
and Cancel
user actions.mds-dialog--fadeout
class and mds-overlay--fadeout
class will animate the dialog.10ms
), then remove the classes.