Back to compare picker

Action sheet vs Action menu vs Bottom sheet vs Confirmation dialog

Use an action sheet for a small platform-presented choice set tied to a user-initiated action, an action menu for the command taxonomy, a bottom sheet for mobile contextual content with detents, and a confirmation dialog for a focused consequence decision.

Learn the decision

Match the interaction to the person's task

Use an action sheet for a small platform-presented choice set tied to a user-initiated action, an action menu for the command taxonomy, a bottom sheet for mobile contextual content with detents, and a confirmation dialog for a focused consequence decision.

Action sheet

Use it when: A user-initiated action has a few immediate valid outcomes.

Make this state clear: Resting state with an initiating control or task context.

Observe the result: A user taps Cancel while editing Message draft 18, chooses Save draft, the sheet closes, and focus returns to the composer with a saved-draft status.

Study the full pattern →

Action menu

Use it when: A resource, row, card, selected set, or local page object has several contextual commands.

Make this state clear: Closed trigger or contextual entry point with resource scope.

Observe the result: A user opens Customer actions, chooses Duplicate customer, and receives status that names the customer and keeps focus anchored to the action context.

Study the full pattern →

Bottom sheet

Use it when: Mobile users need extra contextual detail or controls while staying oriented to a map, feed, route, media item, or selected object.

Make this state clear: Closed state with a trigger tied to the current map item, feed card, route, media item, or contextual action.

Observe the result: Users open a station sheet from the map, peek at the station identity, expand to half height for next departures, expand to full height for all stops, collapse back to the map, and keep the selected pin visible.

Study the full pattern →

Confirmation dialog

Use it when: The action is destructive, irreversible, costly, security-sensitive, privacy-affecting, or externally visible.

Make this state clear: Pre-action state with an explicit consequential trigger.

Observe the result: Cancel, Escape, and Keep archive leave the archive unchanged and return focus to Delete archive.

Study the full pattern →

Practice the judgment: Imagine this situation: A sheet appears on page load with marketing choices rather than in response to a user action. Write the person's goal, choose one of these patterns, and show the state that helps the person continue. Use the decision rules and source trail below to explain your choice.

Review the underlying principle →

Decision dimensions

Dimension Action sheetAction menuBottom sheetConfirmation dialog
UI or UX UI + UX - Platform-presented action choice sheetUI + UX - Contextual command list for a resource or selectionUI + UX - Mobile bottom-anchored contextual overlay with detentsUI + UX - Consequential alert decision
UI guidance Render an action sheet as a short platform-style list of choices tied to the action the user just initiated, with a visible title or message when context is needed, clear action roles, a distinct cancel route, and destructive choices visually separated.Render a compact menu of verb-led actions scoped to one resource, row, card, selected set, or page object, with clear section headings, object-aware labels, disabled reasons, and separated dangerous commands.Render a bottom sheet as a lower-edge surface with a visible handle, rounded top edge, safe-area spacing, meaningful peek content, and controls that remain reachable from the bottom of the screen.Render an alert-style modal decision with a specific title, consequence description, safe cancellation, and a destructive action label that names the object or scope.
UX guidance Use an action sheet when users intentionally start an action and need to choose among a few valid outcomes before the product continues, such as Save draft, Discard draft, Share, Report, or Cancel.Make the current object or selection count explicit, update actions when scope changes, and route destructive or privacy-sensitive commands into confirmation, undo, restore, or review instead of running silently.Use bottom sheets for mobile contextual details or controls that benefit from lower-edge reach while preserving orientation to the current background object.Help the person reach a clear task outcome.
Good UI A mail composer Cancel button opens an action sheet titled Save this draft? with Save draft, Discard draft in destructive styling, and Cancel separated at the bottom.A Customer actions menu has Manage customer, Data requests, and Account risk sections, with Edit customer, Merge customer, Request data export, and Delete customer separated at the end.A map pin opens a bottom sheet with a handle, station name, distance, primary route action, half-height service details, and full-height stop list.Delete Research archive? explains that 14 notes and shared links will be permanently removed, offers Keep archive, and labels the danger action Delete archive.
Bad UI A bottom overlay opens with navigation links, filters, a preview image, a text field, and a Delete button all in one scrollable sheet.Safe, risky, disabled, external, and value-selection items share the same style and role.A bottom sheet contains a long settings workflow and bottom navigation links, with the primary action below the device safe area.The red destructive action is enabled immediately and sits where users expect the routine primary button.
Good UX A user taps Cancel while editing Message draft 18, chooses Save draft, the sheet closes, and focus returns to the composer with a saved-draft status.A user opens Customer actions, chooses Duplicate customer, and receives status that names the customer and keeps focus anchored to the action context.Users open a station sheet from the map, peek at the station identity, expand to half height for next departures, expand to full height for all stops, collapse back to the map, and keep the selected pin visible.Cancel, Escape, and Keep archive leave the archive unchanged and return focus to Delete archive.
Bad UX A user tries to scroll through many actions and accidentally taps Delete because the sheet is overloaded and lacks destructive separation.A user activates a menu item that looks like a command but navigates away and loses unsaved context.Users drag on the list expecting to scroll, but the whole sheet dismisses and loses the selected map pin.Every archive, filter, and dismiss action opens the same confirmation until users click through automatically.
Best fit A user-initiated action has a few immediate valid outcomes.A resource, row, card, selected set, or local page object has several contextual commands.Mobile users need extra contextual detail or controls while staying oriented to a map, feed, route, media item, or selected object.The action is destructive, irreversible, costly, security-sensitive, privacy-affecting, or externally visible.
Avoid when There is only one consequence decision and a confirmation dialog would be clearer.Only one or two commands are needed and visible buttons would be faster.The surface contains persistent app destinations or global navigation.The action is routine and easily reversible.
Required state Resting state with an initiating control or task context.Closed trigger or contextual entry point with resource scope.Closed state with a trigger tied to the current map item, feed card, route, media item, or contextual action.Pre-action state with an explicit consequential trigger.
Accessibility burden Give the sheet an accessible name that states the action or affected object.Give the trigger or menu an accessible name that includes the resource or selected-set scope.Give the bottom sheet a visible heading or context label and expose it as the accessible name.Use alertdialog semantics or platform equivalent when the decision is urgent and requires a response.
Common misuse Showing an action sheet before the user starts an action.Letting a bulk action menu run single-object commands against multiple selected items.Using a bottom sheet as hidden global navigation or a dumping ground for unrelated commands.Asking users to confirm every routine action until they stop reading.

