Back to Components

Overlay

Sheet

Slide-in panel from a screen edge. macOS-flavored. Built on bits-ui's Dialog primitive — same focus trap and ESC, but content slides in from one of four sides.

Examples

side="right" (default)

<Button onclick={() => open = true}>Open right sheet</Button>
<Sheet bind:open title="Inspector" description="Properties for the selection.">
  <p>Sheet body content scrolls if it overflows.</p>
</Sheet>

side="left"

<Sheet bind:open side="left" title="Navigation">…</Sheet>

side="bottom"

<Sheet bind:open side="bottom" size="md" title="Filters">…</Sheet>

Props

PropTypeDefaultDescription
openbooleanfalseBindable open state.
titlestringOptional heading.
descriptionstringOptional subhead.
side'right' | 'left' | 'top' | 'bottom''right'Edge to slide in from.
size'sm' | 'md' | 'lg' | 'full''md'Cross-axis dimension.
childrenSnippetBody content.
footerSnippetOptional action row.

Install

CLI

npm install bits-ui
npx @a3tai/mittsu add sheet