Skip to content

Checkbox

A Checkbox is a form control that allows users to select one or more options independently from a set.

Use Checkboxes when multiple selections are needed without impacting other choices, ideal for filters, settings, and multi-select forms.

Common alternative names:
Tick Box, Selection Box, Checkmark


Checkbox in checked state.


Checkbox in unchecked state.


Checkbox in indeterminate state, typically used for parent checkboxes when some but not all children are selected.


Checkbox that cannot be interacted with.


Checkbox with error styling.


Checkbox with a label and optional description text.


A practical example showing parent-child checkbox relationships with indeterminate state.


PropertyTypeDescription
valuebool?Required. Current state of the checkbox (true, false, or null for indeterminate).
onChangedvoid Function(bool?)?Callback when checkbox state changes. If null, checkbox is disabled.
labelString?Text label displayed next to the checkbox. Makes the label clickable.
labelStyleTextStyle?Text style for the label. Default: AppFonts.regular14.
descriptionString?Additional description text displayed below the label.
descriptionStyleTextStyle?Text style for the description. Default: AppFonts.regular12.
spacingdoubleSpacing between checkbox and label/description column. Default: 12.
sizedoubleSize of the checkbox in logical pixels. Default: 15.
scaledoubleScale factor for the checkbox. Default: 1.
indeterminateboolWhether checkbox is in indeterminate state. Default: false.
isErrorboolWhether checkbox is in error state with error styling. Default: false.
readOnlyboolWhether checkbox is read-only and cannot be interacted with. Default: false.
activeColorColor?Color when checkbox is checked or indeterminate. Uses theme colors if not provided.
borderColorColor?Color of the checkbox border. Uses theme colors if not provided.
borderRadiusBorderRadiusGeometryBorder radius of the checkbox. Default: BorderRadius.all(Radius.circular(4)).