Sheet
A panel that slides in from an edge — for a side quest, not for a task.
Loading documentation…
A Sheet is a Dialog with a different geometry, and it
exists as its own component for one reason: the edge it comes from decides the
size axis, the animation and the border, and none of that is a sensible prop on
a centred dialog.
Reach for it when the content is a side quest to the page — a detail pane, a filter panel, a record's full record — rather than a task that has to end before the page continues.
right is the default, and it is right almost always: it is where a detail
pane lives, and it leaves the navigation on the left untouched. left is for
navigation itself, bottom for something that belongs to the bottom of the
viewport.
sm, base, lg and xl set the width for a left or right sheet and the
height for a top or bottom one — the axis follows the edge, which is exactly
why this is a separate component.
Like Dialog, a sheet is dismissible by default. dismissible={false} is for
the rare panel that must be answered; for a side quest it is almost always
wrong, since the whole point is that the page is still there behind it.
heyo-ui ships no phone-style drawer. side="bottom" is the same component
with a different edge, and it behaves like a dialog — because that is what it
is.
Whether the backdrop and Escape close it. It defaults to true.
Controlled and uncontrolled state.
Fires on open and close.
The edge it slides from. It defaults to right.
Width for a left or right sheet, height for a top or bottom one.
Hides the corner close button.
Open and close it. Both take render to become a Button.
The heading block, wired to the panel's accessible name.
The scrolling content column.
Right-aligned actions, pinned to the bottom edge.