Sheet Title
This is a description of the sheet. You can add any content here.
---
import { Button } from "@/components/ui/button"
import { Icon } from "@/components/ui/icon"
import {
Sheet,
SheetContent,
SheetDescription,
SheetHeader,
SheetTitle,
SheetTrigger,
} from "@/components/ui/sheet"
---
<Sheet>
<SheetTrigger variant="outline">
<Icon name="menu" />
</SheetTrigger>
<SheetContent>
<SheetHeader>
<SheetTitle>Sheet Title</SheetTitle>
<SheetDescription>
This is a description of the sheet. You can add any content here.
</SheetDescription>
</SheetHeader>
</SheetContent>
</Sheet>Installation
npx shadcn@latest add @fulldev/sheet
Usage
import {
Sheet,
SheetClose,
SheetContent,
SheetDescription,
SheetFooter,
SheetHeader,
SheetTitle,
SheetTrigger,
} from "@/components/ui/sheet"
<Sheet>
<SheetTrigger>Open</SheetTrigger>
<SheetContent>
<SheetHeader>
<SheetTitle>Sheet Title</SheetTitle>
<SheetDescription>Sheet Description</SheetDescription>
</SheetHeader>
<SheetFooter>
<SheetClose variant="outline">Close</SheetClose>
<Button>Save</Button>
</SheetFooter>
</SheetContent>
</Sheet>
Composition
Use the following composition to build a Sheet:
Sheet
├── SheetTrigger
└── SheetContent
├── SheetHeader
│ ├── SheetTitle
│ └── SheetDescription
└── SheetFooter
Examples
Edit profile
Make changes to your profile here. Click save when you're done.
---
import { Button } from "@/components/ui/button"
import { Input } from "@/components/ui/input"
import { Label } from "@/components/ui/label"
import {
Sheet,
SheetClose,
SheetContent,
SheetDescription,
SheetFooter,
SheetHeader,
SheetTitle,
SheetTrigger,
} from "@/components/ui/sheet"
---
<Sheet>
<SheetTrigger variant="outline">Open</SheetTrigger>
<SheetContent>
<SheetHeader>
<SheetTitle>Edit profile</SheetTitle>
<SheetDescription>
Make changes to your profile here. Click save when you're done.
</SheetDescription>
</SheetHeader>
<div class="grid gap-4 px-4">
<div class="grid gap-2">
<Label for="sheet-name">Name</Label>
<Input id="sheet-name" value="Pedro Duarte" />
</div>
<div class="grid gap-2">
<Label for="sheet-username">Username</Label>
<Input id="sheet-username" value="@peduarte" />
</div>
</div>
<SheetFooter>
<SheetClose variant="outline">Cancel</SheetClose>
<Button>Save changes</Button>
</SheetFooter>
</SheetContent>
</Sheet>Sides
Left sheet
Right sheet
---
import {
Sheet,
SheetContent,
SheetHeader,
SheetTitle,
SheetTrigger,
} from "@/components/ui/sheet"
---
<div class="flex flex-wrap gap-3">
<Sheet>
<SheetTrigger variant="outline">Left</SheetTrigger>
<SheetContent side="left">
<SheetHeader>
<SheetTitle>Left sheet</SheetTitle>
</SheetHeader>
</SheetContent>
</Sheet>
<Sheet>
<SheetTrigger variant="outline">Right</SheetTrigger>
<SheetContent side="right">
<SheetHeader>
<SheetTitle>Right sheet</SheetTitle>
</SheetHeader>
</SheetContent>
</Sheet>
</div>API Reference
See the GitHub source code for more information on props. See the data-slot docs for more information on interactivity.