Categoría · Interactivo Nivel de Dificultad · Intermedio Publicado el · 10 de septiembre de 2025

FAQ con Gradiente Animado

Un componente FAQ moderno con fondos de gradiente animados, transiciones suaves y elementos interactivos

#FAQ #Gradiente #Animado #Interactivo #Moderno #Responsive

Diseño Responsivo

Soporte para Modo Oscuro

No

líneas

197

Compatibilidad del Navegador

No

Vista Previa en Vivo

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

500px

Componente FAQ con Gradiente Animado

Un componente FAQ moderno y visualmente atractivo con fondos de gradiente animados y transiciones suaves.

Características

  • Fondos de Gradiente Animados: Fondos de gradiente que cambian suavemente creando un efecto visual dinámico
  • Transiciones Suaves: Animaciones elegantes para expandir y contraer elementos del FAQ
  • Diseño Responsive: Diseño completamente responsive que funciona en todos los tamaños de dispositivo
  • Accesible: Atributos ARIA adecuados para lectores de pantalla y navegación por teclado
  • UI Moderna: Diseño limpio y contemporáneo con efectos hover sutiles
  • Ligero: Código optimizado con JavaScript mínimo

Estructura HTML

<div class="gradient-faq-container">
  <div class="faq-header">
    <h2 class="faq-title">Preguntas Frecuentes</h2>
    <p class="faq-subtitle">Encuentra respuestas a preguntas comunes</p>
  </div>
  
  <div class="faq-accordion">
    <div class="faq-item">
      <button class="faq-question" aria-expanded="false">
        <span class="question-text">¿Qué hace especial a este componente FAQ?</span>
        <span class="question-icon">+</span>
      </button>
      <div class="faq-answer">
        <p>Este FAQ presenta fondos de gradiente animados, micro-interacciones suaves y un diseño moderno con animaciones CSS.</p>
      </div>
    </div>
    
    <div class="faq-item">
      <button class="faq-question" aria-expanded="false">
        <span class="question-text">¿Cómo funcionan las animaciones de gradiente?</span>
        <span class="question-icon">+</span>
      </button>
      <div class="faq-answer">
        <p>Las animaciones de gradiente utilizan fotogramas clave CSS con transiciones de posición de fondo para crear un efecto fluido.</p>
      </div>
    </div>
    
    <div class="faq-item">
      <button class="faq-question" aria-expanded="false">
        <span class="question-text">¿Es este diseño responsive?</span>
        <span class="question-icon">+</span>
      </button>
      <div class="faq-answer">
        <p>Sí, el diseño es completamente responsive y se adapta bellamente a todos los tamaños de pantalla.</p>
      </div>
    </div>
    
    <div class="faq-item">
      <button class="faq-question" aria-expanded="false">
        <span class="question-text">¿Qué navegadores lo soportan?</span>
        <span class="question-icon">+</span>
      </button>
      <div class="faq-answer">
        <p>Los navegadores modernos incluyendo Chrome, Firefox, Safari y Edge soportan todas las características.</p>
      </div>
    </div>
  </div>
</div>

Estilos CSS

.gradient-faq-container {
  max-width: 800px;
  margin: 2rem auto;
  padding: 2rem;
  font-family: 'Inter', sans-serif;
}

.faq-header {
  text-align: center;
  margin-bottom: 2rem;
}

