Sheet
Edge-mounted sliding panel for cart drawers, mobile navigation, filter panels, and settings that should stay visible alongside the page.
Best for
Import
import { Sheet } from "@enadhq/enad-react-sdk/client/ui-resolver"When to use it
Use Sheet when the page needs a panel that slides in from an edge without fully replacing the current view. It is the natural choice for cart drawers, mobile navigation menus, filter sidebars, and settings panels where visitors should still feel connected to the page behind the overlay.
If the content needs to fully interrupt the flow (confirmation, edit form, critical decision), use Dialog instead. Sheet is for persistent, browsable side-content.
Slot strategy
Sheet builds on the Dialog primitive with a side-aware layout:
Sheetis the root. It manages open/close state and acceptsopenandonOpenChangefor controlled usage.SheetTriggeris the element that opens the panel. UseasChildto render your own button.SheetContentis the sliding panel. It wraps itself with a portal and overlay automatically. Thesideprop controls which edge it slides from:right(default),left,top, orbottom.SheetHeadersits at the top with a bottom border and holds the title and description.SheetFootersticks to the bottom usingmt-auto, which makes it stay anchored regardless of body content length.SheetTitlerenders the heading and includes an optional close button (controlled byshowClose, defaults totrue).SheetDescriptionprovides supporting context below the title.SheetCloseis available for additional close affordances inside the body.
Behavior and theming guidance
The panel slides in with a directional animation that matches the side prop. Opening uses a slower 500ms ease-in-out, and closing uses a faster 300ms transition, which makes the dismiss feel snappier than the reveal.
The overlay dims the background the same way Dialog does. Clicking the overlay or pressing Escape closes the sheet.
For cart drawers and similar persistent panels, use controlled state with open and onOpenChange so you can update the sheet content in response to cart mutations and close it programmatically after checkout navigation.
Examples
Live examples you can edit directly in the sandbox.
Basic side panel
The minimal sheet pattern: a right-side panel with a header and body. Extend it with a footer for cart drawers and navigation menus.
Left-side navigation drawer
A left-side sheet works well for mobile navigation menus where visitors need quick access to categories without leaving the current page.
Component Sets
Preview the first example across the available component-set presets to compare tone, spacing, and structural defaults.