Primitive / Atomstable

Checkbox

Radix checkbox with glass, liquid, matte, and outline surface variants.

@glinui/uiComponent: checkbox

Installation$

Package Manager$

pnpm add @glinui/ui @glinui/tokens

Registry$

pnpm dlx @glinui/cli@latest add checkbox

Usage$

TSX
1import { Checkbox } from "@glinui/ui"
2
3export function CheckboxBasicDemo() {
4return (
5 <div className="flex items-center gap-2">
6 <Checkbox id="basic" />
7 <label htmlFor="basic" className="text-sm">Accept terms and conditions</label>
8 </div>
9)
10}

Examples$

Checked by Default$

TSX
1import { Checkbox } from "@glinui/ui"
2
3export function CheckboxDefaultCheckedDemo() {
4return (
5 <div className="flex items-center gap-2">
6 <Checkbox id="checked" defaultChecked />
7 <label htmlFor="checked" className="text-sm">Subscribed to newsletter</label>
8 </div>
9)
10}

Surface Variants$

TSX
1import { Checkbox } from "@glinui/ui"
2
3export function CheckboxVariantsDemo() {
4return (
5 <div className="flex flex-wrap items-center gap-3">
6 <Checkbox variant="default" defaultChecked aria-label="Default" />
7 <Checkbox variant="glass" defaultChecked aria-label="Glass" />
8 <Checkbox variant="liquid" defaultChecked aria-label="Liquid" />
9 <Checkbox variant="matte" defaultChecked aria-label="Matte" />
10 <Checkbox variant="outline" defaultChecked aria-label="Outline" />
11 </div>
12)
13}

Sizes$

TSX
1import { Checkbox } from "@glinui/ui"
2
3export function CheckboxSizesDemo() {
4return (
5 <div className="flex flex-wrap items-center gap-4">
6 <Checkbox size="sm" defaultChecked aria-label="Small checkbox" />
7 <Checkbox size="md" defaultChecked aria-label="Medium checkbox" />
8 <Checkbox size="lg" defaultChecked aria-label="Large checkbox" />
9 </div>
10)
11}

Disabled$

TSX
1import { Checkbox } from "@glinui/ui"
2
3export function CheckboxDisabledDemo() {
4return (
5 <div className="space-y-2">
6 <div className="flex items-center gap-2">
7 <Checkbox id="dis-unchecked" disabled />
8 <label htmlFor="dis-unchecked" className="text-sm">Disabled unchecked</label>
9 </div>
10 <div className="flex items-center gap-2">
11 <Checkbox id="dis-checked" disabled defaultChecked />
12 <label htmlFor="dis-checked" className="text-sm">Disabled checked</label>
13 </div>
14 </div>
15)
16}

With Form Label$

TSX
1import { Checkbox } from "@glinui/ui"
2
3export function CheckboxFormLabelDemo() {
4return (
5 <div className="space-y-2">
6 <div className="flex items-center gap-2">
7 <Checkbox id="terms" required name="terms" />
8 <label htmlFor="terms" className="text-sm">I agree to the terms of service</label>
9 </div>
10 <div className="flex items-center gap-2">
11 <Checkbox id="privacy" name="privacy" />
12 <label htmlFor="privacy" className="text-sm">I agree to the privacy policy</label>
13 </div>
14 </div>
15)
16}

Accessibility$

  • Built on @radix-ui/react-checkbox, which renders a fully accessible checkbox with keyboard support.
  • Always pair with a <label> via htmlFor / id or wrap both in a <label> element.
  • The required prop sets aria-required on the underlying button element.
  • Space toggles the checkbox; Enter is not handled by default (browser behavior).

Reduced Motion$

The check indicator uses a brief scale/fade transition that is suppressed when prefers-reduced-motion: reduce is active.

API Reference$

PropTypeRequiredDefaultDescription
size"sm" | "md" | "lg"No"md"Variant option from checkboxVariants.
variant"default" | "glass" | "frosted" | "liquid" | "matte" | "outline"No"default"Variant option from checkboxVariants.

Source$

TSX
1import { Checkbox } from "@glinui/ui"
packages/ui/src/components/checkbox.tsx
packages/ui/src/tests/checkbox.test.tsx

Generated API Snapshot

Beta

Auto-extracted from TypeScript source in packages/ui/src/components/checkbox.tsx. This section is in beta and may lag behind hand-curated docs. Regenerate with pnpm --filter @glinui/docs api:generate.

Generated: 2026-02-19T17:59:28.468Z · Full index: /docs/api-metadata

Primary Props Type

CheckboxProps

CheckboxProps

PropTypeRequiredDefaultDescription
size"sm" | "md" | "lg"No"md"Variant option from checkboxVariants.
variant"default" | "glass" | "frosted" | "liquid" | "matte" | "outline"No"default"Variant option from checkboxVariants.