# 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 `
` element by its `id`. | — | | `id` | `string` | An identifier applied to the underlying ``, used to reference it from form validation errors. | — | | `disabled` | `boolean` | When `true`, prevents interaction. | `false` | | `required` | `boolean` | When `true`, marks the input as required and appends an asterisk to the `text`. | `false` | | `ref` | `Ref` | A ref forwarded to the underlying `` element. | — | Form and accessibility props such as `autoFocus`, `tabIndex`, `aria-label`, `aria-labelledby`, `aria-describedby`, `aria-invalid`, and event handlers like `onFocus`, `onBlur`, and `onKeyDown` are forwarded to the underlying `` element, as is `ref`. Any other props, including `className`, are forwarded to the wrapping `