Checkbox

Radix-based checkbox. Supports indeterminate, disabled, and a tone="destructive" form-error variant.

Basic

<label className="flex items-center gap-2">
  <Checkbox id="terms" />
  <Label htmlFor="terms">Accept terms and conditions</Label>
</label>

States

<>
  <Checkbox />
  <Checkbox defaultChecked />
  <Checkbox checked="indeterminate" />
  <Checkbox disabled />
  <Checkbox disabled defaultChecked />
</>

Destructive tone

<label className="flex items-center gap-2">
  <Checkbox tone="destructive" id="delete" />
  <Label htmlFor="delete">Delete my account</Label>
</label>

Sizes

<>
  <Checkbox size="md" defaultChecked />
  <Checkbox size="lg" defaultChecked />
</>

Group

<div className="flex flex-col gap-3">
  <Label>Sidebar</Label>
  {["Recents", "Home", "Applications", "Desktop"].map((item) => (
    <label key={item} className="flex items-center gap-2">
      <Checkbox id={item} />
      <Label htmlFor={item} weight="normal" className="cursor-pointer">{item}</Label>
    </label>
  ))}
</div>

Props

PropTypeDefault
checkedboolean | "indeterminate"
onCheckedChange(v: boolean | "indeterminate") => void
defaultCheckedbooleanfalse
disabledbooleanfalse
tone"default" | "destructive""default"
size"md" | "lg""md"
…restRadix Checkbox.Root props

Source

packages/react/src/components/checkbox.tsx · Figma node 2819:21780