Skip to content

Editor primitives

The card footer hosts editor primitives so the user can correct or augment a model output without leaving the card.

Edit the recipient and try sending — live

Primitives

PrimitiveUse
CK.EditFieldtyped input — text / number / date / select with the AA-compliant focus ring
CK.EditMoneycurrency input with locale-aware formatting
CK.EditCommitthe commit affordance — labels its action verb (Save, Send, File)

Anatomy

import { CK } from "@matter/components";

<CK.Frame phase="respond">
  <CK.Body>{/* Domain artifact */}</CK.Body>
  <CK.Footer>
    <CK.EditField label="Recipient" defaultValue="alex@matter.so" />
    <CK.EditCommit verb="Send" />
  </CK.Footer>
</CK.Frame>

Validation cadence

Validate on blur, not on every keystroke. Errors render inline next to the offending field (see Warnings).

Async commit

The commit affordance carries its own loading state — disable on submit, surface progress, return to default on resolve. Don't fire a toast on success; the card itself is the receipt.

Use CK.EditCommit with a real verb (Send invite, File document).
Don't render a generic "Submit" button. Verbs are the grammar of the system.

On this page