Reference version

Checkbox

A Jetpack Compose Checkbox component for selection controls.

Android
Bundled version:
~55.0.12

For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.

Expo UI Checkbox matches the official Jetpack Compose Checkbox API.

Installation

Terminal
npx expo install @expo/ui

If you are installing this in an existing React Native app, make sure to install expo in your project.

Usage

Basic checkbox

CheckboxExample.tsx
import { useState } from 'react'; import { Host, Checkbox } from '@expo/ui/jetpack-compose'; export default function CheckboxExample() { const [checked, setChecked] = useState(false); return ( <Host matchContents> <Checkbox value={checked} onCheckedChange={setChecked} /> </Host> ); }

Custom colors

CustomColorsExample.tsx
import { useState } from 'react'; import { Host, Checkbox } from '@expo/ui/jetpack-compose'; export default function CustomColorsExample() { const [checked, setChecked] = useState(false); return ( <Host matchContents> <Checkbox value={checked} onCheckedChange={setChecked} colors={{ checkedColor: '#6200EE', checkmarkColor: '#FFFFFF', }} /> </Host> ); }

Select all (TriStateCheckbox)

Use TriStateCheckbox for a parent checkbox that reflects the state of its children. It supports three states: 'on', 'off', and 'indeterminate'.

Apply the toggleable modifier to each Row to make the entire row (checkbox + label) tappable with correct accessibility semantics. When using toggleable on the row, omit onCheckedChange/onClick from the checkbox itself to avoid double-handling.

SelectAllExample.tsx
import { useState } from 'react'; import { Host, Checkbox, TriStateCheckbox, Row, Column, Text } from '@expo/ui/jetpack-compose'; import { toggleable } from '@expo/ui/jetpack-compose/modifiers'; export default function SelectAllExample() { const [child1, setChild1] = useState(false); const [child2, setChild2] = useState(false); const [child3, setChild3] = useState(false); const parentState = child1 && child2 && child3 ? 'on' : !child1 && !child2 && !child3 ? 'off' : 'indeterminate'; return ( <Host matchContents> <Column> <Row verticalAlignment="center" modifiers={[ toggleable( parentState === 'on', () => { const newState = parentState !== 'on'; setChild1(newState); setChild2(newState); setChild3(newState); }, { role: 'checkbox' } ), ]}> <TriStateCheckbox state={parentState} /> <Text>Select all</Text> </Row> <Row verticalAlignment="center" modifiers={[toggleable(child1, () => setChild1(!child1), { role: 'checkbox' })]}> <Checkbox value={child1} /> <Text>Option 1</Text> </Row> <Row verticalAlignment="center" modifiers={[toggleable(child2, () => setChild2(!child2), { role: 'checkbox' })]}> <Checkbox value={child2} /> <Text>Option 2</Text> </Row> <Row verticalAlignment="center" modifiers={[toggleable(child3, () => setChild3(!child3), { role: 'checkbox' })]}> <Checkbox value={child3} /> <Text>Option 3</Text> </Row> </Column> </Host> ); }

API

import { Checkbox, TriStateCheckbox } from '@expo/ui/jetpack-compose';

Components

Checkbox

Android

Type: React.Element<CheckboxProps>

A checkbox component.

CheckboxProps

colors

Android
Optional • Type: CheckboxColors

Colors for checkbox core elements.

enabled

Android
Optional • Type: boolean • Default: true

Whether the checkbox is enabled.

modifiers

Android
Optional • Type: ModifierConfig[]

Modifiers for the component.

onCheckedChange

Android
Optional • Type: (value: boolean) => void

Callback function that is called when the checked state changes.

value

Android
Type: boolean

Indicates whether the checkbox is checked.

TriStateCheckbox

Android

Type: React.Element<TriStateCheckboxProps>

A tri-state checkbox component that supports 'on', 'off', and 'indeterminate' states. Useful for "select all" patterns where the parent checkbox reflects the state of its children.

TriStateCheckboxProps

colors

Android
Optional • Type: CheckboxColors

Colors for checkbox core elements.

enabled

Android
Optional • Type: boolean • Default: true

Whether the checkbox is enabled.

modifiers

Android
Optional • Type: ModifierConfig[]

Modifiers for the component.

onClick

Android
Optional • Type: () => void

Callback function that is called when the checkbox is clicked.

state

Android

The toggleable state of the checkbox: 'on', 'off', or 'indeterminate'.

Types

CheckboxColors

Android

Colors for checkbox core elements.

PropertyTypeDescription
checkedColor(optional)ColorValue
-
checkmarkColor(optional)ColorValue
-
disabledCheckedColor(optional)ColorValue
-
disabledIndeterminateColor(optional)ColorValue
-
disabledUncheckedColor(optional)ColorValue
-
uncheckedColor(optional)ColorValue
-

ToggleableState

Android

Literal Type: string

The toggleable state of a tri-state checkbox.

Acceptable values are: 'on' | 'off' | 'indeterminate'