Sheet
--- import { Button } from "@/components/starwind/button"; import { Input } from "@/components/starwind/input"; import { Label } from "@/components/starwind/label"; import { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, } from "@/components/starwind/sheet"; ---
<Sheet> <SheetTrigger asChild> <Button>Open Sheet</Button> </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="name">Name</Label> <Input id="name" value="Pedro Duarte" /> </div> <div class="grid gap-2"> <Label for="username">Username</Label> <Input id="username" value="@peduarte" /> </div> </div> <SheetFooter> <SheetClose asChild> <Button type="submit">Save changes</Button> </SheetClose> </SheetFooter> </SheetContent> </Sheet>import { Button } from "@/components/starwind/button"; import { Input } from "@/components/starwind/input"; import { Label } from "@/components/starwind/label"; import { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, } from "@/components/starwind/sheet";
export function Example() { return ( <> <Sheet> <SheetTrigger asChild> <Button>Open Sheet</Button> </SheetTrigger> <SheetContent> <SheetHeader> <SheetTitle>Edit Profile</SheetTitle> <SheetDescription> Make changes to your profile here. Click save when you're done. </SheetDescription> </SheetHeader> <div className="grid gap-4 px-4"> <div className="grid gap-2"> <Label htmlFor="name">Name</Label> <Input id="name" defaultValue="Pedro Duarte" /> </div> <div className="grid gap-2"> <Label htmlFor="username">Username</Label> <Input id="username" defaultValue="@peduarte" /> </div> </div> <SheetFooter> <SheetClose asChild> <Button type="submit">Save changes</Button> </SheetClose> </SheetFooter> </SheetContent> </Sheet> </> );}Installation
pnpx starwind@latest add sheetnpx starwind@latest add sheetyarn dlx starwind@latest add sheetFramework Availability
Astro Available React AvailableSheet is available for Astro and React.
Usage
General Notes
Sheets are slide-out panels that can extend from any edge of the screen. They’re built on top of the Dialog component and are great for forms and mobile navigation menus.
The essential components are Sheet, SheetTrigger, and SheetContent. The SheetHeader, SheetFooter, SheetTitle, and SheetDescription components provide additional structure.
side
Sheets can slide out from any side of the screen using the side prop.
---import { Button } from "@/components/starwind/button";import { Input } from "@/components/starwind/input";import { Label } from "@/components/starwind/label";import { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger,} from "@/components/starwind/sheet";---
<!-- Top Sheet --><Sheet> <SheetTrigger asChild> <Button variant="outline">Open Top Sheet</Button> </SheetTrigger> <SheetContent side="top"> <SheetHeader> <SheetTitle>Top Sheet</SheetTitle> <SheetDescription>This sheet opens from the top of the screen.</SheetDescription> </SheetHeader> <div class="grid gap-4 px-4"> <div class="grid gap-3"> <Label for="top-sheet-name">Name</Label> <Input id="top-sheet-name" value="Pedro Duarte" /> </div> <div class="grid gap-3"> <Label for="top-sheet-username">Username</Label> <Input id="top-sheet-username" value="@peduarte" /> </div> </div> <SheetFooter> <Button variant="default">Save changes</Button> <SheetClose asChild> <Button variant="outline">Close</Button> </SheetClose> </SheetFooter> </SheetContent></Sheet>
<!-- Other sides: right, bottom, left --><SheetContent side="right">...</SheetContent><SheetContent side="bottom">...</SheetContent><SheetContent side="left">...</SheetContent>API Reference
Styled Component API
These props are added or materially changed by the installed Astro styled component. Standard HTML attributes remain available through the inherited interfaces noted below. Follow the Primitive and Runtime links for lower-level behavior props.
Sheet Trigger
Inherits button attributes.
Contains the following additional props:
asChild boolean false
- Description
- Merges the component behavior and props into its child element.
- Classification
- Wrapper prop
Sheet Close
Inherits button attributes.
Contains the following additional props:
asChild boolean false
- Description
- Merges the component behavior and props into its child element.
- Classification
- Wrapper prop
Primitive And Runtime API
Use these references when you need the lower-level behavior APIs behind Sheet.
Primitive API
Runtime API
- Drawer primitive
createDrawerfrom@starwind-ui/runtime/drawer
Changelog
v2.0.0
- Rebuilt Sheet on Starwind Runtime while preserving its styled API over the shared Drawer behavior.
- See the Drawer Primitive for the underlying unstyled anatomy and behavior API.