Checkbox
Custom styled checkbox with Storm's border signature.
Usage
tsx
1import { Checkbox, Label } from '@storm-ds/ui'23<div className="flex items-center gap-2">4 <Checkbox id="terms" />5 <Label htmlFor="terms">Accept terms</Label>6</div>Default
tsx
1<div className="flex items-center gap-2">2 <Checkbox id="opt1" />3 <Label htmlFor="opt1">Option one</Label>4</div>5<div className="flex items-center gap-2">6 <Checkbox id="opt2" defaultChecked />7 <Label htmlFor="opt2">Option two (checked)</Label>8</div>9<div className="flex items-center gap-2">10 <Checkbox id="opt3" disabled />11 <Label htmlFor="opt3">Disabled</Label>12</div>Sizes
tsx
1<div className="flex items-center gap-2">2 <Checkbox id="cb-sm" size="sm" defaultChecked />3 <Label htmlFor="cb-sm">Small</Label>4</div>5<div className="flex items-center gap-2">6 <Checkbox id="cb-md" size="md" defaultChecked />7 <Label htmlFor="cb-md">Medium</Label>8</div>9<div className="flex items-center gap-2">10 <Checkbox id="cb-lg" size="lg" defaultChecked />11 <Label htmlFor="cb-lg">Large</Label>12</div>With Description
You agree to our Terms of Service and Privacy Policy.
tsx
1<div className="flex gap-2">2 <Checkbox id="terms" className="mt-0.5" />3 <div>4 <Label htmlFor="terms">Accept terms</Label>5 <p className="text-xs text-storm-muted-foreground">You agree to our Terms of Service and Privacy Policy.</p>6 </div>7</div>Group
tsx
1<fieldset className="space-y-3">2 <legend className="text-sm font-medium text-storm-foreground mb-2">Select interests</legend>3 <div className="flex items-center gap-2">4 <Checkbox id="dev" defaultChecked />5 <Label htmlFor="dev">Development</Label>6 </div>7 <div className="flex items-center gap-2">8 <Checkbox id="des" />9 <Label htmlFor="des">Design</Label>10 </div>11 <div className="flex items-center gap-2">12 <Checkbox id="mkt" />13 <Label htmlFor="mkt">Marketing</Label>14 </div>15</fieldset>Props
| Prop | Type | Default | Description |
|---|---|---|---|
| className | string | - | Custom classes |
| disabled | boolean | false | Disables the checkbox |
| size | 'sm' | 'md' | 'lg' | 'md' | Checkbox size |
Use with AI
Create a Next.js component using Storm UI's Checkbox. Import: `import { Checkbox, Label } from '@storm-ds/ui'`. Custom styled checkbox with appearance-none and Storm border. Sizes: sm, md, lg. Uses checked: pseudo-classes. Pair with Label using htmlFor/id. Example: `<div className="flex items-center gap-2"><Checkbox id="terms" /><Label htmlFor="terms">Accept terms</Label></div>`, `<Checkbox size="lg" id="agree" />`