Checkbox
A control that allows the user to toggle between checked and not checked.
Playground
Installation
Install in any React + Tailwind project:
$npx shadcn@latest add https://twigs.globirdenergy.com.au/r/checkbox.json
Source
The exact file the registry serves to consumers.
'use client';
import * as React from 'react';
import { Checkbox as BaseCheckbox } from '@base-ui/react/checkbox';
import { Check } from 'lucide-react';
import { cn } from '@/lib/utils';
function Checkbox({ className, ...props }: React.ComponentProps<typeof BaseCheckbox.Root>) {
return (
<BaseCheckbox.Root
data-slot="checkbox"
className={cn(
// Spec source: Figma "APP Re-design Phase 1" → page "Checkbox ✅" (24x24, rad 4, pink)
'peer inline-flex size-6 shrink-0 items-center justify-center rounded border border-input bg-transparent shadow-xs transition-shadow outline-none',
'focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50',
'data-[checked]:bg-primary data-[checked]:text-primary-foreground data-[checked]:border-primary',
'disabled:cursor-not-allowed disabled:opacity-50',
'aria-invalid:border-destructive aria-invalid:ring-destructive/20',
className,
)}
{...props}
>
<BaseCheckbox.Indicator
data-slot="checkbox-indicator"
className="flex items-center justify-center text-current transition-none"
>
<Check className="size-4" />
</BaseCheckbox.Indicator>
</BaseCheckbox.Root>
);
}
export { Checkbox };