Componentes

Menús Desplegables

Dropdowns, dropups y variantes direccionales con soporte completo de teclado y accesibilidad ARIA.

Dropdown con variantes de botón

Split button

Botón principal con acción directa + flecha separada para el menú de opciones adicionales.

HTML — Split button
<div class="dropdown btn-split">
  <!-- Botón de acción principal -->
  <button class="btn btn-marca">Guardar</button>

  <!-- Botón separador con flecha -->
  <button class="btn btn-marca btn-toggle"
          data-dropdown-toggle="split-menu"
          aria-haspopup="true"
          aria-expanded="false"
          aria-label="Más opciones">
    <!-- SVG chevron -->
  </button>

  <div class="dropdown-menu"
       id="split-menu"
       role="menu">
    <button class="dropdown-item" role="menuitem">
      Guardar como borrador
    </button>
    <button class="dropdown-item" role="menuitem">
      Guardar y publicar
    </button>
  </div>
</div>

Dropup — menú hacia arriba

El panel aparece encima del botón. Útil en footers o en la parte inferior de una pantalla.

HTML — Dropup
<!-- Solo cambiar clase: dropdown → dropup -->
<div class="dropdown dropup">
  <button class="btn btn-marca"
          data-dropdown-toggle="mi-dropup"
          aria-haspopup="true"
          aria-expanded="false">
    Abrir arriba
  </button>
  <div class="dropdown-menu" id="mi-dropup" role="menu">
    <button class="dropdown-item" role="menuitem">Opción</button>
  </div>
</div>

<!-- Variantes direccionales -->
<div class="dropdown dropend">...</div>  <!-- abre a la derecha -->
<div class="dropdown dropstart">...</div> <!-- abre a la izquierda -->

Accesibilidad del menú

  • Teclado — flechas ↑↓ navegan entre ítems, Escape cierra y devuelve el foco al botón.
  • aria-haspopup — informa al lector de pantalla que el botón abre un menú.
  • aria-expanded — indica si el menú está abierto o cerrado.
  • role="menu" / role="menuitem" — semántica correcta para tecnologías de asistencia.
  • Clic fuera — el menú se cierra al hacer clic en cualquier otra parte de la página.