.faq-title {
  font-size: 2.5rem;
  margin-bottom: 0.5rem;
  background: linear-gradient(45deg, #667eea, #764ba2);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.faq-subtitle {
  color: #6b7280;
  font-size: 1.1rem;
}

.faq-accordion {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.faq-item {
  border-radius: 12px;
  overflow: hidden;
  background: linear-gradient(45deg, #667eea, #764ba2);
  background-size: 300% 300%;
  animation: gradientShift 8s ease infinite;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.faq-item:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
}

.faq-question {
  width: 100%;
  padding: 1.5rem;
  background: rgba(255, 255, 255, 0.95);
  border: none;
  text-align: left;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 1.1rem;
  font-weight: 600;
  color: #1f2937;
  transition: background 0.3s ease;
}

.faq-question:hover {
  background: rgba(255, 255, 255, 1);
}

.question-icon {
  font-size: 1.5rem;
  transition: transform 0.3s ease;
}

.faq-item.active .question-icon {
  transform: rotate(45deg);
}

.faq-answer {
  max-height: 0;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.9);
  transition: max-height 0.3s ease, padding 0.3s ease;
}

.faq-item.active .faq-answer {
  max-height: 200px;
  padding: 0 1.5rem 1.5rem;
}

.faq-answer p {
  margin: 0;
  color: #4b5563;
  line-height: 1.6;
}

@keyframes gradientShift {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

@media (max-width: 768px) {
  .gradient-faq-container {
    padding: 1rem;
  }
  
  .faq-title {
    font-size: 2rem;
  }
  
  .faq-question {
    padding: 1.25rem;
    font-size: 1rem;
  }
  
  .faq-item.active .faq-answer {
    padding: 0 1.25rem 1.25rem;
  }
}

Funcionalidad JavaScript

document.addEventListener('DOMContentLoaded', function() {
  const faqItems = document.querySelectorAll('.faq-item');
  
  faqItems.forEach(item => {
    const question = item.querySelector('.faq-question');
    
    question.addEventListener('click', () => {
      const isActive = item.classList.contains('active');
      
      // Close all other items
      faqItems.forEach(otherItem => {
        if (otherItem !== item) {
          otherItem.classList.remove('active');
        }
      });
      
      // Toggle current item
      if (isActive) {
        item.classList.remove('active');
      } else {
        item.classList.add('active');
      }
    });
  });
});

Guía de Implementación

  1. Copia la estructura HTML en tu proyecto
  2. Agrega los estilos CSS a tu hoja de estilos
  3. Incluye el código JavaScript en tu archivo de script
  4. Personaliza los colores, fuentes y animaciones para que coincidan con tu marca
  5. Agrega tus propias preguntas y respuestas del FAQ

Este componente FAQ presenta un hermoso fondo de gradiente animado que cambia de colores suavemente, creando un efecto llamativo. La funcionalidad de acordeón permite a los usuarios expandir y contraer preguntas según sea necesario, y el diseño es completamente responsive para todos los tamaños de dispositivo.

HTML

48

líneas

CSS

124

líneas

JavaScript

25

líneas


                <div class="gradient-faq-container">
  <div class="faq-header">
    <h2 class="faq-title">Preguntas Frecuentes</h2>
    <p class="faq-subtitle">Encuentra respuestas a preguntas comunes</p>
  </div>
  
  <div class="faq-accordion">
    <div class="faq-item">
      <button class="faq-question" aria-expanded="false">
        <span class="question-text">¿Qué hace especial a este componente FAQ?</span>
        <span class="question-icon">+</span>
      </button>
      <div class="faq-answer">
        <p>Este FAQ presenta fondos de gradiente animados, micro-interacciones suaves y un diseño moderno con animaciones CSS.</p>
      </div>
    </div>
    
    <div class="faq-item">
      <button class="faq-question" aria-expanded="false">
        <span class="question-text">¿Cómo funcionan las animaciones de gradiente?</span>
        <span class="question-icon">+</span>
      </button>
      <div class="faq-answer">
        <p>Las animaciones de gradiente utilizan fotogramas clave CSS con transiciones de posición de fondo para crear un efecto fluido.</p>
      </div>
    </div>
    
    <div class="faq-item">
      <button class="faq-question" aria-expanded="false">
        <span class="question-text">¿Es este diseño responsive?</span>
        <span class="question-icon">+</span>
      </button>
      <div class="faq-answer">
        <p>Sí, el diseño es completamente responsive y se adapta bellamente a todos los tamaños de pantalla.</p>
      </div>
    </div>
    
    <div class="faq-item">
      <button class="faq-question" aria-expanded="false">
        <span class="question-text">¿Qué navegadores lo soportan?</span>
        <span class="question-icon">+</span>
      </button>
      <div class="faq-answer">
        <p>Los navegadores modernos incluyendo Chrome, Firefox, Safari y Edge soportan todas las características.</p>
      </div>
    </div>
  </div>
</div>

              
48líneas
1887caracteres
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 →