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

Nav

Crea navegación lateral contraíble con enlaces agrupados, marca y pie.

Categoría
Navegación
Import
@neural-ui/core/nav
Selector
neu-nav
import { NeuNavComponent } from '@neural-ui/core/nav';

Uso

Cada NeuNavItem contiene id, label y una clave de icono. route usa el router de Angular y href es un destino externo. children crea grupos desplegables, active marca la entrada actual y badge/badgeTone comunican estado. Los iconos se resuelven con el proveedor de la aplicación; una clave vacía omite el gráfico.

Ejemplos

Prueba la interacción y abre Código para ver la implementación completa.

Ejemplos

collapsedChange: expandido

Prueba y configura

Cambia las opciones, prueba el resultado y consulta el template actualizado. Abre Código para ver el modelo de datos y la implementación completa.

Prueba y configura

collapsedChange: expandido

Las opciones de Core actualizan este template. Los iconos, contadores y destinos desactivados pertenecen al modelo de datos que se muestra en Código.

template.html
<neu-nav
  [items]="items"
  ariaLabel="Navegación de ejemplo"
  [collapsed]="collapsed()"
  [collapsible]="true"
  (collapsedChange)="collapsed.set($event)"
  [collapseLabel]="'Contraer navegación'"
  [expandLabel]="'Expandir navegación'"
>
  <span neu-nav-brand class="menus-brand">
    <app-navigation-example-icon kind="home" size="24" />
    <span>Neural Studio</span>
  </span>
  <app-navigation-example-icon neu-nav-brand-icon kind="home" size="24" />
</neu-nav>

Datos y contenido

Proporciona collapsed y acepta collapsedChange para controlar el ancho; omite collapsed para el estado interno. collapsible indica si se muestra el botón, no el estado aplicado. Core gestiona los grupos y los paneles del modo contraído. La aplicación aporta rutas y estado active. Proyecta icono de marca, texto de marca y pie con sus atributos específicos. Nav no tiene Output itemClick.

Accesibilidad y teclado

Traduce expandLabel/collapseLabel y nombra la navegación. Usa enlaces/botones nativos con Tab e Intro/Espacio. Los grupos exponen aria-expanded y los destinos activos aria-current. Los paneles contraídos conservan controles nombrados y devolución de foco con Escape. Revisa el contenido de marca y pie en ambos diseños.

Tecla
Acción
Tab Recorre los enlaces de navegación y botones de grupo habilitados.
Enter Sigue el enlace enfocado o activa el botón de grupo enfocado.
Space Activa el botón de grupo enfocado; los enlaces conservan su comportamiento nativo.
Escape Cierra un menú flotante del modo contraído y restablece el foco.

API

Inputs y Outputs corresponden al paquete instalado. Los tipos con nombre enlazan a sus definiciones. Cada Template/proyección disponible tiene un ejemplo ejecutable.

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'Main navigation'[ariaLabel]Nombre accesible de la navegación/menú. Usa una etiqueta específica de esta región.
collapsedboolean | undefinedundefined[collapsed]Estado contraído aplicado; undefined permite que el componente lo gestione.
collapseLabelstring'Collapse navigation'[collapseLabel]Etiqueta accesible del botón en modo expandido.
collapsiblebooleantrue[collapsible]Muestra/oculta el botón de contracción sin sustituir collapsed.
expandLabelstring'Expand navigation'[expandLabel]Etiqueta accesible del botón en modo contraído.
itemsNeuNavItem[][][items]Datos de navegación con id, label, icon y route/href opcional, grupos, estado activo y contadores.

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
collapsedChangeboolean(collapsedChange)="onCollapsedChange($event)"Propone el siguiente estado contraído; actualiza collapsed si lo controlas.

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
[neu-nav-brand-icon]Ver ejemplo Proyección de contenido<ng-content select="[neu-nav-brand-icon]" />
[neu-nav-brand]Ver ejemplo Proyección de contenido<ng-content select="[neu-nav-brand]" />
[neu-nav-footer]Ver ejemplo Proyección de contenido<ng-content select="[neu-nav-footer]" />

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

Icono de marca

[neu-nav-brand-icon]

Icono de marca

collapsedChange: contraído

Texto de marca

[neu-nav-brand]

Texto de marca

collapsedChange: expandido

Public Types

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

Estilos y tokens

Utiliza los tokens públicos disponibles. La resolución de iconos y el diseño que rodea al ejemplo pertenecen a la aplicación. Comprueba ambos temas y pantallas estrechas.

Tokens específicos

Token
Efecto
Estado / variante
Valor / origen
Alternativa
--neu-nav-toggle-bg Valor del tema heredado que utiliza este componente Superficie del campo var(--neu-surface)Declaración raíz--neu-surface
--neu-nav-toggle-bg-hover Valor del tema heredado que utiliza este componente Superficie del campo var(--neu-surface-2)Declaración raíz--neu-surface-2
--neu-nav-toggle-border Valor del tema heredado que utiliza este componente Superficie del campo var(--neu-border)Declaración raíz--neu-border
--neu-nav-toggle-color Valor del tema heredado que utiliza este componente Superficie del campo var(--neu-text-muted)Declaración raíz--neu-text-muted
--neu-nav-toggle-offset-top Valor del tema heredado que utiliza este componente Superficie del campo 18pxDeclaración raízSin alias de token
--neu-nav-toggle-shadow Elevación de la superficie o capa Superficie del campo 0 6px 14px color-mix(in srgb, var(--neu-text) 10%, transparent), inset 0 1px 0 color-mix(in srgb, var(--neu-surface) 82%, white)Declaración raíz--neu-text, --neu-surface
--neu-nav-toggle-size Valor del tema heredado que utiliza este componente Superficie del campo 28pxDeclaración raízSin alias de token

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-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-focus-ring-strong Tratamiento de foco destacado Compartido con otros consumidores de Core; limita el cambio a un ámbito. 0 0 0 var(--neu-focus-ring-width) rgba(0, 122, 255, 0.35)
--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-surface Superficie principal del campo, cabecera o control Compartido con otros consumidores de Core; limita el cambio a un ámbito. #ffffff