Tarjetas de Precios Neumórficas
Tabla de precios moderna con diseño neumórfico, sombras suaves y elementos interactivos
Diseño Responsivo
Sí
Soporte para Modo Oscuro
No
líneas
409
Compatibilidad del Navegador
No
Vista Previa en Vivo
Interactúa con el componente sin salir de la página.
Componente de Tarjetas de Precios Neumórficas
Una tabla de precios moderna con diseño neumórfico, sombras suaves y elementos interactivos para una experiencia táctil del usuario.
Características
- Diseño Neumórfico: Diseño UI suave con sombras sutiles que crean un efecto extruido
- Alternancia de Facturación: Cambia entre precios mensuales y anuales con descuento
- Plan Popular Resaltado: Tarjeta visualmente distintiva para el plan más popular
- Comparación de Funciones: Listas de funciones claras con indicadores visuales
- Diseño Responsive: Se adapta a todos los tamaños de pantalla con diseño amigable para móviles
- Elementos Interactivos: Efectos hover y transiciones suaves para una mejor UX
Estructura HTML
<div class="neumorphic-pricing-container">
<div class="pricing-header">
<h2 class="pricing-title">Elige Tu Plan</h2>
<p class="pricing-subtitle">Selecciona el plan perfecto para tus necesidades</p>
</div>
<div class="pricing-toggle">
<span class="toggle-label">Mensual</span>
<label class="switch">
<input type="checkbox" id="billing-toggle">
<span class="slider"></span>
</label>
<span class="toggle-label">Anual</span>
<span class="discount-badge">Ahorra 20%</span>
</div>
<div class="pricing-grid">
<div class="pricing-card">
<div class="card-header">
<h3 class="plan-name">Básico</h3>
<p class="plan-description">Perfecto para individuos</p>
</div>
<div class="card-price">
<span class="currency">$</span>
<span class="amount" data-monthly="9" data-yearly="7.20">9</span>
<span class="period">/mes</span>
</div>
<ul class="features-list">
<li class="feature-item">
<span class="feature-icon">✓</span>
<span class="feature-text">5 Proyectos</span>
</li>
<li class="feature-item">
<span class="feature-icon">✓</span>
<span class="feature-text">10GB Almacenamiento</span>
</li>
<li class="feature-item">
<span class="feature-icon">✓</span>
<span class="feature-text">Soporte Básico</span>
</li>
<li class="feature-item disabled">
<span class="feature-icon">✗</span>
<span class="feature-text">Analíticas Avanzadas</span>
</li>
<li class="feature-item disabled">
<span class="feature-icon">✗</span>
<span class="feature-text">Dominio Personalizado</span>
</li>
</ul>
<button class="select-button">Comenzar</button>
</div>
<div class="pricing-card popular">
<div class="popular-badge">Más Popular</div>
<div class="card-header">
<h3 class="plan-name">Profesional</h3>
<p class="plan-description">Ideal para equipos pequeños</p>
</div>
<div class="card-price">
<span class="currency">$</span>
<span class="amount" data-monthly="29" data-yearly="23.20">29</span>
<span class="period">/mes</span>
</div>
<ul class="features-list">
<li class="feature-item">
<span class="feature-icon">✓</span>
<span class="feature-text">Proyectos Ilimitados</span>
</li>
<li class="feature-item">
<span class="feature-icon">✓</span>
<span class="feature-text">100GB Almacenamiento</span>
</li>
<li class="feature-item">
<span class="feature-icon">✓</span>
<span class="feature-text">Soporte Prioritario</span>
</li>
<li class="feature-item">
<span class="feature-icon">✓</span>
<span class="feature-text">Analíticas Avanzadas</span>
</li>
<li class="feature-item disabled">
<span class="feature-icon">✗</span>
<span class="feature-text">Dominio Personalizado</span>
</li>
</ul>
<button class="select-button">Comenzar</button>
</div>
<div class="pricing-card">
<div class="card-header">
<h3 class="plan-name">Empresarial</h3>
<p class="plan-description">Para organizaciones grandes</p>
</div>
<div class="card-price">
<span class="currency">$</span>
<span class="amount" data-monthly="99" data-yearly="79.20">99</span>
<span class="period">/mes</span>
</div>
<ul class="features-list">
<li class="feature-item">
<span class="feature-icon">✓</span>
<span class="feature-text">Proyectos Ilimitados</span>
</li>
<li class="feature-item">
<span class="feature-icon">✓</span>
<span class="feature-text">1TB Almacenamiento</span>
</li>
<li class="feature-item">
<span class="feature-icon">✓</span>
<span class="feature-text">Soporte Premium 24/7</span>
</li>
<li class="feature-item">
<span class="feature-icon">✓</span>
<span class="feature-text">Analíticas Avanzadas</span>
</li>
<li class="feature-item">
<span class="feature-icon">✓</span>
<span class="feature-text">Dominio Personalizado</span>
</li>
</ul>
<button class="select-button">Comenzar</button>
</div>
</div>
</div>Estilos CSS
.neumorphic-pricing-container {
max-width: 1200px;
margin: 2rem auto;
padding: 2rem;
font-family: 'Inter', sans-serif;
background: #e0e5ec;
min-height: 100vh;
}
.pricing-header {
text-align: center;
margin-bottom: 3rem;
}
.pricing-title {
font-size: 2.5rem;
margin-bottom: 0.5rem;
color: #333;
}
.pricing-subtitle {
color: #6b7280;
font-size: 1.1rem;
}
.pricing-toggle {
display: flex;
justify-content: center;
align-items: center;
gap: 1rem;
margin-bottom: 3rem;
}
.toggle-label {
font-size: 1rem;
color: #4b5563;
font-weight: 500;
}
.switch {
position: relative;
display: inline-block;
width: 60px;
height: 30px;
}
.switch input {
opacity: 0;
width: 0;
height: 0;
}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: #e0e5ec;
box-shadow: inset 2px 2px 4px #b8bec6, inset -2px -2px 4px #ffffff;
transition: .4s;
border-radius: 34px;
}
.slider:before {
position: absolute;
content: "";
height: 22px;
width: 22px;
left: 4px;
bottom: 4px;
background: #d1d8e0;
box-shadow: 2px 2px 4px #b8bec6, -2px -2px 4px #ffffff;
transition: .4s;
border-radius: 50%;
}
input:checked + .slider {
background: #d1d8e0;
box-shadow: inset 2px 2px 4px #b8bec6, inset -2px -2px 4px #ffffff;
}
input:checked + .slider:before {
transform: translateX(30px);
background: #667eea;
box-shadow: 2px 2px 4px #b8bec6, -2px -2px 4px #ffffff;
}
.discount-badge {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 0.25rem 0.75rem;
border-radius: 20px;
font-size: 0.8rem;
font-weight: 600;
margin-left: 0.5rem;
}
.pricing-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 2rem;
}
.pricing-card {
background: #e0e5ec;
border-radius: 20px;
padding: 2rem;
box-shadow: 8px 8px 16px #b8bec6, -8px -8px 16px #ffffff;
transition: all 0.3s ease;
position: relative;
overflow: hidden;
}
.pricing-card:hover {
box-shadow: 6px 6px 12px #b8bec6, -6px -6px 12px #ffffff;
transform: translateY(-5px);
}
.popular {
box-shadow: 12px 12px 24px #b8bec6, -12px -12px 24px #ffffff;
transform: scale(1.05);
}
.popular:hover {
box-shadow: 10px 10px 20px #b8bec6, -10px -10px 20px #ffffff;
}
.popular-badge {
position: absolute;
top: 1rem;
right: -30px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 0.25rem 2rem;
font-size: 0.8rem;
font-weight: 600;
transform: rotate(45deg);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
.card-header {
text-align: center;
margin-bottom: 2rem;
}
.plan-name {
font-size: 1.5rem;
margin-bottom: 0.5rem;
color: #333;
font-weight: 700;
}
.plan-description {
color: #6b7280;
font-size: 0.9rem;
}
.card-price {
text-align: center;
margin-bottom: 2rem;
}
.currency {
font-size: 1.5rem;
color: #6b7280;
vertical-align: top;
}
.amount {
font-size: 3rem;
font-weight: 700;
color: #333;
}
.period {
color: #6b7280;
font-size: 1rem;
}
.features-list {
list-style: none;
padding: 0;
margin-bottom: 2rem;
}
.feature-item {
display: flex;
align-items: center;
padding: 0.75rem 0;
border-bottom: 1px solid rgba(184, 190, 198, 0.3);
}
.feature-item:last-child {
border-bottom: none;
}
.feature-icon {
width: 24px;
height: 24px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
margin-right: 1rem;
font-size: 0.8rem;
font-weight: bold;
}
.feature-item:not(.disabled) .feature-icon {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
}
.feature-item.disabled .feature-icon {
background: #d1d8e0;
color: #9ca3af;
}
.feature-text {
color: #333;
font-size: 0.95rem;
}
.feature-item.disabled .feature-text {
color: #9ca3af;
}
.select-button {
width: 100%;
padding: 1rem;
background: #e0e5ec;
box-shadow: inset 2px 2px 4px #b8bec6, inset -2px -2px 4px #ffffff;
border: none;
border-radius: 12px;
font-size: 1rem;
font-weight: 600;
color: #333;
cursor: pointer;
transition: all 0.3s ease;
}
.select-button:hover {
background: #d1d8e0;
box-shadow: inset 2px 2px 4px #b8bec6, inset -2px -2px 4px #ffffff;
transform: translateY(-2px);
}
@media (max-width: 768px) {
.neumorphic-pricing-container {
padding: 1rem;
}
.pricing-grid {
grid-template-columns: 1fr;
gap: 1.5rem;
}
.pricing-title {
font-size: 2rem;
}
.popular {
transform: scale(1);
}
.popular:hover {
transform: translateY(-5px);
}
}Funcionalidad JavaScript
document.addEventListener('DOMContentLoaded', function() {
const toggle = document.getElementById('billing-toggle');
const amounts = document.querySelectorAll('.amount');
toggle.addEventListener('change', function() {
amounts.forEach(amount => {
if (this.checked) {
amount.textContent = amount.getAttribute('data-yearly');
} else {
amount.textContent = amount.getAttribute('data-monthly');
}
});
});
});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, sombras y texto para que coincidan con tu marca
- Actualiza los planes de precios y características para reflejar tus ofertas
Las tarjetas de precios neumórficas presentan un diseño UI suave con sombras sutiles que crean un efecto extruido, dándole a la interfaz una apariencia táctil y tridimensional. El diseño es totalmente responsive e incluye elementos interactivos como una alternancia de facturación y efectos hover.
HTML
124
líneas
CSS
271
líneas
JavaScript
14
líneas
<div class="neumorphic-pricing-container">
<div class="pricing-header">
<h2 class="pricing-title">Elige Tu Plan</h2>
<p class="pricing-subtitle">Selecciona el plan perfecto para tus necesidades</p>
</div>
<div class="pricing-toggle">
<span class="toggle-label">Mensual</span>
<label class="switch">
<input type="checkbox" id="billing-toggle">
<span class="slider"></span>
</label>
<span class="toggle-label">Anual</span>
<span class="discount-badge">Ahorra 20%</span>
</div>
<div class="pricing-grid">
<div class="pricing-card">
<div class="card-header">
<h3 class="plan-name">Básico</h3>
<p class="plan-description">Perfecto para individuos</p>
</div>
<div class="card-price">
<span class="currency">\$</span>
<span class="amount" data-monthly="9" data-yearly="7.20">9</span>
<span class="period">/mes</span>
</div>
<ul class="features-list">
<li class="feature-item">
<span class="feature-icon">✓</span>
<span class="feature-text">5 Proyectos</span>
</li>
<li class="feature-item">
<span class="feature-icon">✓</span>
<span class="feature-text">10GB Almacenamiento</span>
</li>
<li class="feature-item">
<span class="feature-icon">✓</span>
<span class="feature-text">Soporte Básico</span>
</li>
<li class="feature-item disabled">
<span class="feature-icon">✗</span>
<span class="feature-text">Analíticas Avanzadas</span>
</li>
<li class="feature-item disabled">
<span class="feature-icon">✗</span>
<span class="feature-text">Dominio Personalizado</span>
</li>
</ul>
<button class="select-button">Comenzar</button>
</div>
<div class="pricing-card popular">
<div class="popular-badge">Más Popular</div>
<div class="card-header">
<h3 class="plan-name">Profesional</h3>
<p class="plan-description">Ideal para equipos pequeños</p>
</div>
<div class="card-price">
<span class="currency">\$</span>
<span class="amount" data-monthly="29" data-yearly="23.20">29</span>
<span class="period">/mes</span>
</div>
<ul class="features-list">
<li class="feature-item">
<span class="feature-icon">✓</span>
<span class="feature-text">Proyectos Ilimitados</span>
</li>
<li class="feature-item">
<span class="feature-icon">✓</span>
<span class="feature-text">100GB Almacenamiento</span>
</li>
<li class="feature-item">
<span class="feature-icon">✓</span>
<span class="feature-text">Soporte Prioritario</span>
</li>
<li class="feature-item">
<span class="feature-icon">✓</span>
<span class="feature-text">Analíticas Avanzadas</span>
</li>
<li class="feature-item disabled">
<span class="feature-icon">✗</span>
<span class="feature-text">Dominio Personalizado</span>
</li>
</ul>
<button class="select-button">Comenzar</button>
</div>
<div class="pricing-card">
<div class="card-header">
<h3 class="plan-name">Empresarial</h3>
<p class="plan-description">Para organizaciones grandes</p>
</div>
<div class="card-price">
<span class="currency">\$</span>
<span class="amount" data-monthly="99" data-yearly="79.20">99</span>
<span class="period">/mes</span>
</div>
<ul class="features-list">
<li class="feature-item">
<span class="feature-icon">✓</span>
<span class="feature-text">Proyectos Ilimitados</span>
</li>
<li class="feature-item">
<span class="feature-icon">✓</span>
<span class="feature-text">1TB Almacenamiento</span>
</li>
<li class="feature-item">
<span class="feature-icon">✓</span>
<span class="feature-text">Soporte Premium 24/7</span>
</li>
<li class="feature-item">
<span class="feature-icon">✓</span>
<span class="feature-text">Analíticas Avanzadas</span>
</li>
<li class="feature-item">
<span class="feature-icon">✓</span>
<span class="feature-text">Dominio Personalizado</span>
</li>
</ul>
<button class="select-button">Comenzar</button>
</div>
</div>
</div>