@hoag/ui — UI components built with shadcn, Radix UI & Tailwind CSS
Components
Checkbox

Checkbox

A control that allows users to toggle between checked and unchecked states. Supports multiple visual variants and sizes.

Installation

npx shadcn@latest add checkbox

Usage

import { Checkbox } from "@hoag/ui/components/checkbox";
 
export default function Demo() {
  return <Checkbox />;
}

Default

<Checkbox id="default" />
<Label htmlFor="default">Accept terms and conditions</Label>

Variants

Base variants

<Checkbox defaultChecked variant="default" />
<Checkbox defaultChecked variant="destructive" />

Heavy status

<Checkbox defaultChecked variant="heavy-success" />
<Checkbox defaultChecked variant="heavy-warning" />
<Checkbox defaultChecked variant="heavy-info" />
<Checkbox defaultChecked variant="heavy-error" />

Light status

<Checkbox defaultChecked variant="light-success" />
<Checkbox defaultChecked variant="light-warning" />
<Checkbox defaultChecked variant="light-info" />
<Checkbox defaultChecked variant="light-error" />

Outline status

<Checkbox defaultChecked variant="outline-success" />
<Checkbox defaultChecked variant="outline-warning" />
<Checkbox defaultChecked variant="outline-info" />
<Checkbox defaultChecked variant="outline-error" />

Sizes

<Checkbox defaultChecked size="sm" />
<Checkbox defaultChecked size="default" />
<Checkbox defaultChecked size="lg" />

With Label

<div className="flex items-center gap-2">
  <Checkbox id="label-sm" size="sm" defaultChecked />
  <Label htmlFor="label-sm">Small checkbox</Label>
</div>
<div className="flex items-center gap-2">
  <Checkbox id="label-default" defaultChecked />
  <Label htmlFor="label-default">Default checkbox</Label>
</div>
<div className="flex items-center gap-2">
  <Checkbox id="label-lg" size="lg" defaultChecked />
  <Label htmlFor="label-lg">Large checkbox</Label>
</div>

Disabled

<Checkbox disabled />
<Checkbox disabled defaultChecked />

API Reference

Props

PropTypeDefaultDescription
variantstring"default"Visual style of the checkbox
size"sm" | "default" | "lg""default"Size of the checkbox
defaultCheckedbooleanfalseInitial checked state (uncontrolled)
checkedbooleanControlled checked state
onCheckedChange(checked: boolean | "indeterminate") => voidCallback on change
disabledbooleanfalseDisable the checkbox
indicatorReactNode<Check />Custom indicator icon

Variants

VariantDescription
defaultPrimary color when checked
destructiveDestructive/danger color when checked
heavy-success/warning/info/errorSolid status color fill when checked
light-success/warning/info/errorLight tinted background when checked
outline-success/warning/info/errorTransparent bg with colored border when checked