Sheet
Extends Dialog to slide content in from a screen edge. Prefer side="start" / "end" — SonoJS resolves them with getStartSide / getEndSide so position and slide animation match writing direction.
Basic
Default opens from the inline end edge (right in LTR, left in RTL).
Installation
CLI
Also needs
npm i lucide-react tw-animate-cssComposition
structure
Usage
sheet.tsx
Direction
Default is side="end" (inline end: right in LTR, left in RTL). Use physical left / right only when the edge must stay fixed.
sides.tsx
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| side | "top" · "bottom" · "left" · "right" · "start" · "end" | "end" | On `SheetContent` — prefer `start`/`end` for RTL; `left`/`right` stay physical. |
| showCloseButton | boolean | true | On `SheetContent` — show the corner close control. |
| open | boolean | — | On `Sheet` — controlled open state. |
| onOpenChange | (open: boolean) => void | — | Called when open state changes. |