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

Chip

Selecciona o elimina etiquetas compactas con estado controlado por la aplicación.

Categoría
Estados y avisos
Import
@neural-ui/core/chip
Selector
neu-chip
import { NeuChipComponent } from '@neural-ui/core/chip';

Uso

Un Chip seleccionable es un botón de alternancia: el clic, Intro o Espacio emiten selectedChange. Enlaza selected y acepta el valor propuesto desde la aplicación. Con removable, Chip pasa a ser un grupo con un botón para eliminar; no emite selectedChange. removed solicita la eliminación, pero la aplicación debe retirar el elemento. Proyecta la etiqueta visible o un icono junto a la etiqueta.

Ejemplos

Prueba la interacción y abre Código para ver la implementación. Reiniciar restablece el estado inicial.

Ejemplos

Selección controlada

Angular

Sin seleccionar

Eliminación controlada por la aplicación

AngularTypeScriptCSS

3 filtros

No disponible

Prueba y configura

Cambia las opciones y consulta la vista previa y el template generado. Código contiene el ejemplo ejecutable completo.

Prueba y configura

Vista previa

Angular

Cambia el estado pulsando el chip.

Template generado: refleja las opciones anteriores. Abre Código para ver los imports y el estado completos.

template.html
<neu-chip
  tone="neutral"
  size="md"
  [selected]="selected()"
  (selectedChange)="selected.set($event)"
  [removable]="false"
  [disabled]="false"
  removeAriaLabel="Eliminar filtro"
  (removed)="removeChip()"
>
  Angular
</neu-chip>

Datos y contenido

selected es un Input, no un modelo. selectedChange propone un valor: utiliza [selected] y (selectedChange) para actualizar el estado de la aplicación. removed es un evento; el componente no se elimina por sí mismo. No tiene enlaces de Signal Forms.

Accesibilidad y teclado

Los chips seleccionables exponen aria-pressed. Tab enfoca los chips habilitados; Intro y Espacio proponen alternar sin desplazar la página. Los chips eliminables enfocan su botón nativo, nombrado por removeAriaLabel. disabled bloquea ambas interacciones. Mantén texto visible significativo; no dependas solo del color seleccionado.

Tecla
Acción
Tab Accede a los chips seleccionables habilitados y a los botones disponibles de eliminar.
Enter Propone cambiar el chip seleccionable enfocado o lo elimina desde su botón enfocado de eliminar.
Space Propone cambiar el chip seleccionable enfocado o lo elimina desde su botón enfocado de eliminar.

API

Los Inputs y Outputs se extraen del paquete fijado. Los tipos con nombre enlazan a sus definiciones; Templates enumera solo las zonas de proyección disponibles.

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
disabledbooleanfalse[disabled]Bloquea la selección y la eliminación.
removablebooleanfalse[removable]Sustituye la alternancia por un grupo con botón nativo para eliminar.
removeAriaLabelstring'Remove'[removeAriaLabel]Nombre accesible del botón para eliminar.
selectedbooleanfalse[selected]Estado seleccionado controlado; actualízalo al aceptar selectedChange.
sizeNeuChipSize'md'[size]Tamaño compacto sm o md.
toneNeuChipTone'neutral'[tone]Intención semántica de la etiqueta.

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
removedvoid(removed)="onRemoved($event)"Solicitud de eliminación; la aplicación retira el elemento.
selectedChangeboolean(selectedChange)="onSelectedChange($event)"Propone el siguiente booleano selected; no lo modifica automáticamente.

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.

Nombre
Mecanismo
Contrato
*

Etiqueta de Chip

Ver ejemplo
Proyección de contenido

Proyecta una etiqueta significativa y un icono decorativo opcional.

<ng-content />

Contexto utilizado: —

Cada ejemplo muestra un template diferente. Alterna entre Demo y Código para consultar su implementación, imports y estado.

Icono y etiqueta

*

Icono y etiqueta
Revisado

Sin seleccionar

Public Types

Abre un tipo para consultar su definición y los campos de sus interfaces.

Estilos y tokens

Utiliza los Inputs públicos y los tokens de superficie, texto, espaciado y color semántico de Core. Mantén el contenido adaptable y comprueba ambos 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-border Bordes normales de controles y celdas Compartido con otros consumidores de Core; limita el cambio a un ámbito. rgba(15, 23, 42, 0.08)
--neu-border-hover Bordes de controles al pasar el puntero Compartido con otros consumidores de Core; limita el cambio a un ámbito. rgba(15, 23, 42, 0.16)
--neu-error-bg Fondo de estados de error o peligro Compartido con otros consumidores de Core; limita el cambio a un ámbito. #fee2e2
--neu-error-text Texto de error y de Button danger outline/ghost en ambos temas Compartido con otros consumidores de Core; limita el cambio a un ámbito. #991b1b
--neu-primary Color de marca en controles activos y énfasis Compartido con otros consumidores de Core; limita el cambio a un ámbito. #007aff
--neu-primary-50 Superficie tenue de marca para estados de puntero y foco Compartido con otros consumidores de Core; limita el cambio a un ámbito. #eff6ff
--neu-primary-dark Tono oscuro de marca; texto de Button outline y ghost en el tema claro Compartido con otros consumidores de Core; limita el cambio a un ámbito. #005fcc
--neu-primary-fg Contenido dibujado sobre el fondo primario Compartido con otros consumidores de Core; limita el cambio a un ámbito. #ffffff