ActionSheet

Bottom-rising sheet of discrete actions (iOS action-sheet pattern) with a Cancel button

Category: overlay · WCAG 2.2-AA · overlay, action-sheet, menu, mobile, sheet

States

Props

PropTypeDefaultDescription
openbooleanWhether the component is open (controlled).
defaultOpenbooleanWhether the component is open on first render (uncontrolled).
onOpenChange(open: boolean) => voidCalled with the next open state when it changes.
actionsActionSheetAction[]Choices, each with a label, onSelect, and optional destructive/disabled flags
titleReact.ReactNodeTitle text for the component.
descriptionReact.ReactNodeSupporting description text.
showCancelbooleantrueWhen true, shows a cancel button below the actions.
labels{ cancel?: string; label?: string }Overrides for the component’s user-visible strings (i18n).
classNamestringAdditional CSS class names merged onto the root element.

Design tokens

When to use

When not to use

How to build an accessible ActionSheet in React →

Examples

Basic

<ActionSheet
  open={isOpen}
  onOpenChange={setIsOpen}
  title="Share photo"
  actions={[
    { label: 'Copy link', onSelect: copyLink },
    { label: 'Delete', onSelect: remove, destructive: true },
  ]}
/>

Without cancel button

Escape and outside press still dismiss the sheet.

<ActionSheet defaultOpen showCancel={false} actions={[{ label: "Archive", onSelect: archive }]} />

Related components

← Back to docs