Dialog takes the same main props as on the web (open, onClose, title, description, footer) and opens as a bottom sheet, the shape phones use for a modal task. It slides up from the bottom edge, shows a grabber, and scrolls its content when it is taller than the screen allows. See the web Dialog for the same component in the browser.
The dialog is always controlled: keep open in state and close it in onClose. The close button, the Android back button and a tap on the backdrop all call onClose.
footer sits under the content, behind a top border, with its items at the end of the row.
flush drops the sheet's padding around the content, for a list that runs edge to edge. closeOnClickaway={false} keeps the sheet open when the backdrop is tapped; the back button and the close button still close it. hideClose hides the close button.
- It is a bottom sheet, at most 90% of the screen's height, not a centred window.
- It pads its bottom by the safe-area inset, so it clears the home indicator. Pass the insets to ThemeProvider, as shown on the overview.
- The Android back button closes it.
- There is no DialogProvider, no stacked dialogs and no base or stack props.