Menú Deslizante
Un menú deslizante moderno con animaciones suaves, direcciones personalizables y diseño responsivo. Perfecto para aplicaciones mobile-first y navegación eficiente en espacio.
Diseño Responsivo
Sí
Soporte para Modo Oscuro
No
líneas
1126
Compatibilidad del Navegador
No
Vista Previa en Vivo
Interactúa con el componente sin salir de la página.
Menú Deslizante
Un componente de menú deslizante moderno y versátil con múltiples direcciones de animación, estilos personalizables y diseño responsivo. Perfecto para aplicaciones mobile-first y sistemas de navegación eficientes en espacio.
Características
- Múltiples Direcciones: Desliza desde izquierda, derecha, arriba o abajo
- Estilos de Animación: Animaciones de superposición, empuje y revelación
- Optimizado para Móvil: Interacciones táctiles amigables y diseño responsivo
- Animaciones Suaves: Transiciones CSS aceleradas por hardware
- Navegación por Teclado: Soporte completo de accesibilidad por teclado
- Perfil de Usuario: Visualización integrada de información del usuario
- Acciones Rápidas: Botones de acción convenientes en el pie del menú
- Indicadores de Estado: Información del estado del menú en tiempo real
- Personalizable: Fácil de modificar colores, tamaños y comportamientos
Componentes Clave
Estructura del Menú
- Encabezado: Perfil de usuario con avatar y botón de cerrar
- Navegación: Elementos principales del menú con iconos y badges
- Pie: Acciones rápidas y funcionalidad de cerrar sesión
- Superposición: Fondo semitransparente de superposición
Direcciones de Animación
- Izquierda: Se desliza desde el lado izquierdo (predeterminado)
- Derecha: Se desliza desde el lado derecho
- Arriba: Se desliza hacia abajo desde arriba
- Abajo: Se desliza hacia arriba desde abajo
Estilos de Animación
- Superposición: El menú aparece sobre el contenido
- Empuje: El menú empuja el contenido hacia un lado
- Revelar: El contenido se desliza para revelar el menú debajo
Elementos del Menú
Enlaces de Navegación
- Inicio: Panel principal con badge “Nuevo”
- Panel: Analíticas y resumen
- Usuarios: Gestión de usuarios con indicador de conteo
- Proyectos: Gestión de proyectos
- Analíticas: Datos e informes
- Mensajes: Comunicación con conteo de no leídos
- Calendario: Horarios y eventos
- Configuración: Preferencias de la aplicación
Acciones Rápidas
- Nuevo Proyecto: Crear nuevo proyecto
- Exportar Datos: Descargar exportaciones de datos
- Cerrar Sesión: Salir de la aplicación
Características Interactivas
Controles del Menú
- Botón Hamburguesa: Disparador de menú animado de tres líneas
- Botón Cerrar: Botón X en el encabezado del menú
- Clic en Superposición: Hacer clic fuera para cerrar
- Atajos de Teclado: ESC para cerrar, flechas para navegar
Retroalimentación Visual
- Estados Activos: Página actual resaltada
- Efectos Hover: Transiciones de color suaves
- Estados de Carga: Indicadores animados
- Visualización de Estado: Información del menú en tiempo real
Diseño Responsivo
Características Móviles
- Gestos Táctiles: Deslizar para abrir/cerrar
- Tamaños Optimizados: Tamaños apropiados de botones y texto
- Ancho Reducido: Menú más estrecho en pantallas pequeñas
- Cierre Automático: El menú se cierra después de navegación en móvil
Características de Escritorio
- Interacciones Hover: Estados hover mejorados
- Navegación por Teclado: Soporte completo de teclas de flecha
- Objetivos Táctiles Más Grandes: Áreas de clic cómodas
- Diseño Multi-columna: Uso eficiente del espacio
Características de Accesibilidad
Soporte ARIA
role="navigation"para el contenedor del menúaria-labelpara etiquetas descriptivas de botonesaria-expandedpara indicación del estado del menú- Jerarquía apropiada de encabezados
Navegación por Teclado
- Tab: Navegar a través de elementos interactivos
- Teclas de Flecha: Moverse entre elementos del menú
- Enter/Espacio: Activar elementos del menú
- Escape: Cerrar menú y devolver el enfoque
Gestión de Enfoque
- Indicadores de enfoque visibles
- Captura de enfoque dentro del menú abierto
- Orden lógico de tabulación
- Devolver enfoque al disparador al cerrar
Detalles de Animación
Transformaciones CSS
translateX()para deslizamiento horizontaltranslateY()para deslizamiento vertical- Aceleración de hardware con
will-change - Transiciones suaves de 300ms
Temporización de Animación
- Abrir: 300ms ease-out
- Cerrar: 300ms ease-in
- Hover: 150ms ease
- Enfoque: Instantáneo para accesibilidad
Opciones de Personalización
Personalización Visual
- Colores: Colores primarios, secundarios y de acento
- Tipografía: Familias y tamaños de fuente
- Espaciado: Ajustes de padding y margin
- Sombras: Variaciones de box shadow
- Bordes: Radio de borde y colores
Personalización de Comportamiento
- Velocidad de Animación: Duración de transición
- Ancho del Menú: Dimensiones del menú horizontal
- Alto del Menú: Dimensiones del menú vertical
- Opacidad de Superposición: Transparencia del fondo
- Cierre Automático: Comportamiento de cierre automático del menú
Contenido del Menú
Sección de Perfil de Usuario
- Avatar: Imagen de perfil del usuario o icono
- Nombre: Nombre para mostrar del usuario
- Email: Dirección de email del usuario
- Estado: Indicador en línea/fuera de línea
Sección de Navegación
- Iconos: Iconos emoji o de fuente de iconos
- Etiquetas: Texto claro y descriptivo
- Badges: Indicadores de notificación
- Contadores: Indicadores de estado numérico
Sección de Pie
- Acciones Rápidas: Funciones de uso frecuente
- Configuración: Preferencias de la aplicación
- Cerrar Sesión: Opción de cierre de sesión seguro
Consideraciones de Rendimiento
- Transformaciones CSS: Animaciones aceleradas por hardware
- Delegación de Eventos: Manejo eficiente de eventos
- Redimensionamiento Debounced: Manejo optimizado de redimensionamiento de ventana
- Reflujos Mínimos: Manipulación eficiente del DOM
- Carga Perezosa: Carga de contenido bajo demanda
Compatibilidad de Navegadores
Soporta todos los navegadores modernos:
- Chrome 60+
- Firefox 55+
- Safari 12+
- Edge 79+
- Navegadores móviles con soporte táctil
Consejos de Uso
- Mantener Elementos del Menú Enfocados: Limitar a navegación esencial
- Usar Iconos Claros: Iconografía reconocible y consistente
- Proporcionar Retroalimentación Visual: Mostrar página actual e interacciones
- Probar en Móvil: Asegurar interacciones táctiles amigables
- Considerar Ancho del Menú: Equilibrar contenido y espacio de pantalla
- Implementar Enfoque Apropiado: Asegurar accesibilidad por teclado
- Usar HTML Semántico: Marcado apropiado para lectores de pantalla
Características Avanzadas
Soporte de Gestos
- Gestos de deslizamiento para dispositivos móviles
- Manejo de eventos de inicio/fin táctil
- Desplazamiento con momentum dentro del menú
Gestión de Estado
- Persistencia del estado abierto/cerrado del menú
- Almacenamiento de preferencias del usuario
- Actualizaciones dinámicas del contenido del menú
Opciones de Integración
- Integración con router para navegación
- Soporte de biblioteca de gestión de estado
- Contenido del menú impulsado por API
- Capacidades de cambio de tema
HTML
189
líneas
CSS
631
líneas
JavaScript
306
líneas
<div class="sliding-menu-demo">
<div class="demo-content">
<h2>Demo de Menú Deslizante</h2>
<p>Un componente de menú deslizante versátil con múltiples direcciones de animación, opciones de superposición y comportamiento responsivo. Ideal para aplicaciones móviles e interfaces web modernas.</p>
<div class="demo-controls">
<h3>Opciones del Menú:</h3>
<div class="control-group">
<div class="control-section">
<label>Dirección:</label>
<div class="control-buttons">
<button class="control-btn active" data-direction="left">Izquierda</button>
<button class="control-btn" data-direction="right">Derecha</button>
<button class="control-btn" data-direction="top">Arriba</button>
<button class="control-btn" data-direction="bottom">Abajo</button>
</div>
</div>
<div class="control-section">
<label>Estilo:</label>
<div class="control-buttons">
<button class="style-btn active" data-style="overlay">Superposición</button>
<button class="style-btn" data-style="push">Empujar</button>
<button class="style-btn" data-style="reveal">Revelar</button>
</div>
</div>
</div>
</div>
</div>
<div class="menu-container">
<div class="app-header">
<button class="menu-trigger" aria-label="Alternar menú">
<span class="hamburger-icon">
<span class="line"></span>
<span class="line"></span>
<span class="line"></span>
</span>
</button>
<h1 class="app-title">App Menú Deslizante</h1>
<div class="header-actions">
<button class="action-btn" aria-label="Buscar">
<span class="icon">🔍</span>
</button>
<button class="action-btn" aria-label="Notificaciones">
<span class="icon">🔔</span>
<span class="badge">3</span>
</button>
</div>
</div>
<div class="main-content">
<div class="content-section">
<h2>Bienvenido a la App</h2>
<p>Esta es el área de contenido principal. Haz clic en el botón del menú para abrir el menú deslizante desde diferentes direcciones.</p>
<div class="feature-cards">
<div class="feature-card">
<div class="card-icon">📱</div>
<h3>Mobile First</h3>
<p>Optimizado para dispositivos móviles con interacciones táctiles amigables.</p>
</div>
<div class="feature-card">
<div class="card-icon">🎨</div>
<h3>Personalizable</h3>
<p>Múltiples estilos de animación y direcciones para elegir.</p>
</div>
<div class="feature-card">
<div class="card-icon">⚡</div>
<h3>Suave</h3>
<p>Animaciones aceleradas por hardware para rendimiento óptimo.</p>
</div>
</div>
</div>
</div>
<div class="sliding-menu left-menu overlay-style" role="navigation" aria-label="Navegación principal">
<div class="menu-header">
<div class="user-profile">
<div class="avatar">👤</div>
<div class="user-info">
<div class="user-name">Juan Pérez</div>
<div class="user-email">juan@ejemplo.com</div>
</div>
</div>
<button class="menu-close" aria-label="Cerrar menú">
<span class="close-icon">✕</span>
</button>
</div>
<div class="menu-content">
<nav class="menu-nav">
<ul class="menu-list">
<li class="menu-item">
<a href="#" class="menu-link active">
<span class="menu-icon">🏠</span>
<span class="menu-text">Inicio</span>
<span class="menu-badge">Nuevo</span>
</a>
</li>
<li class="menu-item">
<a href="#" class="menu-link">
<span class="menu-icon">📊</span>
<span class="menu-text">Panel</span>
</a>
</li>
<li class="menu-item">
<a href="#" class="menu-link">
<span class="menu-icon">👥</span>
<span class="menu-text">Usuarios</span>
<span class="menu-count">24</span>
</a>
</li>
<li class="menu-item">
<a href="#" class="menu-link">
<span class="menu-icon">📁</span>
<span class="menu-text">Proyectos</span>
</a>
</li>
<li class="menu-item">
<a href="#" class="menu-link">
<span class="menu-icon">📈</span>
<span class="menu-text">Analíticas</span>
</a>
</li>
<li class="menu-item">
<a href="#" class="menu-link">
<span class="menu-icon">💬</span>
<span class="menu-text">Mensajes</span>
<span class="menu-count">5</span>
</a>
</li>
<li class="menu-item">
<a href="#" class="menu-link">
<span class="menu-icon">📅</span>
<span class="menu-text">Calendario</span>
</a>
</li>
<li class="menu-item">
<a href="#" class="menu-link">
<span class="menu-icon">⚙️</span>
<span class="menu-text">Configuración</span>
</a>
</li>
</ul>
</nav>
<div class="menu-footer">
<div class="menu-section">
<h4 class="section-title">Acciones Rápidas</h4>
<div class="quick-actions">
<button class="quick-action">
<span class="action-icon">➕</span>
<span class="action-text">Nuevo Proyecto</span>
</button>
<button class="quick-action">
<span class="action-icon">📤</span>
<span class="action-text">Exportar Datos</span>
</button>
</div>
</div>
<div class="menu-section">
<button class="logout-btn">
<span class="logout-icon">🚪</span>
<span class="logout-text">Cerrar Sesión</span>
</button>
</div>
</div>
</div>
</div>
<div class="menu-overlay"></div>
<div class="menu-status">
<div class="status-item">
<span class="status-label">Dirección:</span>
<span class="status-value" id="currentDirection">Izquierda</span>
</div>
<div class="status-item">
<span class="status-label">Estilo:</span>
<span class="status-value" id="currentStyle">Superposición</span>
</div>
<div class="status-item">
<span class="status-label">Estado:</span>
<span class="status-value" id="menuStatus">Cerrado</span>
</div>
</div>
</div>
</div>