ComponentsForm

formstexulinot agent-emittableapp

Form

form

A form shell with layout, validation hook and error map.

Live examples

Stacked form

Stacked form

Loading demo…

Props

Public props for Form
NameKindRequiredDefaultDescription
layoutenum (stack, grid)no"stack"—
noValidatebooleannofalse—
onValidateeventno—Return a field→message map (or Promise) to block submit
onSubmitValueseventno—Called after validation succeeds with FormData values
errorsobjectno—Controlled field→message map (bind:errors)
onErrorsChangeeventno——
classstringno——
childrenslotno——
formErrorslotno—Form-level error snippet (e.g. _form message)

Keyboard

Keyboard behavior for Form
KeyAction
—See accessibility notes for keyboard behavior.

Accessibility

  • Native constraint validation runs unless noValidate is set
  • Field errors map back onto controls after onValidate

Evidence for form

Latest committed gates for form (as of 2026-10-23). Static snapshot — not live CI.

Behavior

n/ano behavior scenario

No dedicated behavior scenario for this catalog id (a styled or display surface, covered by its unit and axe tests).

Size (gzip)

texuli/form · budget 12.0 KiB

Budget from texuli.budgets.json; re-measure with `pnpm size --filter <entry>`.

Axe

documented

  • tests/e2e/site-component-pages.spec.ts
  • docs/quality (a11y-*)

Site component pages axe gate; package-level a11y docs under docs/quality when present.

Browsers

  • chromium
  • webkit
  • mobile

Playwright projects: Desktop Chrome, Desktop Safari, Pixel 7. Firefox is a known gap on this host.

When to use

Use when

  • Collect and validate a set of fields before submit

Don’t use when

Prefer another component

  • A single control with no submit (use field alone)