sigilUI

Sheet

A slide-out panel from any edge of the screen. Built on Radix Dialog with token-driven backdrop and transitions.

@sigil-ui/componentsReact

Preview

Live preview Interactive

Import

import { Sheet, SheetTrigger, SheetContent, SheetHeader, SheetTitle, SheetDescription } from "@sigil-ui/components";

Usage

<Sheet>
  <SheetTrigger asChild>
    <Button variant="outline">Open sheet</Button>
  </SheetTrigger>
  <SheetContent>
    <SheetHeader>
      <SheetTitle>Settings</SheetTitle>
      <SheetDescription>Manage your preferences.</SheetDescription>
    </SheetHeader>
    <Stack gap={16} className="mt-6">
      <Label htmlFor="name">Name</Label>
      <Input id="name" placeholder="Your name" />
    </Stack>
  </SheetContent>
</Sheet>

Sides

<SheetContent side="left">Left panel</SheetContent>
<SheetContent side="right">Right panel (default)</SheetContent>
<SheetContent side="top">Top panel</SheetContent>
<SheetContent side="bottom">Bottom panel</SheetContent>

Custom width

<SheetContent className="w-[540px]">
  Wide sheet for complex forms.
</SheetContent>

Token integration

CSS VariableUsed for
--s-surfaceSheet background
--s-textTitle and content color
--s-text-mutedDescription color
--s-borderSheet edge border
--s-shadow-xlSheet elevation
--s-duration-normalSlide animation
--s-ease-defaultAnimation easing

Props

SheetContent

PropTypeDefaultDescription
side"top" | "right" | "bottom" | "left""right"Slide-in direction
classNamestring—Additional CSS classes
childrenReactNode—Sheet content

Accessibility

  • Focus is trapped inside the sheet when open
  • Escape closes the sheet and returns focus to trigger
  • Backdrop click closes the sheet
  • SheetTitle and SheetDescription wire aria-labelledby and aria-describedby