Acordeón FAQ con Efecto Cristal
Un componente FAQ elegante con diseño glassmorphism, efectos de desenfoque y estética moderna
Diseño Responsivo
Sí
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.
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
- Copia la estructura HTML en tu proyecto
- Agrega los estilos CSS a tu hoja de estilos
- Incluye el código JavaScript en tu archivo de script
- Personaliza los colores del degradado y la intensidad del desenfoque para que coincidan con tu marca
- 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>