# Checkbox
> Generated from checkbox.contract.json — do not edit by hand.

Let a user turn one or more independent options on or off.

Tier: **leaf-lit**. Frameworks: HTML (paste-and-run, no build step) · React · Vue 3.

Surfaces: editor, dashboard, settings, audience.

## Props
| Prop | Type | Default | Notes |
| --- | --- | --- | --- |
| `checked` | boolean | `false` | Controlled selection |
| `indeterminate` | boolean | `false` | Mixed state for check-all |
| `disabled` | boolean | `false` | Disables the control |
| `change` | CustomEvent<{checked}> | `—` | Composed event; read e.detail.checked |

## Visual standard (measured)
- Box: 14×14 r4
- Rest border: #B4BCCF
- Hover border: #D3B4FF
- Checked fill: #6A1EBB + white 12px tick
- Label: Plus Jakarta 14/21

## When to use
- **Checkbox** — one or more independent options; applies on submit
- **Radio** — exactly one from a small mutually-exclusive set
- **Switch** — a single setting that takes effect immediately

Labels are sentence case and state what the control does — 'Let participants join anonymously', not 'Join Anonymously'. Keep product nouns: Q&A, Word cloud.
