Checkbox

An easily stylable checkbox component.

API reference

Import the component and assemble its parts:

Anatomy
import { Checkbox } from '@base-ui-components/react/checkbox';

<Checkbox.Root>
  <Checkbox.Indicator />
</Checkbox.Root>

Root

Represents the checkbox itself. Renders a <button> element and a hidden <input> beside.

PropTypeDefault
name

string

undefined

defaultChecked

boolean

false

checked

boolean

undefined

onCheckedChange

((checked: boolean, event: Event) => void)

undefined

indeterminate

boolean

false

value

string | number

undefined

parent

boolean

false

autoFocus

boolean

false

disabled

boolean

false

readOnly

boolean

false

required

boolean

false

inputRef

null | RefCallback | RefObject

undefined

id

string

undefined

className

string | ((state: State) => string)

undefined

render

| ReactElement
| ((props: GenericHTMLProps, state: State) => ReactElement)

undefined

Attribute
Description
data-checked
data-unchecked
data-disabled
data-readonly
data-required
data-valid
data-invalid
data-dirty
data-touched
data-filled
data-focused

Indicator

Indicates whether the checkbox is ticked. Renders a <span> element.

PropTypeDefault
className

string | ((state: State) => string)

undefined

keepMounted

boolean

false

render

| ReactElement
| ((props: GenericHTMLProps, state: State) => ReactElement)

undefined

Attribute
Description
data-checked
data-unchecked
data-disabled
data-readonly
data-required
data-valid
data-invalid
data-dirty
data-touched
data-filled
data-focused
data-starting-style
data-ending-style