formstexulinot agent-emittableapp
Checkbox
checkbox
A binary or indeterminate checkbox with optional label.
Live examples
Labeled checkbox
Labeled checkbox
Loading demo…
Indeterminate
Indeterminate
Props
| Name | Kind | Required | Default | Description |
|---|---|---|---|---|
checked | boolean | no | false | — |
defaultChecked | boolean | no | false | — |
indeterminate | boolean | no | false | — |
defaultIndeterminate | boolean | no | false | — |
name | string | no | — | — |
value | string | no | "on" | — |
disabled | boolean | no | false | — |
required | boolean | no | false | — |
id | string | no | — | — |
label | string | no | — | — |
description | string | no | — | — |
size | enum (sm, md) | no | "md" | — |
onCheckedChange | event | no | — | — |
onIndeterminateChange | event | no | — | — |
class | string | no | — | — |
Keyboard
| Key | Action |
|---|---|
— | See accessibility notes for keyboard behavior. |
Accessibility
- Visible label is wired with for; description uses aria-describedby.
Evidence for checkbox
Latest committed gates for checkbox (as of 2026-10-23). Static snapshot — not live CI.
Behavior
checkedscenario checkbox
Rows in tests/behavior/scenarios/checkbox.spec.ts, held to the WAI-ARIA APG pattern, run on Chromium, WebKit and the Pixel 7.
Size (gzip)
@texuli/primitives/checkbox · budget 4.00 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
- Independent on/off choices
- Select-all with indeterminate
Don’t use when
Prefer another component
- A single exclusive choice in a set (use radio-group)
- A switch-style setting (use switch)