Comparison file · surfaces

Dialog vs Modal Dialog vs Drawer vs Sheet

Separate semantic dialog behavior from edge-based presentation.

Run the diagnosis
Dialog and side surfaces comparison diagram

Fast decision

Start with the behavior that changes the build

01

Dialog

Do not assume every dialog is modal. State whether background interaction is blocked.

Open field note ↗
02

Modal Dialog

If users can safely continue working behind it, a non-modal Dialog, Popover, Drawer, or Sheet is more appropriate.

Open field note ↗
03

Drawer

Drawer describes presentation. Specify modality, focus, and dismissal instead of relying on the name.

Open field note ↗
04

Sheet

Sheet is an ecosystem presentation term, not a complete accessibility contract.

Open field note ↗

Behavior matrix

Compare contracts, not silhouettes

DecisionDialogModal DialogDrawerSheet
ModalityMay be modal or non-modal; this entry represents the general pattern.Modal; content outside is inert and visually obscured.Can be modal or non-modal; must be declared.Often modal in component libraries, but must be specified.
PlacementLayered over the primary document; not defined by edge entry.Usually centered or full-screen, independent of an anchor.Enters from a viewport edge, often bottom on mobile.Attached to a chosen viewport side.
FocusFocus moves according to task needs and returns to a logical point on close.Focus enters the dialog, remains within it, and returns to the invoker or a logical successor.Depends on modality; modal drawers contain focus, non-modal drawers do not.Follows the chosen modal or non-modal dialog behavior.
DismissalExplicit close, completion, cancel, and optionally Escape.Complete, cancel, explicit close, and usually Escape unless destructive work requires confirmation.Close action, Escape, outside interaction when allowed, or reverse gesture.Close action, Escape, and optionally outside interaction.
MobileMay become full-screen when the task needs more space.Use a full-height or full-screen layout when necessary without losing modal semantics.May support drag, snap points, and larger touch targets.May occupy most or all of the viewport.

Discriminating questions

Ask only what changes the result

  1. Should users be prevented from interacting with the page behind it?Yes / No
  2. Is entering from a screen edge part of the required interaction?Yes / No
  3. Is touch dragging or swipe-to-close a core mobile requirement?Yes / No

Implementation consequences

Turn the comparison into a build decision

The final choice must explain both the selected contract and the alternatives it excludes.

01

Name the task

Separate semantic dialog behavior from edge-based presentation. Write the user goal before choosing any component from a library.

02

Freeze the decisive dimensions

For this group, compare Modality, Placement, Focus, Dismissal, Mobile. Do not allow visual similarity to replace those requirements.

03

State the exclusion

Record why the closest rejected pattern fails. That reason helps a coding agent avoid silently substituting a familiar but incompatible component.

04

Verify the behavior

Open the selected pattern reference, copy its acceptance checks, and test focus, keyboard, dismissal, placement, content, and mobile behavior in the real interface.

Frequently asked questions

Dialog vs Modal Dialog vs Drawer vs Sheet questions

Direct answers based on the reviewed behavior contract above.

What is the main difference between Dialog, Modal Dialog, Drawer, Sheet?

Separate semantic dialog behavior from edge-based presentation. The decisive dimensions on this page are Modality, Placement, Focus, Dismissal, Mobile. Read each column as a behavior contract, not as a visual style recommendation.

How do I choose among Dialog, Modal Dialog, Drawer, Sheet?

Begin with the required user task, then answer the discriminating questions above. Choose the pattern whose purpose and behavior match the evidence, and explicitly reject alternatives whose focus, input, modality, persistence, or structural contract would break the task.

Can two of these terms apply to the same interface?

Sometimes. This taxonomy includes semantic patterns, composite patterns, presentation forms, behavior variants, message channels, and generic behavior labels. A presentation term and a semantic contract can coexist, so specify each required property instead of forcing every term into a flat either-or choice.

How should I verify the final implementation?

Open the selected pattern reference and run its observable checks. At minimum, confirm the configured trigger, dismissal, focus, keyboard behavior, interactive content, placement, and mobile adaptation. Also verify the linked official or first-party source against the library you ship.