# Checkbox
A form checkbox input with text, supporting checked, unchecked, and indeterminate states. Built on a native `` for full form compatibility and accessibility.
```tsx demo
import { Checkbox } from "@tenstorrent/vesper/checkbox";
export default function CheckboxDemo() {
return ;
}
```
## Options
| Prop | Type | Description | Default |
| ---------------- | -------------------------------------- | ----------------------------------------------------------------------------------------------------- | ------- |
| `text` | `string` | The text displayed next to the checkbox, also used as the input's default `aria-label`. **Required.** | — |
| `size` | `"sm" \| "md"` | The size of the checkbox and its text. | `"md"` |
| `indeterminate` | `boolean` | When `true`, renders the checkbox in an indeterminate (mixed) state with a dash icon. | `false` |
| `checked` | `boolean` | The checked state of the checkbox (controlled mode). | — |
| `defaultChecked` | `boolean` | The initial checked state (uncontrolled mode). | `false` |
| `onChange` | `ChangeEventHandler` | Callback fired when the checked state changes. | — |
| `name` | `string` | The form field name submitted with form data. | — |
| `value` | `string` | The value submitted with form data when the checkbox is checked. | `"on"` |
| `form` | `string` | Associates the checkbox with a `