# Menú desplegable

> Acciones y opciones que se abren desde un botón: íconos, atajos, casillas, opción única, submenú y menú de usuario.

Categoría: Acción · Solar v0.8.0

Usa este HTML tal cual, con Tailwind y ccs-tailwind-config.js cargados (ver https://utiliza.me/solar/instalacion.html).

## Guía: Cuándo usarlo

- Para 3 a 10 acciones u opciones que no caben como botones a la vista.
- Las acciones principales van como botón, no escondidas en el menú.
- Si el menú lleva un formulario, es un Popover; si es para navegar el sitio, es la Barra de navegación.
- Si lo que buscas es el menú que entra desde un costado y tapa parte de la página —el de navegación en el celular, o el lateral de una aplicación—, ese es Panel lateral › Izquierda · compacto. Este componente es el menú que cuelga de un botón, no el que entra desde el borde.

## Básico

```html
<div class="flex flex-wrap items-start justify-center gap-8"><div class="flex flex-col items-start gap-2 "><button type="button" aria-haspopup="menu" aria-expanded="true" class="inline-flex items-center justify-center gap-2 rounded-ccs font-medium transition whitespace-nowrap focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ccs-blue dark:focus-visible:ring-ccs-dark-accent dark:focus-visible:ring-offset-ccs-dark-bg h-10 px-4 text-sm border border-ccs-line-strong bg-white text-ccs-ink hover:border-ccs-blue hover:text-ccs-blue dark:border-ccs-dark-line-strong dark:bg-ccs-dark-surface dark:text-ccs-dark-text dark:hover:border-ccs-dark-text active:scale-95 motion-reduce:active:scale-100">Abrir menú<iconify-icon icon="solar:alt-arrow-down-outline" class="shrink-0 text-[16px] " aria-hidden="true"></iconify-icon></button><div role="menu" aria-label="Mi cuenta" class="w-56 rounded-ccs border border-ccs-line bg-white shadow-ccs dark:border-ccs-dark-line dark:bg-ccs-dark-overlay dark:shadow-none p-1.5 "><div class="px-2.5 pt-1.5 pb-1 text-xs font-semibold text-ccs-slate dark:text-ccs-dark-text-2">Mi cuenta</div><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><span class="truncate">Perfil</span></button><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover bg-ccs-hover dark:bg-ccs-dark-hover  "><span class="truncate">Facturación</span></button><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><span class="truncate">Configuración</span></button><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><span class="truncate">Atajos de teclado</span></button><div role="separator" class="-mx-1.5 my-1.5 h-px bg-ccs-line dark:bg-ccs-dark-line"></div><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><span class="truncate">Equipo</span></button><button type="button" role="menuitem" aria-haspopup="menu" aria-expanded="true" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><span class="truncate">Invitar personas</span><span class="ml-auto"><iconify-icon icon="solar:alt-arrow-right-outline" class="shrink-0 text-[16px] text-ccs-slate dark:text-ccs-dark-text-2" aria-hidden="true"></iconify-icon></span></button><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><span class="truncate">Nuevo equipo</span></button><div role="separator" class="-mx-1.5 my-1.5 h-px bg-ccs-line dark:bg-ccs-dark-line"></div><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><span class="truncate">Ayuda</span></button><button type="button" role="menuitem" aria-disabled="true" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover  opacity-50 cursor-not-allowed pointer-events-none "><span class="truncate">API</span></button><div role="separator" class="-mx-1.5 my-1.5 h-px bg-ccs-line dark:bg-ccs-dark-line"></div><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><span class="truncate">Cerrar sesión</span></button></div></div></div>
```

## Con íconos

```html
<div class="flex flex-wrap items-start justify-center gap-8"><div class="flex flex-col items-start gap-2 "><button type="button" aria-haspopup="menu" aria-expanded="true" class="inline-flex items-center justify-center gap-2 rounded-ccs font-medium transition whitespace-nowrap focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ccs-blue dark:focus-visible:ring-ccs-dark-accent dark:focus-visible:ring-offset-ccs-dark-bg h-10 px-4 text-sm border border-ccs-line-strong bg-white text-ccs-ink hover:border-ccs-blue hover:text-ccs-blue dark:border-ccs-dark-line-strong dark:bg-ccs-dark-surface dark:text-ccs-dark-text dark:hover:border-ccs-dark-text active:scale-95 motion-reduce:active:scale-100"><iconify-icon icon="solar:user-outline" class="shrink-0 text-[18px] " aria-hidden="true"></iconify-icon>Cuenta<iconify-icon icon="solar:alt-arrow-down-outline" class="shrink-0 text-[16px] " aria-hidden="true"></iconify-icon></button><div role="menu" aria-label="Cuenta" class="w-56 rounded-ccs border border-ccs-line bg-white shadow-ccs dark:border-ccs-dark-line dark:bg-ccs-dark-overlay dark:shadow-none p-1.5 "><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><iconify-icon icon="solar:user-outline" class="shrink-0 text-[18px] text-ccs-slate dark:text-ccs-dark-text-2" aria-hidden="true"></iconify-icon><span class="truncate">Perfil</span></button><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover bg-ccs-hover dark:bg-ccs-dark-hover  "><iconify-icon icon="solar:card-outline" class="shrink-0 text-[18px] text-ccs-slate dark:text-ccs-dark-text-2" aria-hidden="true"></iconify-icon><span class="truncate">Facturación</span></button><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><iconify-icon icon="solar:settings-outline" class="shrink-0 text-[18px] text-ccs-slate dark:text-ccs-dark-text-2" aria-hidden="true"></iconify-icon><span class="truncate">Configuración</span></button><div role="separator" class="-mx-1.5 my-1.5 h-px bg-ccs-line dark:bg-ccs-dark-line"></div><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><iconify-icon icon="solar:logout-2-outline" class="shrink-0 text-[18px] text-ccs-slate dark:text-ccs-dark-text-2" aria-hidden="true"></iconify-icon><span class="truncate">Cerrar sesión</span></button></div></div></div>
```

## Con atajos

```html
<div class="flex flex-wrap items-start justify-center gap-8"><div class="flex flex-col items-start gap-2 "><button type="button" aria-haspopup="menu" aria-expanded="true" class="inline-flex items-center justify-center gap-2 rounded-ccs font-medium transition whitespace-nowrap focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ccs-blue dark:focus-visible:ring-ccs-dark-accent dark:focus-visible:ring-offset-ccs-dark-bg h-10 px-4 text-sm border border-ccs-line-strong bg-white text-ccs-ink hover:border-ccs-blue hover:text-ccs-blue dark:border-ccs-dark-line-strong dark:bg-ccs-dark-surface dark:text-ccs-dark-text dark:hover:border-ccs-dark-text active:scale-95 motion-reduce:active:scale-100">Archivo<iconify-icon icon="solar:alt-arrow-down-outline" class="shrink-0 text-[16px] " aria-hidden="true"></iconify-icon></button><div role="menu" aria-label="Archivo" class="w-56 rounded-ccs border border-ccs-line bg-white shadow-ccs dark:border-ccs-dark-line dark:bg-ccs-dark-overlay dark:shadow-none p-1.5 "><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><span class="truncate">Nuevo documento</span><span class="ml-auto pl-4 text-xs tracking-widest text-ccs-slate dark:text-ccs-dark-text-2">Ctrl N</span></button><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover bg-ccs-hover dark:bg-ccs-dark-hover  "><span class="truncate">Abrir</span><span class="ml-auto pl-4 text-xs tracking-widest text-ccs-slate dark:text-ccs-dark-text-2">Ctrl O</span></button><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><span class="truncate">Guardar</span><span class="ml-auto pl-4 text-xs tracking-widest text-ccs-slate dark:text-ccs-dark-text-2">Ctrl S</span></button><div role="separator" class="-mx-1.5 my-1.5 h-px bg-ccs-line dark:bg-ccs-dark-line"></div><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><span class="truncate">Imprimir</span><span class="ml-auto pl-4 text-xs tracking-widest text-ccs-slate dark:text-ccs-dark-text-2">Ctrl P</span></button></div></div></div>
```

## Con casillas

```html
<div class="flex flex-wrap items-start justify-center gap-8"><div class="flex flex-col items-start gap-2 "><button type="button" aria-haspopup="menu" aria-expanded="true" class="inline-flex items-center justify-center gap-2 rounded-ccs font-medium transition whitespace-nowrap focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ccs-blue dark:focus-visible:ring-ccs-dark-accent dark:focus-visible:ring-offset-ccs-dark-bg h-10 px-4 text-sm border border-ccs-line-strong bg-white text-ccs-ink hover:border-ccs-blue hover:text-ccs-blue dark:border-ccs-dark-line-strong dark:bg-ccs-dark-surface dark:text-ccs-dark-text dark:hover:border-ccs-dark-text active:scale-95 motion-reduce:active:scale-100"><iconify-icon icon="solar:eye-outline" class="shrink-0 text-[18px] " aria-hidden="true"></iconify-icon>Vista<iconify-icon icon="solar:alt-arrow-down-outline" class="shrink-0 text-[16px] " aria-hidden="true"></iconify-icon></button><div role="menu" aria-label="Mostrar" class="w-56 rounded-ccs border border-ccs-line bg-white shadow-ccs dark:border-ccs-dark-line dark:bg-ccs-dark-overlay dark:shadow-none p-1.5 "><div class="px-2.5 pt-1.5 pb-1 text-xs font-semibold text-ccs-slate dark:text-ccs-dark-text-2">Mostrar</div><button type="button" role="menuitemcheckbox" aria-checked="true" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><span class="w-4 grid place-items-center"><iconify-icon icon="ph:check-bold" class="shrink-0 text-[16px] text-ccs-blue dark:text-ccs-dark-accent" aria-hidden="true"></iconify-icon></span><span class="truncate">Barra de estado</span></button><button type="button" role="menuitemcheckbox" aria-checked="false" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><span class="w-4 grid place-items-center"></span><span class="truncate">Panel de actividad</span></button><button type="button" role="menuitemcheckbox" aria-checked="true" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><span class="w-4 grid place-items-center"><iconify-icon icon="ph:check-bold" class="shrink-0 text-[16px] text-ccs-blue dark:text-ccs-dark-accent" aria-hidden="true"></iconify-icon></span><span class="truncate">Barra lateral</span></button></div></div></div>
```

## Opción única

```html
<div class="flex flex-wrap items-start justify-center gap-8"><div class="flex flex-col items-start gap-2 "><button type="button" aria-haspopup="menu" aria-expanded="true" class="inline-flex items-center justify-center gap-2 rounded-ccs font-medium transition whitespace-nowrap focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ccs-blue dark:focus-visible:ring-ccs-dark-accent dark:focus-visible:ring-offset-ccs-dark-bg h-10 px-4 text-sm border border-ccs-line-strong bg-white text-ccs-ink hover:border-ccs-blue hover:text-ccs-blue dark:border-ccs-dark-line-strong dark:bg-ccs-dark-surface dark:text-ccs-dark-text dark:hover:border-ccs-dark-text active:scale-95 motion-reduce:active:scale-100"><iconify-icon icon="solar:sort-vertical-outline" class="shrink-0 text-[18px] " aria-hidden="true"></iconify-icon>Ordenar<iconify-icon icon="solar:alt-arrow-down-outline" class="shrink-0 text-[16px] " aria-hidden="true"></iconify-icon></button><div role="menu" aria-label="Ordenar por" class="w-56 rounded-ccs border border-ccs-line bg-white shadow-ccs dark:border-ccs-dark-line dark:bg-ccs-dark-overlay dark:shadow-none p-1.5 "><div class="px-2.5 pt-1.5 pb-1 text-xs font-semibold text-ccs-slate dark:text-ccs-dark-text-2">Ordenar por</div><button type="button" role="menuitemradio" aria-checked="true" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><span class="w-4 grid place-items-center"><span class="w-2 h-2 rounded-full bg-ccs-blue dark:bg-ccs-dark-accent"></span></span><span class="truncate">Más recientes</span></button><button type="button" role="menuitemradio" aria-checked="false" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><span class="w-4 grid place-items-center"></span><span class="truncate">Más antiguos</span></button><button type="button" role="menuitemradio" aria-checked="false" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><span class="w-4 grid place-items-center"></span><span class="truncate">Nombre, de la A a la Z</span></button></div></div></div>
```

## Submenú

```html
<div class="flex flex-wrap items-start justify-center gap-8"><div class="flex flex-col items-start gap-2"><button type="button" aria-haspopup="menu" aria-expanded="true" class="inline-flex items-center justify-center gap-2 rounded-ccs font-medium transition whitespace-nowrap focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ccs-blue dark:focus-visible:ring-ccs-dark-accent dark:focus-visible:ring-offset-ccs-dark-bg h-10 px-4 text-sm border border-ccs-line-strong bg-white text-ccs-ink hover:border-ccs-blue hover:text-ccs-blue dark:border-ccs-dark-line-strong dark:bg-ccs-dark-surface dark:text-ccs-dark-text dark:hover:border-ccs-dark-text active:scale-95 motion-reduce:active:scale-100"><iconify-icon icon="solar:share-outline" class="shrink-0 text-[18px] " aria-hidden="true"></iconify-icon>Compartir<iconify-icon icon="solar:alt-arrow-down-outline" class="shrink-0 text-[16px] " aria-hidden="true"></iconify-icon></button><div class="flex flex-wrap items-start gap-1"><div role="menu" aria-label="Compartir" class="w-52 rounded-ccs border border-ccs-line bg-white shadow-ccs dark:border-ccs-dark-line dark:bg-ccs-dark-overlay dark:shadow-none p-1.5 "><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><iconify-icon icon="solar:link-outline" class="shrink-0 text-[18px] text-ccs-slate dark:text-ccs-dark-text-2" aria-hidden="true"></iconify-icon><span class="truncate">Copiar enlace</span></button><button type="button" role="menuitem" aria-haspopup="menu" aria-expanded="true" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover bg-ccs-hover dark:bg-ccs-dark-hover  "><iconify-icon icon="solar:user-plus-outline" class="shrink-0 text-[18px] text-ccs-slate dark:text-ccs-dark-text-2" aria-hidden="true"></iconify-icon><span class="truncate">Invitar personas</span><span class="ml-auto"><iconify-icon icon="solar:alt-arrow-right-outline" class="shrink-0 text-[16px] text-ccs-slate dark:text-ccs-dark-text-2" aria-hidden="true"></iconify-icon></span></button><div role="separator" class="-mx-1.5 my-1.5 h-px bg-ccs-line dark:bg-ccs-dark-line"></div><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><iconify-icon icon="solar:download-minimalistic-outline" class="shrink-0 text-[18px] text-ccs-slate dark:text-ccs-dark-text-2" aria-hidden="true"></iconify-icon><span class="truncate">Descargar</span></button></div><div role="menu" aria-label="Invitar personas" class="w-48 mt-10 rounded-ccs border border-ccs-line bg-white shadow-ccs dark:border-ccs-dark-line dark:bg-ccs-dark-overlay dark:shadow-none p-1.5 "><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover bg-ccs-hover dark:bg-ccs-dark-hover  "><iconify-icon icon="solar:letter-outline" class="shrink-0 text-[18px] text-ccs-slate dark:text-ccs-dark-text-2" aria-hidden="true"></iconify-icon><span class="truncate">Por correo</span></button><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><iconify-icon icon="solar:chat-round-dots-outline" class="shrink-0 text-[18px] text-ccs-slate dark:text-ccs-dark-text-2" aria-hidden="true"></iconify-icon><span class="truncate">Por mensaje</span></button><div role="separator" class="-mx-1.5 my-1.5 h-px bg-ccs-line dark:bg-ccs-dark-line"></div><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><span class="truncate">Más opciones…</span></button></div></div></div></div>
```

## Acción destructiva

La opción que destruye va al final, separada por una línea, y es la única en rojo. Activarla no destruye nada todavía: abre una confirmación (Modal & Toast › Confirmación), porque desde un menú es fácil apretar una opción por otra. En esa confirmación, el botón principal repite el verbo («Eliminar miembro») y el rojo se reserva para cuando la pérdida no era lo que la persona buscaba.

```html
<div class="flex flex-wrap items-start justify-center gap-8"><div class="flex flex-col items-start gap-2 "><button type="button" aria-label="Más acciones" aria-haspopup="menu" aria-expanded="true" class="inline-grid place-items-center w-10 h-10 rounded-ccs border border-ccs-line-strong bg-white text-ccs-ink hover:border-ccs-blue hover:text-ccs-blue dark:border-ccs-dark-line-strong dark:bg-ccs-dark-surface dark:text-ccs-dark-text dark:hover:border-ccs-dark-text transition focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ccs-blue dark:focus-visible:ring-ccs-dark-accent dark:focus-visible:ring-offset-ccs-dark-bg active:scale-95 motion-reduce:active:scale-100"><iconify-icon icon="solar:menu-dots-bold" class="shrink-0 text-[18px] " aria-hidden="true"></iconify-icon></button><div role="menu" aria-label="Acciones" class="w-48 rounded-ccs border border-ccs-line bg-white shadow-ccs dark:border-ccs-dark-line dark:bg-ccs-dark-overlay dark:shadow-none p-1.5 "><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><iconify-icon icon="solar:pen-outline" class="shrink-0 text-[18px] text-ccs-slate dark:text-ccs-dark-text-2" aria-hidden="true"></iconify-icon><span class="truncate">Editar</span></button><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><iconify-icon icon="solar:copy-outline" class="shrink-0 text-[18px] text-ccs-slate dark:text-ccs-dark-text-2" aria-hidden="true"></iconify-icon><span class="truncate">Duplicar</span></button><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><iconify-icon icon="solar:archive-outline" class="shrink-0 text-[18px] text-ccs-slate dark:text-ccs-dark-text-2" aria-hidden="true"></iconify-icon><span class="truncate">Archivar</span></button><div role="separator" class="-mx-1.5 my-1.5 h-px bg-ccs-line dark:bg-ccs-dark-line"></div><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-error hover:bg-ccs-error-soft focus-visible:bg-ccs-error-soft dark:text-ccs-dark-error dark:hover:bg-ccs-dark-error-fill/20 dark:focus-visible:bg-ccs-dark-error-fill/20   "><iconify-icon icon="solar:trash-bin-trash-outline" class="shrink-0 text-[18px] " aria-hidden="true"></iconify-icon><span class="truncate">Eliminar</span></button></div></div></div>
```

## Menú de usuario

```html
<div class="flex flex-wrap items-start justify-center gap-8"><div class="flex flex-col items-start gap-2 "><button type="button" aria-haspopup="menu" aria-expanded="true" class="inline-flex items-center gap-2.5 h-12 pl-1.5 pr-3 rounded-ccs hover:bg-ccs-hover dark:hover:bg-ccs-dark-hover transition focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ccs-blue dark:focus-visible:ring-ccs-dark-accent dark:focus-visible:ring-offset-ccs-dark-bg"><span class="inline-flex shrink-0 items-center justify-center rounded-full bg-ccs-hover font-medium text-ccs-ink dark:bg-ccs-dark-hover dark:text-ccs-dark-text w-8 h-8 text-xs ">CR</span><span class="text-sm font-medium">Carolina Rojas</span><iconify-icon icon="solar:alt-arrow-down-outline" class="shrink-0 text-[16px] text-ccs-slate dark:text-ccs-dark-text-2" aria-hidden="true"></iconify-icon></button><div role="menu" aria-label="Carolina Rojas" class="w-64 rounded-ccs border border-ccs-line bg-white shadow-ccs dark:border-ccs-dark-line dark:bg-ccs-dark-overlay dark:shadow-none p-1.5 "><div class="flex items-center gap-3 px-2.5 py-2"><span class="inline-flex shrink-0 items-center justify-center rounded-full bg-ccs-hover font-medium text-ccs-ink dark:bg-ccs-dark-hover dark:text-ccs-dark-text w-10 h-10 text-sm ">CR</span><div class="min-w-0"><div class="text-sm font-semibold truncate">Carolina Rojas</div><div class="text-xs truncate text-ccs-slate dark:text-ccs-dark-text-2">carolina@empresa.cl</div></div></div><div role="separator" class="-mx-1.5 my-1.5 h-px bg-ccs-line dark:bg-ccs-dark-line"></div><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><iconify-icon icon="solar:user-outline" class="shrink-0 text-[18px] text-ccs-slate dark:text-ccs-dark-text-2" aria-hidden="true"></iconify-icon><span class="truncate">Mi perfil</span></button><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover bg-ccs-hover dark:bg-ccs-dark-hover  "><iconify-icon icon="solar:bell-outline" class="shrink-0 text-[18px] text-ccs-slate dark:text-ccs-dark-text-2" aria-hidden="true"></iconify-icon><span class="truncate">Notificaciones</span></button><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><iconify-icon icon="solar:settings-outline" class="shrink-0 text-[18px] text-ccs-slate dark:text-ccs-dark-text-2" aria-hidden="true"></iconify-icon><span class="truncate">Configuración</span></button><div role="separator" class="-mx-1.5 my-1.5 h-px bg-ccs-line dark:bg-ccs-dark-line"></div><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover   "><iconify-icon icon="solar:logout-2-outline" class="shrink-0 text-[18px] text-ccs-slate dark:text-ccs-dark-text-2" aria-hidden="true"></iconify-icon><span class="truncate">Cerrar sesión</span></button></div></div></div>
```

## Preguntar a una IA

```html
<div class="flex flex-wrap items-start justify-center gap-8"><div class="flex flex-col items-start gap-2"><div class="text-sm font-medium text-ccs-slate dark:text-ccs-dark-text-2">Pregúntale a una IA sobre esta página</div><button type="button" aria-haspopup="menu" aria-expanded="true" class="inline-flex items-center justify-center gap-2 rounded-ccs font-medium transition whitespace-nowrap focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ccs-blue dark:focus-visible:ring-ccs-dark-accent dark:focus-visible:ring-offset-ccs-dark-bg h-10 px-4 text-sm border border-ccs-line-strong bg-white text-ccs-ink hover:border-ccs-blue hover:text-ccs-blue dark:border-ccs-dark-line-strong dark:bg-ccs-dark-surface dark:text-ccs-dark-text dark:hover:border-ccs-dark-text active:scale-95 motion-reduce:active:scale-100"><iconify-icon icon="solar:chat-round-dots-outline" class="shrink-0 text-[18px]" aria-hidden="true"></iconify-icon>Preguntar a una IA<iconify-icon icon="solar:alt-arrow-down-outline" class="shrink-0 text-[16px]" aria-hidden="true"></iconify-icon></button><div role="menu" aria-label="Preguntar a una IA" class="w-64 rounded-ccs border border-ccs-line bg-white shadow-ccs dark:border-ccs-dark-line dark:bg-ccs-dark-overlay dark:shadow-none p-1.5"><a role="menuitem" href="https://chatgpt.com/?q=Lee%20https%3A%2F%2Fejemplo.cl%2Fguia%20y%20expl%C3%ADcame%20en%20vi%C3%B1etas%20lo%20principal%20y%20c%C3%B3mo%20lo%20aplico%20en%20mi%20proyecto." target="_blank" rel="noopener" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover"><iconify-icon icon="simple-icons:openai" class="shrink-0 text-[18px] text-ccs-ink dark:text-ccs-dark-text" aria-hidden="true"></iconify-icon><span class="truncate">ChatGPT</span><iconify-icon icon="solar:arrow-right-up-outline" class="shrink-0 ml-auto text-[16px] text-ccs-slate dark:text-ccs-dark-text-2" aria-hidden="true"></iconify-icon><span class="sr-only">(se abre en otra pestaña)</span></a><a role="menuitem" href="https://claude.ai/new?q=Lee%20https%3A%2F%2Fejemplo.cl%2Fguia%20y%20expl%C3%ADcame%20en%20vi%C3%B1etas%20lo%20principal%20y%20c%C3%B3mo%20lo%20aplico%20en%20mi%20proyecto." target="_blank" rel="noopener" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover"><iconify-icon icon="simple-icons:claude" class="shrink-0 text-[18px] text-ccs-ink dark:text-ccs-dark-text" aria-hidden="true"></iconify-icon><span class="truncate">Claude</span><iconify-icon icon="solar:arrow-right-up-outline" class="shrink-0 ml-auto text-[16px] text-ccs-slate dark:text-ccs-dark-text-2" aria-hidden="true"></iconify-icon><span class="sr-only">(se abre en otra pestaña)</span></a><a role="menuitem" href="https://www.perplexity.ai/search/new?q=Lee%20https%3A%2F%2Fejemplo.cl%2Fguia%20y%20expl%C3%ADcame%20en%20vi%C3%B1etas%20lo%20principal%20y%20c%C3%B3mo%20lo%20aplico%20en%20mi%20proyecto." target="_blank" rel="noopener" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover"><iconify-icon icon="simple-icons:perplexity" class="shrink-0 text-[18px] text-ccs-ink dark:text-ccs-dark-text" aria-hidden="true"></iconify-icon><span class="truncate">Perplexity</span><iconify-icon icon="solar:arrow-right-up-outline" class="shrink-0 ml-auto text-[16px] text-ccs-slate dark:text-ccs-dark-text-2" aria-hidden="true"></iconify-icon><span class="sr-only">(se abre en otra pestaña)</span></a><div role="separator" class="-mx-1.5 my-1.5 h-px bg-ccs-line dark:bg-ccs-dark-line"></div><button type="button" role="menuitem" class="flex w-full items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-left outline-none transition text-ccs-ink hover:bg-ccs-hover focus-visible:bg-ccs-hover dark:text-ccs-dark-text dark:hover:bg-ccs-dark-hover dark:focus-visible:bg-ccs-dark-hover"><iconify-icon icon="solar:copy-outline" class="shrink-0 text-[18px] text-ccs-slate dark:text-ccs-dark-text-2" aria-hidden="true"></iconify-icon><span class="truncate">Copiar prompt para otra IA</span></button></div></div></div>
```

## Guía: Preguntar a una IA

Abre una IA con un prompt sobre la página: va en la URL, después de ?q=, con encodeURIComponent. "Copiar prompt para otra IA" cubre las que no aceptan el prompt en la URL.

- El prompt pide solo lo que dice la etiqueta, y apunta al .md o al llms.txt cuando existen.
- Nunca pidas que la IA recuerde o recomiende tu sitio.
- Va debajo de la bajada de la página, una vez por página o sección.

Por qué: Pedirle a la IA que guarde o recomiende una marca es lo que Microsoft describió en febrero de 2026 como manipulación de la memoria de las IA: sesga lo que la IA responde después, sin que la persona lo sepa.

## Guía: Comportamiento

Una opción destructiva del menú abre siempre una confirmación: ver Modal & Toast › Confirmación.

Enter, Espacio o flecha abajo abren el menú y enfocan el primer ítem. Las flechas recorren los ítems, Inicio y Fin saltan al primero y al último, y una letra salta al ítem que empieza con ella. Escape cierra y devuelve el foco al botón.
El botón lleva aria-haspopup="menu" y aria-expanded. Las casillas usan menuitemcheckbox y la opción única menuitemradio, con aria-checked.
