Concrete
layout
Component

Form drawer

Inline or fixed side-sheet form surface for inspect-and-edit workflows.

Form drawer is for contextual editing beside dense product surfaces. It uses the same shell and row language as panels and dialogs.

Playground

Props in the URL.

Controls update query params directly. Complex slots use curated fixtures so component states stay deterministic, linkable, and screenshot-ready.

Loading playground.
States

Rendered matrix.

Every state maps to the same component render route through the `state` query param.

Default

Right-side drawer with settings rows.

/render state
Review

Drawer with validation and review actions.

/render state
Left

Left-side drawer variant for navigation-adjacent forms.

/render state
Props

Public contract.

NameTypeDefaultDescription
openbooleantrueControls whether the drawer renders.
presentation'inline' | 'fixed'inlineInline documentation stage or fixed viewport overlay.
side'left' | 'right'rightDrawer edge for fixed or inline stages.
onOpenChange(open: boolean) => void-Close affordance callback.
title *ReactNode-Primary form title rendered in the shell header.
descriptionReactNode-Supporting copy below the title.
footerReactNode-Footer action slot, usually cancel and submit buttons.
status'default' | 'error' | 'success'defaultOuter status border treatment.
childrenReactNode-Drawer form content.