Saltar al contenido principal
Neural UIv2.0.0Documentación
Ver v1 GitHub

Checkbox

Control booleano nativo con modelo checked, presentación mixta e integración con Signal Forms.

Categoría
Formularios y selección
Import
@neural-ui/core/checkbox
Selector
neu-checkbox
import { NeuCheckboxComponent } from '@neural-ui/core/checkbox';

Visión general

NeuCheckbox envuelve una casilla nativa con modelo checked. Es el control booleano mínimo; indeterminate es un input de presentación separado, no un tercer valor del modelo ni una regla de selección de RadioGroup.

Modelo checked básico

Enlaza checked con una signal de la aplicación. La interacción y las escrituras desde código quedan sincronizadas.

Modelo checked básico
checked: false

Configurador

Configura la etiqueta, los estados marcado e indeterminado y las opciones de interacción y validación. checked es el valor de la aplicación; indeterminate representa un estado visual mixto.

Configurador

Vista previa

Template generado. La pestaña Código incluye los imports y el estado.

template.html
<neu-checkbox
  [(checked)]="checked"
  label="Recibir novedades"
/>

Deshabilitado, solo lectura y mixto

Disabled elimina la casilla nativa del foco e impide cambios. Readonly conserva el foco; Core restaura el modelo checked aplicado si se intenta cambiarlo. indeterminate representa el estado mixto mediante propiedades nativas y ARIA, pero checked sigue siendo booleano.

Deshabilitado, solo lectura y mixto
checked: false · indeterminate: false

Signal Forms

Conecta checked a un FormField booleano. El esquema del formulario define la validación de campo obligatorio y el restablecimiento. Prueba a marcar la opción y restablecer el formulario.

Fundamento de Signal Forms · Propiedad del estado

Signal Forms

checked: false · touched: false · dirty: false · valid: false

Validación y estado de error

El esquema del formulario, no NeuCheckbox, decide si el consentimiento es válido. Core refleja invalid/errors recibidos mediante aria-invalid en el input nativo, pero este componente no expone errorMessage ni aria-describedby. Sitúa el texto explicativo junto al control y prueba el anuncio del formulario compuesto.

Propiedad del modelo y eventos

checked es el valor booleano editable. Usa [(checked)] o la pareja [checked] y (checkedChange). touch informa de la pérdida de foco. indeterminate solo cambia la presentación de estado mixto, no el valor de checked.

Accesibilidad y teclado

Core proporciona la semántica nativa de casilla, la activación con Espacio, el estado mixto y el comportamiento deshabilitado/de solo lectura.

Tu aplicación proporciona una etiqueta visible o ariaLabel. Coloca el mensaje de validación cerca del campo; Checkbox no tiene un input errorMessage. Explica qué implica marcar la opción.

Fundamento de accesibilidad

Tecla
Acción
Space Alterna una casilla habilitada; readonly revierte el intento de cambio.
Tab Enfoca la casilla nativa salvo si está deshabilitada.

API

checked admite enlace bidireccional. indeterminate es un input de presentación, no un tercer valor. touch informa de la pérdida de foco; usa checkedChange para los cambios del valor booleano.

Inputs

Configura el componente con [propiedad]="valor". Tu aplicación proporciona estos valores; el componente no debe reemplazar el estado que le pasas.

Nombre
Tipo
Por defecto
Uso en el template
Descripción
ariaLabelstring''[ariaLabel]Nombre accesible alternativo de la casilla nativa.
dirtybooleanfalse[dirty]Estado dirty aplicado, normalmente aportado por FormField.
disabledbooleanfalse[disabled]Deshabilita la casilla nativa y la retira del foco.
errorsreadonly ValidationError.WithOptionalFieldTree[][][errors]Errores de validación aplicados, normalmente desde el esquema.
hiddenbooleanfalse[hidden]Oculta el host del componente.
indeterminatebooleanfalse[indeterminate]Estado visual/ARIA mixto; checked continúa siendo un modelo booleano.
invalidbooleanfalse[invalid]Marca invalid aplicada reflejada mediante aria-invalid.
labelstring''[label]Texto visible que da nombre a la casilla nativa.
namestring''[name]Nombre nativo del control de formulario.
pendingbooleanfalse[pending]Estado pending aplicado anunciado mediante aria-busy.
readonlybooleanfalse[readonly]Conserva el foco, pero Core restaura checked tras un intento de cambio.
requiredbooleanfalse[required]Marca la casilla nativa como obligatoria; el esquema decide la validez.
tabIndexnumber0[tabIndex]Orden de tabulación del checkbox nativo. El valor por defecto es 0; usa -1 cuando un widget compuesto accesible gestiona el foco.
touchedbooleanfalse[touched]Estado touched aplicado, normalmente aportado por FormField.

Models

Un modelo admite [(propiedad)]="signal" o la pareja [propiedad] y (propiedadChange). Elige una de las dos formas, no ambas.

Nombre
Tipo
Por defecto
Uso en el template
Descripción
checkedbooleanfalse[(checked)]Modelo booleano bidireccional propiedad de la aplicación o FormField.

Outputs

Escucha un evento con (evento)="handler($event)". La tabla indica qué datos recibe tu función y cómo utilizarlos.

Nombre
Valor emitido
Uso en el template
Descripción
touchvoid(touch)="onTouch($event)"Aviso de ciclo de vida emitido cuando la casilla pierde foco.

Templates

ng-content proyecta contenido dentro del componente. Los inputs TemplateRef reciben un template; las directivas ng-template identifican templates con un contexto tipado. Una directiva compartida en el entrypoint no es necesariamente un slot de este componente.

Este componente no expone proyección de contenido ni templates públicos de personalización.

Tematización

Checkbox no tiene tokens públicos --neu-checkbox-* propios. Personaliza sus colores compartidos con la paleta global de Core, como explica la guía Temas.

Tokens específicos

Este componente utiliza tokens compartidos del tema en lugar de tokens específicos.

Tokens compartidos utilizados

Sobrescríbelos en un contenedor local para afectar a este ejemplo. Una modificación en :root afecta a los demás componentes que utilizan el mismo token.

Token
Efecto aquí
Otros efectos
Valor / alternativa
--neu-primary Color de marca en controles activos y énfasis Compartido con otros consumidores de Core; limita el cambio a un ámbito. #007aff
--neu-text Color del texto principal y de los iconos que lo heredan Compartido con otros consumidores de Core; limita el cambio a un ámbito. #0f172a
--neu-font-sans Tipografía del texto Compartido con otros consumidores de Core; limita el cambio a un ámbito. 'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif
--neu-space-3 Separación entre contenido y controles Compartido con otros consumidores de Core; limita el cambio a un ámbito. 0.75rem
--neu-text-sm Tamaño del texto Compartido con otros consumidores de Core; limita el cambio a un ámbito. 0.875rem