Content
- Title: the thing itself ("Priya Natarajan → Leah Okonkwo"). Subtitle: who and when.
A right-hand panel for one item's details or a short list, below the top bar.
import { … } from "@brdgapp/ui/components/drawer"Drawer opens one item's details, or a short list, from the right, below the top bar, so the page it came from stays in view. Bridge uses it for an intro, a relationship, or a week of contacts. It comes in two widths: one item, or a list.
Priya Natarajan → Leah Okonkwo
Made by you · 4 days ago
Priya Natarajan
Co-founder & CEO
Leah Okonkwo
Partner
Drawn in place and smaller. The real drawer opens from the right edge of the page.
Scrim. Dims the page below the top bar.
Panel. Full height below the 56px top bar, from the right edge: 576px (item) or 672px (list), the drawer shadow.
Header. Title, a muted line under it, optional actions, and Close.
Body. Scrolls on its own.
Opens from the right, below the top bar.
| State | What happens |
|---|---|
| Open | Slides in from the right; focus moves into it. |
| Closed | Slides out; focus returns to the row that opened it. |
Do
Load the drawer's data with DataState inside the body.Don't
Wait to open it until the data arrives.| Keys | Action |
|---|---|
| Tab | Moves through the drawer and stays inside it. |
| Esc | Closes it. |
Drawer
The panel, built on Base UI Dialog.
| Prop | Type | Default | Description |
|---|---|---|---|
open | boolean | — | Whether it shows. |
onClose | () => void | — | Called on Close or Esc. |
title | ReactNode | — | The item. |
subtitle | ReactNode | — | Who and when. |
size | "item" | "list" | "item" | 576 or 672px. |
actions | ReactNode | — | Beside Close, e.g. an ActionMenu. |
children | ReactNode | — | The body. |
What it's built from and where it's used, read from the code. When you change it, check these too.
Where the code still differs from the system. Follow the system, not the gap.