Skip to main content

Modals

Add dialogs to your site for lightboxes, user notifications, or completely custom content.

Overview​

  • Modals are positioned over everything else in the document and remove scroll from the <body> so that modal content scrolls instead.
  • Modals are unmounted when closed.
  • Bootstrap only supports one modal window at a time. Nested modals aren't supported, but if you really need them, the underlying @restart/ui library can support them if you're willing.
  • Modal's "trap" focus in them, ensuring the keyboard navigation cycles through the modal, and not the rest of the page.
  • Unlike vanilla Bootstrap, autoFocus works in Modals because React handles the implementation.

Examples​

Static Markup​

Below is a static modal dialog (without the positioning) to demonstrate the look and feel of the Modal.

Result
Loading...
Live Editor

Live demo​

A modal with header, body, and set of actions in the footer. Use <Modal/> in combination with other components to show or hide your Modal. The <Modal/> Component comes with a few convenient "sub components": <Modal.Header/>, <Modal.Title/>, <Modal.Body/>, and <Modal.Footer/>, which you can use to build the Modal content.

Result
Loading...
Live Editor

Static backdrop​

When backdrop is set to static, the modal will not close when clicking outside it. Click the button below to try it.

Result
Loading...
Live Editor

Without Animation​

A Modal can also be without an animation. For that set the animation prop to false.

Result
Loading...
Live Editor

Vertically centered​

You can vertically center a modal by passing the centered prop.

Result
Loading...
Live Editor

Using the grid​

You can use grid layouts within a model using regular grid components inside the modal content.

Result
Loading...
Live Editor

Focus on specific element​

You can focus on an element inside the modal using autoFocus attribute on the element.

Result
Loading...
Live Editor

Optional Sizes​

You can specify a Bootstrap large or small modal by using the size prop.

Result
Loading...
Live Editor

Fullscreen Modal​

You can use the fullscreen prop to make the modal fullscreen. Specifying a breakpoint will only set the modal as fullscreen below the breakpoint size.

Result
Loading...
Live Editor

Sizing modals using custom CSS​

You can apply custom css to the modal dialog div using the dialogClassName prop. Example is using a custom css class with width set to 90%.

Result
Loading...
Live Editor

API​

ModalDialog​

ModalHeader​

ModalTitle​

ModalBody​

ModalFooter​