Skip to main content

SideSheet

MD3 side sheet: a panel up to 400dp wide anchored to the trailing (or leading) edge, with a headline, optional back / close buttons, and a bottom action bar. standard sheets sit beside the content; modal sheets overlay it with a scrim.

Standard​

A standard sheet is a non-modal complementary panel: the rest of the page stays interactive. open defaults to true; toggle it to show and hide the sheet.

<SideSheet
open={open}
onClose={() => setOpen(false)}
headline="Details"
actions={<Button variant="filled">Save</Button>}
>
…
</SideSheet>

A modal sheet overlays the page with a 0.32 scrim; scrim click, Escape and the close button dismiss it. anchor="left" opens it from the leading edge, and showBackButton adds a leading back button (onBack).

<SideSheet
variant="modal"
anchor="left"
open={open}
onClose={() => setOpen(false)}
headline="Navigation"
showBackButton
onBack={goBack}
>
…
</SideSheet>

Accessibility​

  • A modal sheet is a role="dialog" with aria-modal, named by its headline (or your aria-label / aria-labelledby). Focus is trapped inside, the rest of the page is inert, body scroll is locked, and focus returns to the opener on close.
  • A standard sheet is a complementary landmark named by its headline; it does not trap focus.
  • The close and back buttons are icon buttons labelled "Close" and "Back"; localize them with closeLabel / backLabel.

Props​

PropTypeDefaultDescription
actionsReactNode—Bottom action bar content (left-aligned buttons).
anchorenumrightEdge the sheet is anchored to.
backLabelstringBackAccessible label for the back button.
closeLabelstringCloseAccessible label for the close button.
headlineReactNode—Title shown in the header.
onBack(() => void)—Called when the back button is clicked.
onClose(() => void)—Called on close-button click, scrim click, or Escape.
openbooleantrueWhether the sheet is shown.
showBackButtonbooleanfalseShow a leading back button (modal).
showCloseButtonbooleantrueShow the trailing close button.
showDividerbooleanfalseShow a divider between the header and content.
variantenumstandardStandard (inline) or modal (overlay + scrim).