Saltar al contenido
npm ↗ GitHub ↗

Documentación

02/Estructura

Navbar

Barra fija con logo, menú con submenús (hover y clic), búsqueda, cambio de tema y llamada a la acción.

Completa

Los submenús usan el mismo componente que el dropdown. Con data-cb-dropdown-hover también se abren al pasar el mouse en dispositivos que lo permiten.

HTML
<header class="cb-nav static">
  <div class="cb-nav__inner">
    <a href="#" class="cb-logo"><span class="cb-logo__mark" aria-hidden="true">A</span>Acme</a>
    <nav aria-label="Principal">
      <ul class="cb-nav__menu">
        <li class="cb-nav__item"><a class="cb-nav__link" href="#" aria-current="page">Inicio</a></li>
        <li class="cb-nav__item cb-dropdown" data-cb-dropdown data-cb-dropdown-hover>
          <button class="cb-nav__link" type="button" data-cb-dropdown-trigger>Productos <svg class="cb-nav__chevron" viewBox="0 0 10 10" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><path d="M2 3.5 5 6.5 8 3.5"/></svg></button>
          <div class="cb-dropdown__panel cb-dropdown__panel--wide">
            <a class="cb-dropdown__item cb-dropdown__item--rich" href="#"><span class="cb-dropdown__num">01</span><span><strong class="cb-dropdown__title">Facturación</strong><span class="cb-dropdown__desc">Emite y controla tus documentos.</span></span></a>
            <a class="cb-dropdown__item cb-dropdown__item--rich" href="#"><span class="cb-dropdown__num">02</span><span><strong class="cb-dropdown__title">Inventario</strong><span class="cb-dropdown__desc">Existencias en tiempo real.</span></span></a>
          </div>
        </li>
        <li class="cb-nav__item"><a class="cb-nav__link" href="#">Precios</a></li>
      </ul>
    </nav>
    <div class="cb-nav__actions">
      <button class="cb-search-btn" type="button" aria-label="Buscar"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></svg><span class="cb-search-btn__text">Buscar</span><kbd data-cb-kbd-mod="K">⌘K</kbd></button>
      <button class="cb-icon-btn" type="button" data-cb-theme-toggle aria-label="Cambiar tema"><svg class="cb-theme-toggle__moon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"/></svg><svg class="cb-theme-toggle__sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"/></svg></button>
      <a href="#" class="cb-btn cb-btn--primary cb-nav__collapse-sm">Empezar ↗</a>
    </div>
  </div>
</header>

Clases y modificadores

ClaseDescripción
.cb-navBarra fija arriba con fondo translúcido y desenfoque.
.cb-nav__innerFila con el ancho máximo del contenedor y 64px de alto.
.cb-logo, .cb-logo__markLogo con marca cuadrada en color de acento.
.cb-nav__menuLista de enlaces. Se oculta por debajo de 960px.
.cb-nav__item, .cb-nav__linkElemento y enlace o botón del menú. aria-current="page" lo marca activo.
.cb-nav__chevronFlecha que gira cuando el submenú está abierto.
.cb-nav__actionsGrupo de acciones alineado a la derecha.
.cb-nav__collapseSe oculta por debajo de 960px.
.cb-nav__collapse-smSe oculta por debajo de 600px.
.cb-nav__burgerBotón del menú móvil, visible solo por debajo de 960px.
.cb-search-btnBotón de búsqueda con atajo de teclado.
.cb-theme-toggle__sun, .cb-theme-toggle__moonIconos que se alternan solos según el modo.

Atributos data-cb-*

AtributoDescripción
data-cb-dropdownConvierte el li en un submenú.
data-cb-dropdown-hoverAbre el submenú con hover en dispositivos con mouse.
data-cb-theme-toggleAlterna entre claro y oscuro y lo guarda.
data-cb-kbd-mod="K"Muestra ⌘K en Mac y Ctrl K en el resto.

JavaScript

EventoCuándo se dispara
cb:open / cb:closeEn el li del submenú al abrir o cerrar.
cb:themeEn document al cambiar el modo. detail.theme y detail.resolved.

Accesibilidad

  • Los submenús son botones con aria-expanded y aria-controls; Esc los cierra y devuelve el foco.
  • Flecha abajo en el botón abre el submenú y enfoca el primer enlace.
  • El botón de tema necesita aria-label; los iconos van con aria-hidden.