Botón de Acción Flotante
Botón de acción flotante moderno con animaciones suaves, opciones de menú expandible y efectos de hover elegantes. Perfecto para aplicaciones mobile-first y acciones rápidas.
Diseño Responsivo
Sí
Soporte para Modo Oscuro
Sí
líneas
629
Compatibilidad del Navegador
No
Vista Previa en Vivo
Interactúa con el componente sin salir de la página.
Botón de Acción Flotante
Un componente moderno y accesible de botón de acción flotante (FAB) con opciones de menú expandible, animaciones suaves y soporte integral de interacción. Perfecto para aplicaciones mobile-first y acceso rápido a acciones principales.
Características
- Menú Expandible: Animación suave con aparición escalonada de elementos
- Múltiples Acciones: Soporte para funciones de mensaje, llamada, email y compartir
- Tooltips al Hover: Etiquetas contextuales para mejor experiencia de usuario
- Efectos Ripple: Retroalimentación táctil inspirada en Material Design
- Navegación por Teclado: Accesibilidad completa con soporte de teclas de flecha
- Soporte de Lector de Pantalla: Etiquetas ARIA y anuncios en vivo
- Optimizado para Móvil: Tamaño amigable al tacto y diseño responsivo
- Soporte Modo Oscuro: Adaptación automática a preferencias del sistema
Estados de Interacción
- Estado Inactivo: Animación de pulso sutil para atraer atención
- Efectos Hover: Transformaciones de escala y sombra
- Estado Activo: Animación de rotación y expansión del menú
- Estados de Enfoque: Indicadores de navegación por teclado
- Estados de Carga: Transiciones suaves durante acciones
Características de Accesibilidad
- Compatible con WCAG 2.1 AA
- Navegación por teclado con teclas de flecha
- Anuncios de lector de pantalla
- Gestión de enfoque
- Soporte de alto contraste
- Tamaño de objetivo táctil (mínimo 44px)
Opciones de Personalización
/* Colores personalizados */
.fab-main {
background: linear-gradient(135deg, #tu-primario, #tu-secundario);
}
/* Posicionamiento personalizado */
.fab-container {
bottom: 1rem; /* Ajustar posición vertical */
left: 2rem; /* Mover al lado izquierdo */
}
/* Dirección de menú personalizada */
.fab-menu {
bottom: auto;
top: 70px; /* Menú aparece arriba del botón */
}Manejadores de Acción
El componente incluye manejadores integrados para acciones comunes:
- Mensaje: Abre interfaz de mensajería
- Llamada: Inicia llamada telefónica
- Email: Abre cliente de correo
- Compartir: Usa Web Share API con fallback de portapapeles
Soporte de Navegadores
- Chrome 60+ (soporte completo)
- Firefox 55+ (soporte completo)
- Safari 12+ (soporte completo)
- Edge 79+ (soporte completo)
- iOS Safari 12+ (soporte completo)
- Android Chrome 60+ (soporte completo)
Características de Rendimiento
- Animaciones aceleradas por hardware
- Delegación eficiente de eventos
- Manipulación mínima del DOM
- Optimizado para animaciones a 60fps
- Sistema de notificaciones de carga diferida
Ejemplos de Integración
// Manejador de acción personalizado
const fab = new FloatingActionButton();
fab.addCustomAction('download', () => {
console.log('Descarga iniciada');
});
// Control programático
fab.open(); // Abrir menú
fab.close(); // Cerrar menú
fab.toggle(); // Alternar estadoHTML
33
líneas
CSS
292
líneas
JavaScript
304
líneas
<div class="fab-container">
<!-- Botón FAB Principal -->
<button class="fab-main" id="fabMain" aria-label="Menú de acciones principales">
<span class="fab-icon main-icon">+</span>
<span class="fab-icon close-icon">×</span>
</button>
<!-- Elementos del Menú FAB -->
<div class="fab-menu" id="fabMenu">
<button class="fab-item" data-action="message" aria-label="Enviar mensaje">
<span class="fab-icon">💬</span>
<span class="fab-tooltip">Mensaje</span>
</button>
<button class="fab-item" data-action="call" aria-label="Hacer llamada">
<span class="fab-icon">📞</span>
<span class="fab-tooltip">Llamar</span>
</button>
<button class="fab-item" data-action="email" aria-label="Enviar correo">
<span class="fab-icon">✉️</span>
<span class="fab-tooltip">Email</span>
</button>
<button class="fab-item" data-action="share" aria-label="Compartir contenido">
<span class="fab-icon">🔗</span>
<span class="fab-tooltip">Compartir</span>
</button>
</div>
<!-- Overlay de Fondo -->
<div class="fab-overlay" id="fabOverlay"></div>
</div>