Wide
.modal-dialog--wide for longer forms.
Survey
Use wide dialogs for multi-field editors.
Centered dialog overlay — confirm layouts and wide forms.
Live
Submit this application with the tailored resume?
You can review the packet before sending.
<div class="modal-root is-open" data-open="true">
<button type="button" class="modal-backdrop" aria-label="Close dialog"></button>
<div class="modal-dialog" role="dialog" aria-modal="true" aria-labelledby="modal-title" tabindex="-1">
<div class="modal-head">
<h2 class="modal-title" id="modal-title">Confirm apply</h2>
<button type="button" class="modal-close" aria-label="Close">…</button>
</div>
<div class="modal-body">
<div class="modal-confirm">
<p class="modal-confirm__text">Submit this application?</p>
<p class="modal-confirm__detail">You can review first.</p>
<div class="actions">…</div>
</div>
</div>
</div>
</div>
import {
Modal, ModalDialog, ModalHead, ModalTitle, ModalClose, ModalBody, ModalConfirm, Button,
} from 'caustica-design/core'
import 'caustica-design/css'
<Modal open={open} onOpenChange={setOpen} backdropLabel="Close dialog">
<ModalDialog labelledBy={titleId}>
<ModalHead>
<ModalTitle id={titleId}>Confirm apply</ModalTitle>
<ModalClose label="Close" onClick={() => setOpen(false)} />
</ModalHead>
<ModalBody>
<ModalConfirm text="Submit this application?" detail="You can review first.">
<div className="actions">
<Button variant="primary">Confirm</Button>
<Button variant="ghost" onClick={() => setOpen(false)}>Cancel</Button>
</div>
</ModalConfirm>
</ModalBody>
</ModalDialog>
</Modal>
.modal-dialog--wide for longer forms.
Use wide dialogs for multi-field editors.
.modal-confirm text + detail + actions.
Delete this draft?
This cannot be undone.
role="dialog", aria-modal="true", and a labelled title.backdropLabel / label).| Class | Description |
|---|---|
.modal-root / .is-open |
Fixed overlay root. |
.modal-backdrop |
Dismiss click target. |
.modal-dialog / --wide |
Dialog panel (+ wide). |
.modal-head / .modal-title / .modal-close |
Header chrome. |
.modal-body |
Scrollable body. |
.modal-confirm / __text / __detail |
Confirm copy layout. |
From src/core/Modal.tsx — compound Modal* components + useModalTitleId.
| Prop | Type | Default | Description |
|---|---|---|---|
open / onOpenChange |
boolean / fn |
— | Modal controlled state. |
backdropLabel |
string |
— | Required accessible name for backdrop. |
wide |
boolean |
false |
ModalDialog wide modifier. |
labelledBy / label |
string |
— | Dialog accessible name. |
text / detail |
ReactNode |
— | ModalConfirm copy. |
label |
string |
— | ModalClose aria-label (required). |