Beta

Search Documentation

Search through documentation pages

Components

Sheet

A panel that slides in from the edge of the screen, built on Base UI Dialog.

Preview

'use client';

import { Button } from '@/registry/san-francisco/ui/button';
import {
  Sheet,
  SheetClose,
  SheetContent,
  SheetFooter,
  SheetHeader,
  SheetTitle,
  SheetTrigger,
} from '@/registry/san-francisco/ui/sheet';

export default function SheetDemo() {
  return (
    <Sheet>
      <SheetTrigger render={<Button variant="outline">Open Sheet</Button>} />
      <SheetContent>
        <SheetHeader>
          <SheetTitle>Sheet Title</SheetTitle>
        </SheetHeader>
        <div className="p-4">
          <p className="text-muted-foreground text-sm">This is the sheet content.</p>
        </div>
        <SheetFooter>
          <SheetClose render={<Button variant="outline">Close</Button>} />
        </SheetFooter>
      </SheetContent>
    </Sheet>
  );
}

Installation

bun
bunx shadcn@latest add @sft-ui/sheet

Sides

'use client';

import { Button } from '@/registry/san-francisco/ui/button';
import {
  Sheet,
  SheetClose,
  SheetContent,
  SheetFooter,
  SheetHeader,
  SheetTitle,
  SheetTrigger,
} from '@/registry/san-francisco/ui/sheet';

export default function SheetDemoSides() {
  return (
    <>
      <Sheet>
        <SheetTrigger render={<Button variant="outline">Right</Button>} />
        <SheetContent side="right">
          <SheetHeader>
            <SheetTitle>Right</SheetTitle>
          </SheetHeader>
        </SheetContent>
      </Sheet>
      <Sheet>
        <SheetTrigger render={<Button variant="outline">Left</Button>} />
        <SheetContent side="left">
          <SheetHeader>
            <SheetTitle>Left</SheetTitle>
          </SheetHeader>
        </SheetContent>
      </Sheet>
      <Sheet>
        <SheetTrigger render={<Button variant="outline">Top</Button>} />
        <SheetContent side="top">
          <SheetHeader>
            <SheetTitle>Top</SheetTitle>
          </SheetHeader>
        </SheetContent>
      </Sheet>
      <Sheet>
        <SheetTrigger render={<Button variant="outline">Bottom</Button>} />
        <SheetContent side="bottom">
          <SheetHeader>
            <SheetTitle>Bottom</SheetTitle>
          </SheetHeader>
        </SheetContent>
      </Sheet>
    </>
  );
}

API Reference

See the Base UI Dialog documentation for the API reference.