Categoría · Interactivo Nivel de Dificultad · Intermedio Publicado el · 22 de enero de 2024

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.

#fab #floating #boton #menu #movil

Diseño Responsivo

Soporte para Modo Oscuro

líneas

629

Compatibilidad del Navegador

No

Vista Previa en Vivo

Interactúa con el componente sin salir de la página.

400px

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 estado

HTML

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>

              
33líneas
1149caracteres
HTMLIdioma

Fragmentos de Código Relacionados

Explora packs de plantillas

¿Necesitas bloques más grandes? Descubre landings y colecciones de componentes.

Abrir la biblioteca de plantillas →