Dropdown Menu
Menú desplegable para agrupar acciones o mostrar opciones de navegación contextual.
Vista Previa
1. Dropdown Menu (Default)
2. Dropdown Menu con Íconos
3. Dropdown Menu de Navegación (Enlaces)
4. Dropdown Menu Ghost (Filtrado)
5. Tamaño Small (SM) y Estado Disabled
6. Dropdown Menu con Ícono a la Izquierda (dots)
7. Dropdown Menu Icon-only (dots)
# Dropdown Menu
¿Qué es?
El Dropdown menu es un componente interactivo que muestra una lista contextual de acciones o enlaces al interactuar con un botón disparador (trigger).¿Cuándo usarlo?
- Para mostrar un conjunto de acciones secundarias agrupadas en un solo botón (ej: "Más opciones", "Exportar", "Compartir"). - Para mostrar un pequeño menú de navegación asociado a un elemento de la interfaz. - Para ofrecer opciones de filtrado simples que no requieran un formulario complejo.¿Cuándo NO usarlo y en qué se diferencia de un Select?
- NO es un<select>: No debe usarse dentro de un formulario para que el usuario elija y envíe un valor como parte de los datos del form.
- NO es un campo de texto (Combobox): No soporta escritura ni autocompletado nativo en esta versión básica.
- El Dropdown Menu ejecuta acciones inmediatas (botones) o navega a otra URL (enlaces). El Select selecciona un dato.
Consideraciones de accesibilidad
- El trigger está implementado como un<button type="button">.
- Utiliza el atributo aria-haspopup="menu" para indicar al lector de pantalla que despliega un menú.
- El estado abierto/cerrado se comunica dinámicamente usando aria-expanded="true" o aria-expanded="false".
- Los elementos del panel deben usar la etiqueta semántica correcta según su función: <button> para acciones (ej. "Eliminar") y <a> para navegación (ej. "Ver perfil").
- Incluye estilos claros para el estado focus-visible tanto en el trigger como en los ítems interactivos.
Variantes
- Tamaños del trigger: Default y Small (SM). - Estilos del trigger: Default (con borde) y Ghost (sin borde inicial). - Estados: Default, Hover, Active (abierto), Focus, Disabled. - Ítems: Pueden incluir iconos (izquierda/derecha) y tener estado "Seleccionado" (útil para dropdowns de filtrado).HTML
<div class="dropdown-menu">
<button type="button" class="dropdown-menu__trigger" aria-haspopup="menu" aria-expanded="false" id="dropdown-base">
<span class="dropdown-menu__trigger-text">Opciones</span>
<svg class="dropdown-menu__trigger-icon" viewBox="0 0 24 24" fill="none" aria-hidden="true" xmlns="http://www.w3.org/2000/svg">
<path d="M18 9.40039L12 15.4004L6 9.40039L7.0752 8.3252L12 13.25L16.9248 8.3252L18 9.40039Z" fill="currentColor"/>
</svg>
</button>
<div class="dropdown-menu__panel" aria-labelledby="dropdown-base" role="menu">
<ul class="dropdown-menu__list" role="none">
<li class="dropdown-menu__item" role="none">
<button type="button" class="dropdown-menu__action" role="menuitem">Opción 1</button>
</li>
<li class="dropdown-menu__item" role="none">
<button type="button" class="dropdown-menu__action" role="menuitem">Opción 2</button>
</li>
</ul>
</div>
</div>