BetaBeta pública — Consulta las notas de lanzamiento
Documentación

Menu

Action list triggered by a button.

Paquete
@solidiom/menu
Versión
0.0.1-next.0
Estado
stable

Vista previa

Este ejemplo usa estilos solo para documentación. En producción, utiliza una de las recetas incluidas (CSS, Tailwind o UnoCSS).

Action list triggered by a button.

Uso

Compón Root, Trigger, Content, Item, Separator, CheckboxItem, RadioGroup, RadioItem, Label, Sub, SubTrigger, SubContent.

import * as Menu from "@solidiom/menu"

;<Menu.Root>Contenido de Menu</Menu.Root>

Instalación

Instala el paquete con pnpm add @solidiom/menu. El paquete requiere dependencias pares compatibles de solid-js y @solidjs/web.

Partes

Menu expone 12 partes:

  • Rootdata-part="root".
  • Triggerdata-part="trigger".
  • Contentdata-part="content".
  • Itemdata-part="item".
  • Separatordata-part="separator".
  • CheckboxItemdata-part="checkboxitem".
  • RadioGroupdata-part="radiogroup".
  • RadioItemdata-part="radioitem".
  • Labeldata-part="label".
  • Subdata-part="sub".
  • SubTriggerdata-part="subtrigger".
  • SubContentdata-part="subcontent".

Estilos

Menu lleva los atributos data-scope="menu" y data-part en cada parte para la selección CSS/receta. Los atributos de estado como data-state, data-disabled y data-highlighted se exponen donde corresponda.

Interacción con teclado

TeclaComportamiento
ArrowDownMueve el foco al siguiente elemento del menú.
ArrowUpMueve el foco al elemento anterior del menú.
Enter/SpaceActiva el elemento de menú enfocado.
EscapeCierra el menú y devuelve el foco al disparador.
ArrowRightAbre un sub-menú cuando el foco está en un sub-disparador.
ArrowLeftCierra el sub-menú y devuelve el foco al padre.

Composición

Menu está diseñado para componerse con otras primitivas. Sus partes pueden combinarse con Field, Button u otras primitivas según sea necesario.

Renderizado SSR e hidratación

Menu se renderiza como HTML semántico durante el renderizado en servidor. El comportamiento interactivo (manejadores de teclado, gestión de estado) se activa en la hidratación sin desplazamiento de diseño.