Onda Líquida FAQ
Un componente FAQ orgánico con animaciones de onda fluida y efectos de movimiento fluido
Diseño Responsivo
Sí
Soporte para Modo Oscuro
No
líneas
306
Compatibilidad del Navegador
No
Vista Previa en Vivo
Interactúa con el componente sin salir de la página.
Componente de Onda Líquida FAQ
Un componente FAQ orgánico con animaciones de onda fluida y efectos de movimiento fluido para una experiencia de usuario natural.
Características
- Animaciones de Onda Fluida: Movimientos de onda orgánicos usando animaciones CSS y transformaciones
- Diseño Glassmorphism: Efecto de vidrio esmerilado con desenfoque de fondo
- Transiciones Suaves: Animaciones elegantes para expandir y contraer elementos del FAQ
- Indicadores Dinámicos: Indicadores de onda pulsantes para retroalimentación visual
- Optimizado para Rendimiento: Animaciones aceleradas por hardware para rendimiento suave
- Totalmente Responsive: Se adapta a todos los tamaños de pantalla manteniendo efectos fluidos
Estructura HTML
<div class="liquid-faq-container">
<div class="faq-header">
<h2 class="faq-title">Sistema FAQ Fluido</h2>
<p class="faq-subtitle">Conocimiento fluyendo en movimiento</p>
</div>
<div class="wave-background">
<div class="wave"></div>
<div class="wave"></div>
<div class="wave"></div>
</div>
<div class="faq-content">
<div class="faq-item">
<div class="faq-question">
<div class="wave-indicator"></div>
<h3>¿Qué es el diseño de onda líquida?</h3>
<div class="question-icon">+</div>
</div>
<div class="faq-answer">
<p>El diseño de onda líquida usa animaciones fluidas y movimiento orgánico para crear una sensación de flujo y interacción natural.</p>
</div>
</div>
<div class="faq-item">
<div class="faq-question">
<div class="wave-indicator"></div>
<h3>¿Cómo se crean los efectos de onda?</h3>
<div class="question-icon">+</div>
</div>
<div class="faq-answer">
<p>Los efectos de onda se logran usando animaciones de ruta SVG y fotogramas clave CSS para simular movimiento tipo agua natural.</p>
</div>
</div>
<div class="faq-item">
<div class="faq-question">
<div class="wave-indicator"></div>
<h3>¿Son pesados estos efectos para el rendimiento?</h3>
<div class="question-icon">+</div>
</div>
<div class="faq-answer">
<p>Las animaciones están optimizadas usando aceleración por hardware y propiedades CSS eficientes para rendimiento suave.</p>
</div>
</div>
<div class="faq-item">
<div class="faq-question">
<div class="wave-indicator"></div>
<h3>¿Puedo personalizar los colores de onda?</h3>
<div class="question-icon">+</div>
</div>
<div class="faq-answer">
<p>¡Absolutamente! El componente usa propiedades CSS personalizadas para fácil personalización de colores y velocidades de animación.</p>
</div>
</div>
</div>
</div>Estilos CSS
.liquid-faq-container {
max-width: 800px;
margin: 2rem auto;
padding: 2rem;
font-family: 'Inter', sans-serif;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
position: relative;
overflow: hidden;
border-radius: 20px;
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
}
.faq-header {
text-align: center;
margin-bottom: 3rem;
position: relative;
z-index: 3;
}
.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.9);
font-size: 1.1rem;
}
.wave-background {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow: hidden;
z-index: 1;
}
.wave {
position: absolute;
bottom: 0;
left: 0;
width: 200%;
height: 100px;
background: rgba(255, 255, 255, 0.1);
border-radius: 43%;
animation: wave 12s linear infinite;
opacity: 0.7;
}
.wave:nth-child(2) {
animation: wave 15s linear infinite;
opacity: 0.5;
animation-direction: reverse;
}
.wave:nth-child(3) {
animation: wave 18s linear infinite;
opacity: 0.3;
}
.faq-content {
position: relative;
z-index: 2;
}
.faq-item {
background: rgba(255, 255, 255, 0.15);
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.2);
margin-bottom: 1rem;
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);
position: relative;
}
.faq-item::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 2px;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.8), transparent);
transform: translateX(-100%);
animation: wave-glow 3s ease-in-out infinite;
}
.faq-item:hover {
background: rgba(255, 255, 255, 0.2);
transform: translateY(-5px);
box-shadow: 0 12px 40px rgba(0, 0, 0, 0.2);
}
.faq-question {
display: flex;
align-items: center;
padding: 1.5rem;
cursor: pointer;
position: relative;
}
.wave-indicator {
width: 12px;
height: 12px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.8);
margin-right: 1rem;
position: relative;
overflow: hidden;
}
.wave-indicator::before {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 200%;
height: 200%;
background: radial-gradient(circle, rgba(255, 255, 255, 0.8) 0%, transparent 70%);
transform: translate(-50%, -50%);
animation: pulse 2s ease-in-out infinite;
}
.faq-question h3 {
margin: 0;
font-size: 1.2rem;
color: white;
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
flex: 1;
}
.question-icon {
font-size: 1.5rem;
color: white;
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
transition: transform 0.3s ease;
width: 30px;
height: 30px;
display: flex;
align-items: center;
justify-content: center;
}
.faq-item.active .question-icon {
transform: rotate(45deg);
}
.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.1);
border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.faq-item.active .faq-answer {
padding: 0 1.5rem 1.5rem;
max-height: 200px;
}
.faq-answer p {
margin: 1rem 0 0 0;
color: rgba(255, 255, 255, 0.9);
line-height: 1.6;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}
@keyframes wave {
0% {
transform: translateX(0) translateY(0) rotate(0deg);
}
50% {
transform: translateX(-25%) translateY(-20px) rotate(1deg);
}
100% {
transform: translateX(-50%) translateY(0) rotate(0deg);
}
}
@keyframes wave-glow {
0% {
transform: translateX(-100%);
}
100% {
transform: translateX(100%);
}
}
@keyframes pulse {
0%, 100% {
transform: translate(-50%, -50%) scale(1);
opacity: 0.7;
}
50% {
transform: translate(-50%, -50%) scale(1.5);
opacity: 0.3;
}
}
@media (max-width: 768px) {
.liquid-faq-container {
padding: 1rem;
}
.faq-title {
font-size: 2rem;
}
.faq-question {
padding: 1rem;
}
.faq-question h3 {
font-size: 1rem;
}
}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 las velocidades de animación de onda para que coincidan con tu marca
- Agrega tus propias preguntas y respuestas del FAQ
El componente de onda líquida FAQ presenta animaciones de onda orgánicas y efectos de movimiento fluido que crean una experiencia de usuario natural y fluida. El diseño usa técnicas de glassmorphism con desenfoque de fondo y múltiples animaciones de onda en capas para una interfaz visualmente atractiva.
HTML
58
líneas
CSS
223
líneas
JavaScript
25
líneas
<div class="liquid-faq-container">
<div class="faq-header">
<h2 class="faq-title">Sistema FAQ Fluido</h2>
<p class="faq-subtitle">Conocimiento fluyendo en movimiento</p>
</div>
<div class="wave-background">
<div class="wave"></div>
<div class="wave"></div>
<div class="wave"></div>
</div>
<div class="faq-content">
<div class="faq-item">
<div class="faq-question">
<div class="wave-indicator"></div>
<h3>¿Qué es el diseño de onda líquida?</h3>
<div class="question-icon">+</div>
</div>
<div class="faq-answer">
<p>El diseño de onda líquida usa animaciones fluidas y movimiento orgánico para crear una sensación de flujo y interacción natural.</p>
</div>
</div>
<div class="faq-item">
<div class="faq-question">
<div class="wave-indicator"></div>
<h3>¿Cómo se crean los efectos de onda?</h3>
<div class="question-icon">+</div>
</div>
<div class="faq-answer">
<p>Los efectos de onda se logran usando animaciones de ruta SVG y fotogramas clave CSS para simular movimiento tipo agua natural.</p>
</div>
</div>
<div class="faq-item">
<div class="faq-question">
<div class="wave-indicator"></div>
<h3>¿Son pesados estos efectos para el rendimiento?</h3>
<div class="question-icon">+</div>
</div>
<div class="faq-answer">
<p>Las animaciones están optimizadas usando aceleración por hardware y propiedades CSS eficientes para rendimiento suave.</p>
</div>
</div>
<div class="faq-item">
<div class="faq-question">
<div class="wave-indicator"></div>
<h3>¿Puedo personalizar los colores de onda?</h3>
<div class="question-icon">+</div>
</div>
<div class="faq-answer">
<p>¡Absolutamente! El componente usa propiedades CSS personalizadas para fácil personalización de colores y velocidades de animación.</p>
</div>
</div>
</div>
</div>