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

模态框 / 对话框
Live Demo Playground
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

底部弹出面板
Live Demo Playground
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

抽屉
Live Demo Playground

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