Checkbox

Checkbox

Checkbox input with checked, unchecked, and indeterminate states.

Based on APG Checkbox Pattern.

Demo

Checked option
Unchecked option
Indeterminate state
Disabled option

Usage

// Create a signal for state
let checked = @resource.signal(false)

// Reactive checkbox
@styled_checkbox.checkbox(
  checked,
  [@luna.text("Accept terms and conditions")],
)

Props

PropTypeDefaultDescription
checkedSignal[Bool]-Reactive state signal
disabledBoolfalseDisable the checkbox
indeterminateBoolfalseMixed/partial state
idString?autoInput element ID
nameString?autoForm field name
classString?NoneAdditional CSS class
childrenArray[Node]-Label content

BEM Classes

ClassDescription
.checkboxRoot wrapper
.checkbox__inputHidden native input
.checkbox__controlVisual checkbox box
.checkbox__iconCheck/minus icon
.checkbox__labelLabel text
.checkbox-groupContainer for multiple checkboxes

States

StateDescription
data-checked="true"Checked state
data-checked="false"Unchecked state
data-indeterminate="true"Mixed/partial state
data-disabledDisabled state

Accessibility

  • Native <input type="checkbox"> for form integration

  • aria-checked reflects current state (true, false, mixed)

  • Space toggles state

  • Focus ring on keyboard navigation

  • Clicking label toggles checkbox