Action sheet

UI or UX
UI + UX - Platform-presented action choice sheet
UI guidance
Render an action sheet as a short platform-style list of choices tied to the action the user just initiated, with a visible title or message when context is needed, clear action roles, a distinct cancel route, and destructive choices visually separated.
UX guidance
Use an action sheet when users intentionally start an action and need to choose among a few valid outcomes before the product continues, such as Save draft, Discard draft, Share, Report, or Cancel.
Good UI
A mail composer Cancel button opens an action sheet titled Save this draft? with Save draft, Discard draft in destructive styling, and Cancel separated at the bottom.
Bad UI
A bottom overlay opens with navigation links, filters, a preview image, a text field, and a Delete button all in one scrollable sheet.
Good UX
A user taps Cancel while editing Message draft 18, chooses Save draft, the sheet closes, and focus returns to the composer with a saved-draft status.
Bad UX
A user tries to scroll through many actions and accidentally taps Delete because the sheet is overloaded and lacks destructive separation.
Best fit
A user-initiated action has a few immediate valid outcomes.
Avoid when
There is only one consequence decision and a confirmation dialog would be clearer.
Required state
Resting state with an initiating control or task context.
Accessibility burden
Give the sheet an accessible name that states the action or affected object.
Common misuse
Showing an action sheet before the user starts an action.

Action menu

UI or UX
UI + UX - Contextual command list for a resource or selection
UI guidance
Render a compact menu of verb-led actions scoped to one resource, row, card, selected set, or page object, with clear section headings, object-aware labels, disabled reasons, and separated dangerous commands.
UX guidance
Make the current object or selection count explicit, update actions when scope changes, and route destructive or privacy-sensitive commands into confirmation, undo, restore, or review instead of running silently.
Good UI
A Customer actions menu has Manage customer, Data requests, and Account risk sections, with Edit customer, Merge customer, Request data export, and Delete customer separated at the end.
Bad UI
Safe, risky, disabled, external, and value-selection items share the same style and role.
Good UX
A user opens Customer actions, chooses Duplicate customer, and receives status that names the customer and keeps focus anchored to the action context.
Bad UX
A user activates a menu item that looks like a command but navigates away and loses unsaved context.
Best fit
A resource, row, card, selected set, or local page object has several contextual commands.
Avoid when
Only one or two commands are needed and visible buttons would be faster.
Required state
Closed trigger or contextual entry point with resource scope.
Accessibility burden
Give the trigger or menu an accessible name that includes the resource or selected-set scope.
Common misuse
Letting a bulk action menu run single-object commands against multiple selected items.

