Skip to main content

Dialog vs Bottom Sheet vs Drawer

Three ways to say "put a layer on top"

I need to bring up a layer on top of the current screen. Which one?

Comparison table

Dialog vs Bottom Sheet vs Drawer
PatternWhere it appearsBlocks the userPage underneathMain platforms
Modal模态框 / 对话框Center of the screenYesFully covered and dimmedAll platforms
Bottom Sheet底部弹出面板Bottom of the screenPartially blocksStays visible, so context remainsMobile
Drawer抽屉Side of the screenPartially blocksMostly stays visibleAll platforms

← Swipe to see the full table

The demos, side by side

Modal

模态框 / 对话框
Hit "Delete photos" and the dialog stops you. Try Tab (focus is trapped inside) and Esc (to close).

How to decide: Use it when the user "must decide"

Bottom Sheet

底部弹出面板
A panel that rises from the bottom edge, sizing itself to its content (around 55%), with the page still visible behind it — that's a Bottom Sheet.

How to decide: The default picker on mobile

Drawer

抽屉

The drawer covers this half of the page

Slides in from the left (constrained to the demo area here). What separates it from a Bottom Sheet: a Drawer docks to the side and holds an entire region of content.

How to decide: When navigation or filtering needs real estate

Decision rule

  • the user must choose before they can continue (delete confirmation, sign-in)use a Dialog
  • on mobile you need to pick from a few options, or show a row of actionsuse a Bottom Sheet
  • you have a lot to show and it deserves its own space (navigation, filters)use a Drawer
  • you only want to tell the user something workeduse none of these — use a Toast

In one line

The real difference is how much they block. Heavier blocking (Dialog) for decisions the user cannot dodge; lighter blocking (Bottom Sheet, Drawer) for situations they can walk away from.

Related comparisons