Sheet
A panel that slides out from the edge of the screen. Useful for navigation, details, or editing forms.
Basic
A simple sheet that slides in from the right.
<Sheet @bind-Open="sheetOpen">
<SheetTrigger>
<Button>Open Sheet</Button>
</SheetTrigger>
<SheetContent Side="SheetSide.Right">
<SheetHeader>
<SheetTitle>Edit profile</SheetTitle>
<SheetDescription>
Make changes to your profile here.
</SheetDescription>
</SheetHeader>
<SheetBody>
<div class="grid gap-4 py-4">
<div class="grid grid-cols-4 items-center gap-4">
<Label Class="text-right">Name</Label>
<Input Class="col-span-3" Placeholder="Pedro Duarte" />
</div>
</div>
</SheetBody>
<SheetFooter>
<SheetClose>
<Button Variant="ButtonVariant.Outline">Cancel</Button>
</SheetClose>
<Button>Save changes</Button>
</SheetFooter>
</SheetContent>
</Sheet>Side
Use the Side property to control the direction the Sheet slides in from.
@foreach (var side in Enum.GetValues<SheetSide>())
{
<Sheet @bind-Open="sideStates[side]">
<SheetTrigger>
<Button Variant="ButtonVariant.Outline">@side</Button>
</SheetTrigger>
<SheetContent Side="@side">
<SheetHeader>
<SheetTitle>@side Sheet</SheetTitle>
<SheetDescription>
This sheet slides in from the @side.
</SheetDescription>
</SheetHeader>
<SheetBody>
<p>Content goes here.</p>
</SheetBody>
<SheetFooter>
<SheetClose>
<Button>Close</Button>
</SheetClose>
</SheetFooter>
</SheetContent>
</Sheet>
}Scrollable Content
Use SheetBody to create a scrollable area for long content. The footer stays at the bottom.
<Sheet @bind-Open="scrollableOpen">
<SheetTrigger>
<Button Variant="ButtonVariant.Outline">Scrollable Sheet</Button>
</SheetTrigger>
<SheetContent Side="SheetSide.Right">
<SheetHeader>
<SheetTitle>Terms of Service</SheetTitle>
<SheetDescription>Please read the following terms.</SheetDescription>
</SheetHeader>
<SheetBody>
@for (int i = 0; i < 30; i++)
{
<p class="mb-4 text-sm">
Long content that will scroll...
</p>
}
</SheetBody>
<SheetFooter>
<Button>Accept</Button>
</SheetFooter>
</SheetContent>
</Sheet>