MenuMenú
El componente Menú muestra una lista vertical de opciones. Se abre cuando el usuario interactúa con un botón u otro control.
Si necesitas implementar un menú desplegable, puedes combinarlo con el componente <mdui-dropdown>.
Uso
Importa los componentes cuando los necesites:
import 'mdui/components/menu.js';
import 'mdui/components/menu-item.js';
Importa los tipos TypeScript cuando los necesites:
import type { Menu } from 'mdui/components/menu.js';
import type { MenuItem } from 'mdui/components/menu-item.js';
Uso:
<mdui-menu>
<mdui-menu-item>Elemento 1</mdui-menu-item>
<mdui-menu-item>Elemento 2</mdui-menu-item>
</mdui-menu>Ejemplos
Menú desplegable
Combínalo con el componente <mdui-dropdown> para implementar un menú desplegable.
Diseño compacto
Añade el atributo dense al componente <mdui-menu> para lograr un diseño compacto.
Deshabilitar elementos del menú
Añade el atributo disabled al componente <mdui-menu-item> para deshabilitar un elemento del menú.
Soporte de selección única
Si especificas el atributo selects como single en el componente <mdui-menu>, puedes habilitar la selección única. En este caso, el valor de value del <mdui-menu> es el valor del <mdui-menu-item> seleccionado actualmente.
Soporte de selección múltiple
Si especificas el atributo selects como multiple en el componente <mdui-menu>, puedes habilitar la selección múltiple. En este caso, el valor de value del <mdui-menu> es un array con los valores de los <mdui-menu-item> seleccionados.
Nota: En el modo de selección múltiple, el valor de value del <mdui-menu> es un array y solo se puede leer y establecer mediante la propiedad JavaScript.
Icono
En el componente <mdui-menu-item>, usando los atributos icon y end-icon permiten añadir iconos de Material Icons a la izquierda y derecha del elemento del menú. El atributo end-text añade texto a la derecha. Además, también puedes añadir iconos y texto a la izquierda y derecha mediante los slots icon, end-icon y end-text.
Si necesitas dejar un espacio en blanco a la izquierda del elemento del menú para mantener la alineación con otros elementos define el atributo icon como una cadena vacía.
En los modos de selección única o múltiple, puedes usar el atributo selected-icon o el slot selected-icon para definir el icono del estado seleccionado.
Enlace
Si usas el atributo href en el componente <mdui-menu-item>, el elemento del menú se convierte en un enlace. También puedes usar los atributos relacionados con enlaces: download, target y rel.
Submenú
En <mdui-menu-item> puedes usar el slot submenu para definir los elementos del submenú.
En <mdui-menu> puedes usar el atributo submenu-trigger para definir cómo se activa el submenú.
Cuando submenu-trigger se establece en hover, puedes usar submenu-open-delay y submenu-close-delay en <mdui-menu> para ajustar el retraso de apertura y cierre del submenú.
Contenido personalizado
En <mdui-menu-item> puedes usar el slot custom para personalizar por completo el contenido del elemento del menú.
mdui-menu-item API
Propiedades
| Atributo | Propiedad | Reflect | Tipo | Predeterminado |
|---|---|---|---|---|
value | value | string | - | |
Valor del elemento de menú. | ||||
disabled | disabled | boolean | false | |
Indica si el elemento de menú está deshabilitado. | ||||
icon | icon | string | - | |
Nombre del icono de Material Icons a la izquierda. También se puede establecer mediante Si no es necesario mostrar un icono a la izquierda, pero se necesita reservar un espacio para el icono, se puede pasar una cadena vacía para ocupar el lugar. | ||||
end-icon | endIcon | string | - | |
Nombre del icono de Material Icons a la derecha. También se puede establecer mediante | ||||
end-text | endText | string | - | |
Texto a la derecha. También se puede establecer mediante | ||||
selected-icon | selectedIcon | string | - | |
Nombre del icono de Material Icons para el estado seleccionado. También se puede establecer mediante | ||||
submenu-open | submenuOpen | boolean | false | |
Indica si el submenú está abierto. | ||||
href | href | string | - | |
URL de destino del enlace. Si se define esta propiedad, el componente se representará como un elemento | ||||
download | download | string | - | |
Nombre del archivo para el enlace de descarga. Nota: Esta propiedad solo tiene efecto si se ha definido la propiedad | ||||
target | target | '_blank' | '_parent' | '_self' | '_top' | - | |
Especifica dónde abrir el enlace. Los valores posibles son:
Nota: Esta propiedad solo tiene efecto si se ha definido la propiedad | ||||
rel | rel | 'alternate' | 'author' | 'bookmark' | 'external' | 'help' | 'license' | 'me' | 'next' | 'nofollow' | 'noreferrer' | 'opener' | 'prev' | 'search' | 'tag' | - | |
Relación entre el documento actual y el documento enlazado. Los valores posibles son:
Nota: Disponible solo cuando se especifica el atributo | ||||
autofocus | autofocus | boolean | false | |
Indica si el componente debe recibir el foco automáticamente cuando la página termine de cargar. | ||||
tabindex | tabIndex | number | - | |
Orden del elemento al navegar con la tecla Tab. | ||||
Métodos
| Nombre | Parámetros | Valor de retorno |
|---|---|---|
click | void | |
Simula un clic del ratón en el elemento. | ||
focus |
| void |
Establece el foco en el elemento actual. Puede pasarse un objeto como parámetro con las siguientes propiedades:
| ||
blur | void | |
Quita el foco del elemento actual. | ||
Eventos
| Nombre |
|---|
focus |
Se dispara cuando recibe el foco. |
blur |
Se dispara cuando pierde el foco. |
submenu-open |
Se dispara cuando el submenú comienza a abrirse. Se puede evitar que se abra llamando a |
submenu-opened |
Se dispara cuando la animación de apertura del submenú se completa. |
submenu-close |
Se dispara cuando el submenú comienza a cerrarse. Se puede evitar que se cierre llamando a |
submenu-closed |
Se dispara cuando la animación de cierre del submenú se completa. |
Slots
| Nombre |
|---|
| (predeterminado) |
Texto del elemento de menú. |
icon |
Icono izquierdo del elemento de menú. |
end-icon |
Icono derecho del elemento de menú. |
end-text |
Texto a la derecha del menú. |
selected-icon |
Icono en estado seleccionado. |
submenu |
Submenú. |
custom |
Cualquier contenido personalizado. |
mdui-menu API
Propiedades
| Atributo | Propiedad | Reflect | Tipo | Predeterminado |
|---|---|---|---|---|
selects | selects | 'single' | 'multiple' | - | |
Indica el modo de selección de los elementos del menú. Por defecto, no son seleccionables. Los valores posibles son:
| ||||
value | value | string | string[] | - | |
Valor del Nota: El atributo HTML de esta propiedad siempre es una cadena, y solo se puede establecer un valor inicial mediante el atributo HTML cuando | ||||
dense | dense | boolean | false | |
Indica si los elementos del menú utilizan un diseño compacto. | ||||
submenu-trigger | submenuTrigger | 'click' | 'hover' | 'focus' | 'manual' | string | 'click hover' | |
Modo de activación del submenú, admite múltiples valores separados por espacios. Los valores posibles son:
| ||||
submenu-open-delay | submenuOpenDelay | number | 200 | |
Retraso para abrir el submenú al pasar el ratón, en milisegundos. | ||||
submenu-close-delay | submenuCloseDelay | number | 200 | |
Retraso para cerrar el submenú al pasar el ratón, en milisegundos. | ||||
Slots
| Nombre |
|---|
| (predeterminado) |
Elementos como submenús ( |
CSS Custom Properties
| Nombre |
|---|
--shape-corner |
Tamaño de la esquina redondeada del componente. Se puede especificar un valor de píxel concreto; pero se recomienda hacer referencia a design tokens. |