Concrete
layout
Component

Form dialog

Inline or fixed modal form surface using FormShell inside a dimmed stage.

Form dialog provides the constrained form surface. Product code owns focus trapping and portal strategy when using fixed presentation.

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

Centered modal form with text, choice, and footer actions.

/render state
Wide

Wider modal for picker and upload compositions.

/render state
Error

Dialog with validation feedback.

/render state
Props

Public contract.

NameTypeDefaultDescription
openbooleantrueControls whether the dialog renders.
presentation'inline' | 'fixed'inlineInline documentation stage or fixed viewport overlay.
size'compact' | 'default' | 'wide'defaultDialog max-width preset.
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-Dialog form content.