# Checkbox > Accessible checkbox built on Radix. Import from `@aspyn-io/kit`. Scaffold source: `npx shadcn@latest add https://design.aspyn.io/r/checkbox.json` ## Install ```tsx import { Checkbox } from "@aspyn-io/kit"; import { Label } from "@aspyn-io/kit"; ``` ### With label Always pair with a Label via htmlFor/id: clicking the label toggles the box. ```tsx
``` ### Controlled ```tsx const [checked, setChecked] = React.useState(false); setChecked(value === true)} /> ``` ### Disabled ```tsx ``` ### Checkbox group Group related options under a fieldset legend. ```tsx
Notifications
``` ### With description Pair the label with helper text via aria-describedby. ```tsx

Receive product news and occasional offers.

``` ### Invalid Set aria-invalid to surface the destructive state. ```tsx

You must accept the terms.

``` ## Notes - onCheckedChange receives true | false | "indeterminate": compare explicitly when storing booleans.