Volver a Components
Dropdown
<sg-dropdown> v0.1.1 Menú flotante con elemento trigger. Soporta posicionamiento automático, header/footer fijos, y cierre inteligente.
Ejemplos
Básico
<sg-dropdown align="start">
<button slot="trigger">Opciones ▼</button>
<button>Opción 1</button>
<button>Opción 2</button>
<button>Opción 3</button>
</sg-dropdown>
Con header y footer
<sg-dropdown align="start">
<button slot="trigger">Menú ▼</button>
<div slot="header">Configuración</div>
<button>Perfil</button>
<button>Preferencias</button>
<button>Cerrar sesión</button>
<div slot="footer">v1.2.1</div>
</sg-dropdown>
Alineaciones
<sg-dropdown align="start">...</sg-dropdown>
<sg-dropdown align="center">...</sg-dropdown>
<sg-dropdown align="end">...</sg-dropdown>
Playground
Edita el código y ve los cambios en tiempo real:
API Reference
Propiedades
9| Prop | Tipo | Default | Descripción |
|---|---|---|---|
open | boolean | false | Si el dropdown está abierto |
position | 'top' | 'bottom' | 'bottom' | Posición vertical del contenido |
align | 'start' | 'center' | 'end' | 'start' | Alineación horizontal |
disabled | boolean | false | Deshabilita el dropdown |
close-on-select | boolean | true | Cerrar al seleccionar un item |
min-width | string | '200px' | Ancho mínimo del contenido |
max-height | string | '320px' | Altura máxima (con scroll) |
show-backdrop | boolean | false | Mostrar overlay de fondo |
size | 'sm' | 'md' | 'lg' | 'md' | Variante de tamaño |
Eventos
3| Evento | Tipo | Descripción |
|---|---|---|
sgOpen | CustomEvent<void> | Emitido cuando se abre el dropdown |
sgClose | CustomEvent<void> | Emitido cuando se cierra |
sgToggle | CustomEvent<boolean> | Emitido al cambiar el estado |
Slots
4| Slot | Descripción |
|---|---|
trigger | Elemento que activa el dropdown |
(default) | Contenido del menú |
header | Cabecera opcional fija |
footer | Pie opcional fijo |
Métodos
3| Método | Retorna | Descripción |
|---|---|---|
openDropdown() | Promise<void> | Abre el dropdown programáticamente |
closeDropdown() | Promise<void> | Cierra el dropdown programáticamente |
toggle() | Promise<void> | Alterna el estado abierto/cerrado |
Cómo usar
Control programático
const dropdown = document.querySelector('sg-dropdown');
// Abrir
await dropdown.openDropdown();
// Cerrar
await dropdown.closeDropdown();
// Toggle
await dropdown.toggle();
Escuchar eventos
dropdown.addEventListener('sgOpen', () => {
console.log('Dropdown abierto');
});
dropdown.addEventListener('sgClose', () => {
console.log('Dropdown cerrado');
});