Categoría · Secciones de Características Nivel de Dificultad · Intermedio Publicado el · 10 de septiembre de 2025

Acordeón FAQ con Efecto Cristal

Un componente FAQ elegante con diseño glassmorphism, efectos de desenfoque y estética moderna

#FAQ #Glassmorphism #Acordeón #Moderno #Desenfoque #Responsive

Diseño Responsivo

Soporte para Modo Oscuro

No

líneas

217

Compatibilidad del Navegador

No

Vista Previa en Vivo

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

500px

Componente Acordeón FAQ con Efecto Cristal

Un componente FAQ elegante con diseño glassmorphism, efectos de desenfoque y estética moderna.

Características

  • Diseño Glassmorphism: Efecto de vidrio esmerilado usando desenfoque de fondo y transparencia
  • Animaciones Suaves: Transiciones elegantes para expandir y contraer elementos del FAQ
  • Estética Moderna: Diseño contemporáneo con colores vibrantes y tipografía limpia
  • Totalmente Responsive: Se adapta bellamente a todos los tamaños de pantalla
  • Accesible: Proporciones adecuadas de contraste y soporte para navegación por teclado
  • Personalizable: Fácil de personalizar con propiedades CSS personalizadas

Estructura HTML

<div class="glassmorphism-faq-container">
  <div class="faq-header">
    <h2 class="faq-title">Preguntas Frecuentes</h2>
    <p class="faq-subtitle">Respuestas a tus preguntas más comunes</p>
  </div>
  
  <div class="faq-accordion">
    <div class="faq-item">
      <div class="faq-question">
        <h3>¿Qué es el diseño glassmorphism?</h3>
        <div class="question-icon">+</div>
      </div>
      <div class="faq-answer">
        <p>El glassmorphism es una tendencia de diseño UI que usa desenfoque de fondo, transparencia y bordes vibrantes para crear un efecto de vidrio esmerilado.</p>
      </div>
    </div>
    
    <div class="faq-item">
      <div class="faq-question">
        <h3>¿Cómo se logra el efecto de desenfoque?</h3>
        <div class="question-icon">+</div>
      </div>
      <div class="faq-answer">
        <p>El efecto de desenfoque se crea usando la propiedad CSS backdrop-filter con un valor de desenfoque, combinada con fondos semitransparentes.</p>
      </div>
    </div>
    
    <div class="faq-item">
      <div class="faq-question">
        <h3>¿Es este diseño accesible?</h3>
        <div class="question-icon">+</div>
      </div>
      <div class="faq-answer">
        <p>¡Sí! Hemos implementado proporciones adecuadas de contraste, navegación por teclado y atributos ARIA para accesibilidad.</p>
      </div>
    </div>
    
    <div class="faq-item">
      <div class="faq-question">
        <h3>¿Puedo personalizar los colores?</h3>
        <div class="question-icon">+</div>
      </div>
      <div class="faq-answer">
        <p>¡Absolutamente! El componente usa propiedades CSS personalizadas que facilitan cambiar colores, intensidad de desenfoque y bordes.</p>
      </div>
    </div>
  </div>
</div>

Estilos CSS

.glassmorphism-faq-container {
  max-width: 800px;
  margin: 2rem auto;
  padding: 2rem;
  font-family: 'Inter', sans-serif;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  min-height: 100vh;
  position: relative;
  overflow: hidden;
}

.glassmorphism-faq-container::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="20" cy="20" r="2" fill="%23ffffff" opacity="0.1"/><circle cx="80" cy="80" r="2" fill="%23ffffff" opacity="0.1"/><circle cx="40" cy="60" r="1" fill="%23ffffff" opacity="0.2"/></svg>');
  pointer-events: none;
}

.faq-header {
  text-align: center;
  margin-bottom: 2rem;
  position: relative;
  z-index: 2;
}

.faq-title {
  font-size: 2.5rem;
  margin-bottom: 0.5rem;
  color: white;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

.faq-subtitle {
  color: rgba(255, 255, 255, 0.8);
  font-size: 1.1rem;
}

.faq-accordion {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  position: relative;
  z-index: 2;
}

.faq-item {
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 16px;
  overflow: hidden;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}

.faq-item:hover {
  background: rgba(255, 255, 255, 0.15);
  transform: translateY(-5px);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15);
}

.faq-question {
  padding: 1.5rem;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.faq-question h3 {
  margin: 0;
  font-size: 1.2rem;
  color: white;
  font-weight: 500;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.question-icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  color: white;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  border: 1px solid rgba(255, 255, 255, 0.3);
}

.faq-item.active .question-icon {
  transform: rotate(45deg);
  background: rgba(255, 255, 255, 0.3);
}

.faq-answer {
  padding: 0 1.5rem;
  max-height: 0;
  overflow: hidden;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  background: rgba(255, 255, 255, 0.05);
}

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

.faq-answer p {
  margin: 0;
  color: rgba(255, 255, 255, 0.9);
  line-height: 1.6;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

@media (max-width: 768px) {
  .glassmorphism-faq-container {
    padding: 1rem;
  }
  
  .faq-title {
    font-size: 2rem;
  }
  
  .faq-question {
    padding: 1.25rem;
  }
  
  .faq-question h3 {
    font-size: 1.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 del degradado y la intensidad del desenfoque para que coincidan con tu marca
  5. Agrega tus propias preguntas y respuestas del FAQ

El acordeón FAQ con efecto cristal presenta un efecto de vidrio esmerilado usando desenfoque de fondo y transparencia, creando una interfaz moderna y visualmente atractiva. El diseño es totalmente responsive e incluye animaciones suaves para expandir y contraer elementos del FAQ.

HTML

48

líneas

CSS

144

líneas

JavaScript

25

líneas


                <div class="glassmorphism-faq-container">
  <div class="faq-header">
    <h2 class="faq-title">Preguntas Frecuentes</h2>
    <p class="faq-subtitle">Respuestas a tus preguntas más comunes</p>
  </div>
  
  <div class="faq-accordion">
    <div class="faq-item">
      <div class="faq-question">
        <h3>¿Qué es el diseño glassmorphism?</h3>
        <div class="question-icon">+</div>
      </div>
      <div class="faq-answer">
        <p>El glassmorphism es una tendencia de diseño UI que usa desenfoque de fondo, transparencia y bordes vibrantes para crear un efecto de vidrio esmerilado.</p>
      </div>
    </div>
    
    <div class="faq-item">
      <div class="faq-question">
        <h3>¿Cómo se logra el efecto de desenfoque?</h3>
        <div class="question-icon">+</div>
      </div>
      <div class="faq-answer">
        <p>El efecto de desenfoque se crea usando la propiedad CSS backdrop-filter con un valor de desenfoque, combinada con fondos semitransparentes.</p>
      </div>
    </div>
    
    <div class="faq-item">
      <div class="faq-question">
        <h3>¿Es este diseño accesible?</h3>
        <div class="question-icon">+</div>
      </div>
      <div class="faq-answer">
        <p>¡Sí! Hemos implementado proporciones adecuadas de contraste, navegación por teclado y atributos ARIA para accesibilidad.</p>
      </div>
    </div>
    
    <div class="faq-item">
      <div class="faq-question">
        <h3>¿Puedo personalizar los colores?</h3>
        <div class="question-icon">+</div>
      </div>
      <div class="faq-answer">
        <p>¡Absolutamente! El componente usa propiedades CSS personalizadas que facilitan cambiar colores, intensidad de desenfoque y bordes.</p>
      </div>
    </div>
  </div>
</div>

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