Componente Navigation Menu para Angular | ng-hub-ui-nav

Componente de navegación para Angular con dropdowns, paneles drill-down, colapso responsive, integración con Router y theming mediante variables CSS.

Referencia API

Aquí tienes el contrato completo de nav: todo lo que puedes enlazar, escuchar, proyectar y personalizar, reunido en un solo sitio. Enlaza lo que necesites y dale el estilo que quieras — es standalone y reactivo con signals.

Inputs

Ajusta nav a tu gusto con 4 inputs. Se enlazan como cualquier @Input de Angular.

NombreTipoPor defectoDescripción
itemsObligatorioHubNavItem[]Array de elementos de navegación a renderizar. Cada elemento define su tipo (link, dropdown, header, separator, custom), label, ruta, icono, badge, children y más.
configPartial<HubNavConfig>{}Anulaciones de configuración parciales que se combinan con los valores por defecto globales. Controla la orientación, el disparador del dropdown, el modo de colapso, el breakpoint, la posición y más.
navClassstring''Clase CSS adicional aplicada al elemento contenedor del nav.
itemTemplateTemplateRef<HubNavItemTemplateContext> | nullnullPlantilla personalizada opcional para renderizar los elementos del nav mediante input binding. La directiva hubNavItemTemplate tiene prioridad sobre este input.

Outputs

Reacciona a lo que hace nav: 5 eventos a los que enganchar tu lógica.

NombreTipoDescripción
itemClickOutputEmitterRef<HubNavItem>Se emite cuando se hace clic en un elemento de tipo link. Proporciona el HubNavItem en el que se hizo clic.
dropdownOpenOutputEmitterRef<HubNavItem>Se emite cuando se abre un elemento de tipo dropdown.
dropdownCloseOutputEmitterRef<HubNavItem>Se emite cuando se cierra un elemento de tipo dropdown.
mobileToggleOutputEmitterRef<boolean>Se emite cuando se alterna el panel móvil. Proporciona true cuando está abierto y false cuando está cerrado.
panelChangeOutputEmitterRef<HubNavPanelEvent>Se emite cuando un panel se abre, se cierra, se profundiza o se retrocede. Proporciona el elemento, el índice del panel y el tipo de acción.

Templates

Hazlo tuyo — 3 plantillas para proyectar tu propio marcado.

NombreDescripciónEjemplo
hubNavStartProyecta contenido personalizado en el slot de inicio. Horizontal: inicio visual (izquierda en LTR, derecha en RTL). Vertical: parte superior de la columna principal.<hub-nav [items]="items"> <ng-template hubNavStart let-collapsed="collapsed"> <img src="logo.svg" alt="Brand" /> @if (!collapsed) { <span>App Name</span> } </ng-template> </hub-nav>
hubNavEndProyecta contenido personalizado en el slot final. Horizontal: final visual (derecha en LTR, izquierda en RTL). Vertical: parte inferior de la columna principal.<hub-nav [items]="items"> <ng-template hubNavEnd> <button type="button">Sign out</button> </ng-template> </hub-nav>
hubNavItemTemplateSobrescribe el renderizado por defecto del elemento con una plantilla personalizada. Recibe HubNavItemTemplateContext con las propiedades $implicit (item), active, expanded y depth.<hub-nav [items]="items"> <ng-template hubNavItemTemplate let-item let-active="active"> <span [class.fw-bold]="active">{{ item.label }}</span> @if (item.badge) { <span class="badge">{{ item.badge }}</span> } </ng-template> </hub-nav>