formstexulinot agent-emittableapp
PinInput
pin-input
A one-time code of fixed length, one cell per character.
Forms with the wiring documented, not guessed. Form controls take labels, descriptions and error text through props, and their keyboard and screen-reader behavior is documented in the accessibility notes below — generated from the manifest, not hand-maintained. The repository’s behavior suite holds the underlying patterns on Chromium, WebKit and a Pixel 7.
Live examples
One-time code
One-time code
Loading demo…
In your theme
This page renders in the site theme, enterprise-neutral. Every one of the 210 library themes re-colors every component through the --tx-* contract. The three below carry real token values from the library, rendered at build — no island, no extra requests.
Violet
backgroundsurfaceprimaryaccentborder
Monochrome
backgroundsurfaceprimaryaccentborder
Accessible Dark Contrast
backgroundsurfaceprimaryaccentborder
Props
| Name | Kind | Required | Default | Description |
|---|---|---|---|---|
value | string | no | — | The code so far (bind:value) |
maxlength | number | no | 4 | — |
mask | boolean | no | false | — |
disabled | boolean | no | false | — |
size | enum (sm, md, lg) | no | "md" | — |
onValueChange | event | no | — | — |
onComplete | event | no | — | — |
class | string | no | — | — |
Keyboard
| Key | Action |
|---|---|
— | See accessibility notes for keyboard behavior. |
Accessibility
- One real input; cells are presentational. Paste fills every cell.
Evidence for pin-input
Latest committed gates for pin-input (as of 2026-10-23). Static snapshot — not live CI.
Behavior
checkedscenario pin-input
Rows in tests/behavior/scenarios/pin-input.spec.ts, held to the WAI-ARIA APG pattern, run on Chromium and WebKit, and its touch rows on the Pixel 7.
Size (gzip)
texuli/pin-input · 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
- A short confirmation or PIN the person types
Don’t use when
Prefer another component
- A free numeric quantity (use number-field)

