<!-- Protocore Design System — Drawer -->
# Drawer

- **Category:** Overlay (`overlay`)
- **Slug:** `overlay/drawer`
- **Status:** stable
- **Platforms:** web
- **Import:** `import { Drawer } from "@protocore/pds";`
- **Docs:** https://pds.protocore.io/components/overlay/drawer

> Alias of Sheet — a side-anchored overlay that slides in from an edge for inspectors, filters, and detail panes.

## An alias of Sheet

**Drawer** is the Mantine-familiar name for this library's **Sheet** — the same component, exported under a second name for discoverability. `Drawer.Root`, `Drawer.Trigger`, `Drawer.Content`, `Drawer.Title`, `Drawer.Description`, `Drawer.Close`, and `Drawer.Footer` are `Sheet`'s parts re-aliased 1:1. See the [Sheet](/overlay/sheet) page for the full API, anchoring options, and accessibility notes.

## Examples

### Basics

Compose it exactly like Sheet — a trigger opens a content panel that slides in from the inline edge.

```tsx
import { Drawer, Button, Text, VStack, DefinitionList } from "@protocore/pds";

export default function DrawerBasics() {
  return (
    <Drawer.Root>
      <Drawer.Trigger asChild>
        <Button variant="secondary">Inspect request</Button>
      </Drawer.Trigger>
      <Drawer.Content>
        <Drawer.Title>Request 8f21a4</Drawer.Title>
        <Drawer.Description>POST /v1/ledger/append · 42ms</Drawer.Description>
        <VStack gap={4} style={{ marginTop: 20 }}>
          <DefinitionList
            items={[
              { term: "Status", description: "200 OK" },
              { term: "Region", description: "eu-central-1" },
              { term: "Actor", description: "ci-deploy-bot" },
            ]}
          />
          <Text size="sm" color="secondary">
            Full trace retained for 30 days.
          </Text>
        </VStack>
        <Drawer.Footer>
          <Drawer.Close asChild>
            <Button variant="secondary">Close</Button>
          </Drawer.Close>
        </Drawer.Footer>
      </Drawer.Content>
    </Drawer.Root>
  );
}
```

## Accessibility

**Notes**

- Identical to Sheet: focus is trapped while open, Escape closes, and the trigger is restored on close (Radix Dialog under the hood).

## Related

`sheet`, `dialog`, `modal`

---

© Protocore. All rights reserved. Use of the Protocore Design System requires prior written authorization from Protocore (contact@protocore.io). These machine-readable materials must not be ingested into ML-training datasets or derivative design systems. See https://pds.protocore.io/legal/
