Forms and selection · stable · MIT

Checkbox

A native checkbox with mixed, validation, disabled, and read-only states.

Install editable source

Add Checkbox

Base UI / canonicalnpx shadcn@latest add https://gummyui.dev/r/gummy-checkbox.json

No package dependency beyond React. Shared Gummy material is resolved automatically.

Behavior contract

Semantics before surface

Semantics

A real checkbox inside a labelled 44px target.

Keyboard

Space toggles; read-only remains focusable without changing.

System support

Light and dark themes, logical RTL layout, reduced motion, responsive content, and forwarded public refs.

Source-derived reference

Anatomy and public API

Exported anatomy

These public React parts are read directly from the canonical source during the documentation build.

  • GummyCheckbox

Prop contracts

GummyCheckboxProps

Composes Omit<React.InputHTMLAttributes<HTMLInputElement>, "children" | "size" | "type"> & { label: React.ReactNode; description?: React.ReactNode; errorMessage?: React.ReactNode; indeterminate?: boolean; readOnly?: boolean; onCheckedChange?: (checked: boolean | "indeterminate") => void; wrapperClassName?: string; }

Troubleshooting

Check behavior before surface.

Implementation decisions

When to use Checkbox

Use a checkbox for an independent yes-or-no choice, or a group in which several options may be selected. Write a visible label that names the state positively, connect help and validation text programmatically, and use the indeterminate state only when it represents a genuine mixed selection. Test keyboard toggling, error recovery, high zoom, long labels, and server rejection; visual selection alone is not saved consent.

Live product source

Inspect the canonical states

The Component Lab exercises real source across default, focus, disabled, responsive, dark, reduced-motion, and RTL contexts.

Open the live Component Lab

Interactive inspection

Try Checkbox in context

Load the real component preview when you are ready to interact with its responsive, theme, and direction controls.

Editable source

Read before you install

Canonical Base UI or native source

The registry payload stays off the initial page request.