formstexulinot agent-emittableapp
Form
form
A form shell with layout, validation hook and error map.
Live examples
Stacked form
Stacked form
Loading demo…
Props
| Name | Kind | Required | Default | Description |
|---|---|---|---|---|
layout | enum (stack, grid) | no | "stack" | — |
noValidate | boolean | no | false | — |
onValidate | event | no | — | Return a field→message map (or Promise) to block submit |
onSubmitValues | event | no | — | Called after validation succeeds with FormData values |
errors | object | no | — | Controlled field→message map (bind:errors) |
onErrorsChange | event | no | — | — |
class | string | no | — | — |
children | slot | no | — | — |
formError | slot | no | — | Form-level error snippet (e.g. _form message) |
Keyboard
| Key | Action |
|---|---|
— | 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.tsdocs/quality (a11y-*)
Site component pages axe gate; package-level a11y docs under docs/quality when present.
Browsers
chromiumwebkitmobile
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)