UNPKG

materialuiupgraded

Version:

Material-UI's workspace package

87 lines (51 loc) 3.92 kB
--- title: Dialog React component components: Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions, Slide --- # Dialogs <p class="description">Dialogs inform users about a task and can contain critical information, require decisions, or involve multiple tasks.</p> A [Dialog](https://material.io/design/components/dialogs.html) is a type of [modal](/utils/modal/) window that appears in front of app content to provide critical information or ask for a decision. Dialogs disable all app functionality when they appear, and remain on screen until confirmed, dismissed, or a required action has been taken. Dialogs are purposefully interruptive, so they should be used sparingly. ## Simple Dialogs Simple dialogs can provide additional details or actions about a list item. For example, they can display avatars, icons, clarifying subtext, or orthogonal actions (such as adding an account). Touch mechanics: - Choosing an option immediately commits the option and closes the menu - Touching outside of the dialog, or pressing Back, cancels the action and closes the dialog {{"demo": "pages/demos/dialogs/SimpleDialog.js"}} ## Alerts Alerts are urgent interruptions, requiring acknowledgement, that inform the user about a situation. Most alerts don't need titles. They summarize a decision in a sentence or two by either: - Asking a question (e.g. "Delete this conversation?") - Making a statement related to the action buttons Use title bar alerts only for high-risk situations, such as the potential loss of connectivity. Users should be able to understand the choices based on the title and button text alone. If a title is required: - Use a clear question or statement with an explanation in the content area, such as "Erase USB storage?". - Avoid apologies, ambiguity, or questions, such asWarning!” or “Are you sure?” {{"demo": "pages/demos/dialogs/AlertDialog.js"}} You can also swap out the transition, the next example uses `Slide`. {{"demo": "pages/demos/dialogs/AlertDialogSlide.js"}} ## Confirmation dialogs Confirmation dialogs require users to explicitly confirm their choice before an option is committed. For example, users can listen to multiple ringtones but only make a final selection upon touching “OK.” TouchingCancelin a confirmation dialog, or pressing Back, cancels the action, discards any changes, and closes the dialog. {{"demo": "pages/demos/dialogs/ConfirmationDialog.js"}} ## Full-screen dialogs {{"demo": "pages/demos/dialogs/FullScreenDialog.js"}} ## Form dialogs Form dialogs allow users to fill out form fields within a dialog. For example, if your site prompts for potential subscribers to fill in their email address, they can fill out the email field and touch 'Submit' {{"demo": "pages/demos/dialogs/FormDialog.js"}} ## Responsive full-screen You may make a `Dialog` responsively full screen the dialog using `withMobileDialog`. By default, `withMobileDialog()(Dialog)` responsively full screens *at or below* the `sm` [screen size](/layout/basics/). You can choose your own breakpoint for example `xs` by passing the `breakpoint` argument: `withMobileDialog({breakpoint: 'xs'})(Dialog)`. {{"demo": "pages/demos/dialogs/ResponsiveDialog.js"}} ## Accessibility Be sure to add `aria-labelledby="id..."`, referencing the modal title, to the `Dialog`. Additionally, you may give a description of your modal dialog with the `aria-describedby="id..."` property on the `Dialog`. ## Scrolling long content When dialogs become too long for the user’s viewport or device, they scroll. - `scroll=paper` the content of the dialog scrolls within the paper element. - `scroll=body` the content of the dialog scrolls within the body element. Try the demo below to see what we mean: {{"demo": "pages/demos/dialogs/ScrollDialog.js"}}