NeuCheckbox wraps a native checkbox with a checked model. It is the smallest boolean form control; indeterminate is a separate display input, not a third model value or a RadioGroup selection rule.
Configure the label, checked and indeterminate states, and interaction and validation options. checked is the application value; indeterminate represents a mixed visual state.
Configurator
Live preview
value.json
false
Structured data, callbacks and templates are shown in the examples and API.
Code adds advanced options when they differ from the default. Current configuration data and values appear in the template state.
Generated template. The Code tab includes imports and state.
These values match the current preview. Complete handlers, Core imports and templates are in Source.
configured-state.ts
import { signal } from '@angular/core';
export const checked = signal(false);
These inputs require a model or function, not a checkbox. Edit the same-named field in the Source component and bind it in the template; data already used by this preview appears in the state above.
Disabled removes the native checkbox from focus and prevents changes. Readonly remains focusable; Core restores the applied checked model if a user attempts to change it. indeterminate renders mixed state through native and ARIA properties but leaves checked boolean.
The form schema, not NeuCheckbox, decides whether consent is valid. Core reflects supplied invalid/errors on the native input through aria-invalid, but this component has no public errorMessage or aria-describedby input. Place explanatory text close to the control and test the composed form's announcement.
checked is the editable boolean value. Use [(checked)] or the [checked] and (checkedChange) pair. touch reports blur. indeterminate changes only the mixed-state presentation, not the checked value.
Core provides native checkbox semantics, Space activation, mixed-state exposure and disabled/readonly behavior.
Your application provides visible label text or ariaLabel. Place validation feedback near the field; Checkbox has no errorMessage input. Explain what accepting the option means.
checked supports two-way binding. indeterminate is a display input, not a third value. touch reports blur; use checkedChange for changes to the boolean value.
Inputs
Configure the component with [property]="value". Your application supplies these values; the component does not replace the state you pass in.
Name
Type
Default
Template binding
Description
ariaLabel
string
''
[ariaLabel]
Alternative accessible name for the native checkbox.
dirty
boolean
false
[dirty]
Applied dirty state, normally supplied by FormField.
disabled
boolean
false
[disabled]
Disables the native checkbox and removes it from focus.
errors
readonly ValidationError.WithOptionalFieldTree[]
[]
[errors]
Applied validation errors, normally from the form schema.
hidden
boolean
false
[hidden]
Hides the component host.
indeterminate
boolean
false
[indeterminate]
Mixed visual/ARIA state; checked remains a boolean model.
invalid
boolean
false
[invalid]
Applied invalid flag reflected through aria-invalid.
label
string
''
[label]
Visible text naming the native checkbox.
name
string
''
[name]
Native form-control name.
pending
boolean
false
[pending]
Applied pending state announced through aria-busy.
readonly
boolean
false
[readonly]
Keeps focus but Core restores checked after an attempted change.
required
boolean
false
[required]
Marks the native checkbox required; the form schema decides validity.
tabIndex
number
0
[tabIndex]
Tab order of the native checkbox. The default is 0; use -1 when an accessible composite widget manages keyboard focus.
touched
boolean
false
[touched]
Applied touched state, normally supplied by FormField.
Models
A model supports [(property)]="signal" or the [property] and (propertyChange) pair. Choose one form, not both.
Name
Type
Default
Template binding
Description
checked
boolean
false
[(checked)]
Bidirectional boolean model owned by the application or FormField.
Outputs
Listen to an event with (event)="handler($event)". The table explains the data your handler receives and how to use it.
Name
Payload
Template binding
Description
touch
void
(touch)="onTouch($event)"
Lifecycle notification emitted when the checkbox blurs.
Templates
ng-content projects content into the component. TemplateRef inputs receive a template; ng-template directives identify templates with a typed context. A directive shared by an entrypoint is not necessarily a slot of this component.
This component does not expose content projection or public customization templates.