Modal & sheet
.x-bottom-sheet is the canonical centred-dialog. Reach for Bottom sheet for new work; .modal-card and .modal-window are kept as backwards-compat aliases through v0.6. See reuse audit D-1.Two overlay patterns: centered modal for short confirmations, side sheet for deeper edits without losing context. Five compositions covering both. Going forward, use Bottom sheet as the single canonical overlay primitive.
Shell at every breakpoint
The overlay reflows by viewport — bottom-anchored on mobile, centred on tablet, side-anchored or centred on desktop. Greyscale wireframes — structure only.
Live examples
Where to see this shell in action — reference docs, cookbook recipes, and live demos.
Confirm modal · standard
Title + body + Cancel/Primary buttons. The lightest pattern.
Destructive modal · with typed confirm
For irreversible actions. Requires typing the record name to confirm.
Side sheet · quick edit
Slides from the right. Lets the operator edit a record without leaving the list.
Modal · embedded form
The new-record dialog. More form fields than a confirmation; fewer than a full page.
Side sheet · audit detail
Read-only sheet showing the diff for a single audit event.
Shared rules
What every composition obeys.
Reach for a modal when the user must respond. Anything optional belongs in a sheet or inline.
Stack a modal on top of another modal. If you need two decisions, redesign the flow.
Use a sheet when the list context must stay visible.
Make a sheet wider than 540 px. Past that, use a full detail page.