Skip to content

Dialog API

API reference docs for the React Dialog component. Learn about the props, CSS, and other APIs of this exported module.

Demos

For examples and details on the usage of this React component, visit the component demo pages:

Import

import Dialog from '@mui/material/Dialog';
// or
import { Dialog } from '@mui/material';
Learn about the difference by reading this guide on minimizing bundle size.

Dialogs are overlaid modal paper based components with a backdrop.

Props

Props of the Modal component are also available.

openRequired

If true, the component is shown.

Type:

bool
aria-describedby

The id(s) of the element(s) that describe the dialog.

Type:

string
aria-labelledby

The id(s) of the element(s) that label the dialog.

Type:

string
BackdropComponent

A backdrop component. This prop enables custom backdrop rendering.

Type:

elementType

Default:

styled(Backdrop, { name: 'MuiModal', slot: 'Backdrop', overridesResolver: (props, styles) => { return styles.backdrop; }, })({ zIndex: -1, })
children

Dialog children, usually the included sub-components.

Type:

node
classes

Override or extend the styles applied to the component.

Type:

object
disableEscapeKeyDown

If true, hitting escape will not fire the onClose callback.

Type:

bool

Default:

false
fullScreen

If true, the dialog is full-screen.

Type:

bool

Default:

false
fullWidth

If true, the dialog stretches to maxWidth.
Notice that the dialog width grow is limited by the default margin.

Type:

bool

Default:

false
maxWidth

Determine the max-width of the dialog. The dialog width grows with the size of the screen. Set to false to disable maxWidth.

Type:

'xs' | 'sm' | 'md' | 'lg' | 'xl' | false | string

Default:

'sm'
onBackdropClick

Callback fired when the backdrop is clicked.

Type:

func
onClose

Callback fired when the component requests to be closed.

Type:

func

Signature:

function(event: object, reason: string) => void
  • event The event source of the callback.
  • reason Can be: "escapeKeyDown", "backdropClick".
PaperComponent

The component used to render the body of the dialog.

Type:

elementType

Default:

Paper
PaperProps

Props applied to the Paper element.

Type:

object

Default:

{}
scroll

Determine the container for scrolling the dialog.

Type:

'body' | 'paper'

Default:

'paper'
sx

The system prop that allows defining system overrides as well as additional CSS styles.

Type:

Array<func | object | bool> | func | object
TransitionComponent

The component used for the transition. Follow this guide to learn more about the requirements for this component.

Type:

elementType

Default:

Fade
transitionDuration

The duration for the transition, in milliseconds. You may specify a single timeout for all transitions, or individually with an object.

Type:

number | { appear?: number, enter?: number, exit?: number }

Default:

{ enter: theme.transitions.duration.enteringScreen, exit: theme.transitions.duration.leavingScreen, }
TransitionProps

Props applied to the transition element. By default, the element is based on this Transition component.

Type:

object

The ref is forwarded to the root element.

Inheritance

While not explicitly documented above, the props of the Modal component are also available in Dialog. You can take advantage of this to target nested components.

Theme default props

You can use MuiDialog to change the default props of this component with the theme.

CSS

The following class names are useful for styling with CSS (the state classes are marked).
To learn more, visit the component customization page.

.MuiDialog-rootroot

Styles applied to the root element.

.MuiDialog-scrollPaperscrollPaper

Styles applied to the container element if scroll="paper".

.MuiDialog-scrollBodyscrollBody

Styles applied to the container element if scroll="body".

.MuiDialog-containercontainer

Styles applied to the container element.

.MuiDialog-paperpaper

Styles applied to the Paper component.

.MuiDialog-paperScrollPaperpaperScrollPaper

Styles applied to the Paper component if scroll="paper".

.MuiDialog-paperScrollBodypaperScrollBody

Styles applied to the Paper component if scroll="body".

.MuiDialog-paperWidthFalsepaperWidthFalse

Styles applied to the Paper component if maxWidth=false.

.MuiDialog-paperWidthXspaperWidthXs

Styles applied to the Paper component if maxWidth="xs".

.MuiDialog-paperWidthSmpaperWidthSm

Styles applied to the Paper component if maxWidth="sm".

.MuiDialog-paperWidthMdpaperWidthMd

Styles applied to the Paper component if maxWidth="md".

.MuiDialog-paperWidthLgpaperWidthLg

Styles applied to the Paper component if maxWidth="lg".

.MuiDialog-paperWidthXlpaperWidthXl

Styles applied to the Paper component if maxWidth="xl".

.MuiDialog-paperFullWidthpaperFullWidth

Styles applied to the Paper component if fullWidth={true}.

.MuiDialog-paperFullScreenpaperFullScreen

Styles applied to the Paper component if fullScreen={true}.

You can override the style of the component using one of these customization options: