TrademarkTrademark
Docs
Ctrl k
Search docs...
Form Controls

Checkbox

Updated: October 18, 2026
View on GitHub
Soon
Not released yet. This is on main and is not in any published version yet. It will not install today.

Checkbox is a 20pt box, filled with the brand colour and a check when checked, or a dash when indeterminate. A tap anywhere on the row, label included, toggles it. See the web Checkbox for the same component in the browser.

Controlled

Pass checked and update it in onToggle, which gets the next state.

Uncontrolled

Leave out checked and the checkbox keeps its own state, starting from defaultChecked.

Indeterminate

indeterminate shows a dash, for a "select all" box when only some items are checked. Screen readers read it as mixed.

Disabled

Differences from the web

  • The handler is onToggle(checked). There is no name, value or form submission.
  • A checkbox without a label takes taps from 44pt around it. Give it ariaLabel so screen readers can name it.

API reference

Prop
Type
Default
Description
checkedbooleanThe state, when the screen owns it.
defaultCheckedbooleanfalseThe first state when the checkbox keeps its own.
indeterminatebooleanfalseShows a dash and reads as mixed.
onToggle(checked: boolean) => voidCalled with the next state.
labelReactNodeText beside the box. A string is also the accessibility label.
descriptionReactNodeA line under the label.
disabledbooleanfalseDims the checkbox and ignores taps.
ariaLabelstring"Checkbox"The accessibility label when label is not a string.
styleViewStyleStyle for the row.
Edit this page on GitHub
TrademarkTrademark
Built with curiosity by Lorant One and the Design Engineers Club