Bottom sheet

UI or UX
UI + UX - Mobile bottom-anchored contextual overlay with detents
UI guidance
Render a bottom sheet as a lower-edge surface with a visible handle, rounded top edge, safe-area spacing, meaningful peek content, and controls that remain reachable from the bottom of the screen.
UX guidance
Use bottom sheets for mobile contextual details or controls that benefit from lower-edge reach while preserving orientation to the current background object.
Good UI
A map pin opens a bottom sheet with a handle, station name, distance, primary route action, half-height service details, and full-height stop list.
Bad UI
A bottom sheet contains a long settings workflow and bottom navigation links, with the primary action below the device safe area.
Good UX
Users open a station sheet from the map, peek at the station identity, expand to half height for next departures, expand to full height for all stops, collapse back to the map, and keep the selected pin visible.
Bad UX
Users drag on the list expecting to scroll, but the whole sheet dismisses and loses the selected map pin.
Best fit
Mobile users need extra contextual detail or controls while staying oriented to a map, feed, route, media item, or selected object.
Avoid when
The surface contains persistent app destinations or global navigation.
Required state
Closed state with a trigger tied to the current map item, feed card, route, media item, or contextual action.
Accessibility burden
Give the bottom sheet a visible heading or context label and expose it as the accessible name.
Common misuse
Using a bottom sheet as hidden global navigation or a dumping ground for unrelated commands.

Confirmation dialog

UI or UX
UI + UX - Consequential alert decision
UI guidance
Render an alert-style modal decision with a specific title, consequence description, safe cancellation, and a destructive action label that names the object or scope.
UX guidance
Help the person reach a clear task outcome.
Good UI
Delete Research archive? explains that 14 notes and shared links will be permanently removed, offers Keep archive, and labels the danger action Delete archive.
Bad UI
The red destructive action is enabled immediately and sits where users expect the routine primary button.
Good UX
Cancel, Escape, and Keep archive leave the archive unchanged and return focus to Delete archive.
Bad UX
Every archive, filter, and dismiss action opens the same confirmation until users click through automatically.
Best fit
The action is destructive, irreversible, costly, security-sensitive, privacy-affecting, or externally visible.
Avoid when
The action is routine and easily reversible.
Required state
Pre-action state with an explicit consequential trigger.
Accessibility burden
Use alertdialog semantics or platform equivalent when the decision is urgent and requires a response.
Common misuse
Asking users to confirm every routine action until they stop reading.
Decision rules
  • Choose action sheet when a user has intentionally started an action and needs two to five immediate choices such as Save draft, Discard draft, Share, Report, or Cancel.
  • Choose action menu when the design problem is the command list itself: object scope, section grouping, disabled reasons, destructive separation, bulk labels, and result handling across web, desktop, or mobile surfaces.
  • Choose bottom sheet when the mobile lower-edge surface needs contextual detail, preview content, detents, scrolling, or continued orientation to a map, feed, media item, or selected object.
  • Choose confirmation dialog when the product needs one focused yes-or-no consequence decision rather than several valid action choices related to the initiated task.
  • Use a cancel action when backing out must be explicit or reassuring; do not rely only on a scrim tap, drag, or platform back gesture for abandonment.
  • Keep destructive actions visually and semantically separated from safe choices, name the affected object, and route severe irreversible outcomes to stronger review when a simple action sheet is not enough.
  • Do not put forms, search, filters, long previews, multi-step flows, or persistent navigation in an action sheet; move that content to bottom sheet, sheet, drawer, dialog, or page territory.
  • Do not make an action sheet scroll for ordinary action sets; if users must scan many choices, use a page, picker, command search, or categorized action menu instead.
  • On larger screens, use the platform's popover or anchored presentation rules while preserving the action-sheet roles, cancel route, and source object context.
  • If a choice leaves the current task, label whether it saves, discards, shares, reports, or cancels so users can predict what remains after dismissal.
Inspect live examples
Failure modes
  • A sheet appears on page load with marketing choices rather than in response to a user action.
  • The sheet contains nine options and scrolls, causing accidental taps while the user tries to inspect choices.
  • The destructive choice is styled like every other item and does not name the draft, photo, message, or account it affects.
  • Cancel is missing even though abandoning the initiated task is a valid safe outcome.
  • A rich bottom sheet with previews and detents is called an action sheet, so designers miss scroll, focus, and detent requirements.
  • A single irreversible delete decision is squeezed into an action sheet when a confirmation or typed confirmation should review consequences.

Saved items