Visualización de Precios Holográfica
Tabla de precios inmersiva con proyecciones holográficas, elementos 3D y efectos de rayos de luz
Diseño Responsivo
Sí
Soporte para Modo Oscuro
No
líneas
584
Compatibilidad del Navegador
No
Vista Previa en Vivo
Interactúa con el componente sin salir de la página.
Componente de Visualización de Precios Holográfica
Una tabla de precios inmersiva con proyecciones holográficas, elementos 3D y efectos de rayos de luz para una experiencia futurista.
Características
- Proyecciones Holográficas: Proyección 3D holográfica simulada usando transformaciones CSS 3D y perspectiva
- Efectos de Rayos de Luz: Rayos de luz dinámicos que se mueven por la pantalla para visuales inmersivos
- Animación Flotante: Movimiento flotante suave para simular proyección holográfica
- Efectos de Línea de Escaneo: Líneas de escaneo móviles para apariencia holográfica auténtica
- Interacción 3D: Tarjetas que responden al movimiento del cursor con rotación 3D realista
- Elementos Brillantes: Elementos tipo neón usando sombras de texto y caja en capas
Estructura HTML
<div class="holographic-pricing-container">
<div class="pricing-header">
<h2 class="pricing-title">/// PRECIOS HOLOGRÁFICOS ///</h2>
<p class="pricing-subtitle">PROYECTANDO INFORMACIÓN DE NIVELES...</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 30%</span>
</div>
<div class="pricing-grid">
<div class="pricing-card" data-tier="basico">
<div class="hologram-base"></div>
<div class="card-projection">
<div class="card-header">
<h3 class="plan-name">BÁSICO</h3>
<p class="plan-description">PARA USUARIOS INDIVIDUALES</p>
</div>
<div class="card-price">
<span class="currency">$</span>
<span class="amount" data-monthly="19" data-yearly="13.30">19</span>
<span class="period">/MES</span>
</div>
<ul class="features-list">
<li class="feature-item">
<div class="feature-dot"></div>
<span class="feature-text">1 PROYECTO</span>
</li>
<li class="feature-item">
<div class="feature-dot"></div>
<span class="feature-text">5GB ALMACENAMIENTO</span>
</li>
<li class="feature-item">
<div class="feature-dot"></div>
<span class="feature-text">SOPORTE POR EMAIL</span>
</li>
<li class="feature-item disabled">
<div class="feature-dot disabled"></div>
<span class="feature-text">ACCESO API</span>
</li>
<li class="feature-item disabled">
<div class="feature-dot disabled"></div>
<span class="feature-text">DOMINIO PERSONALIZADO</span>
</li>
</ul>
<button class="select-button">SELECCIONAR PLAN</button>
</div>
</div>
<div class="pricing-card popular" data-tier="pro">
<div class="hologram-base"></div>
<div class="card-projection">
<div class="popular-badge">MÁS POPULAR</div>
<div class="card-header">
<h3 class="plan-name">PRO</h3>
<p class="plan-description">PARA EQUIPOS EN CRECIMIENTO</p>
</div>
<div class="card-price">
<span class="currency">$</span>
<span class="amount" data-monthly="49" data-yearly="34.30">49</span>
<span class="period">/MES</span>
</div>
<ul class="features-list">
<li class="feature-item">
<div class="feature-dot"></div>
<span class="feature-text">5 PROYECTOS</span>
</li>
<li class="feature-item">
<div class="feature-dot"></div>
<span class="feature-text">100GB ALMACENAMIENTO</span>
</li>
<li class="feature-item">
<div class="feature-dot"></div>
<span class="feature-text">SOPORTE PRIORITARIO</span>
</li>
<li class="feature-item">
<div class="feature-dot"></div>
<span class="feature-text">ACCESO API</span>
</li>
<li class="feature-item disabled">
<div class="feature-dot disabled"></div>
<span class="feature-text">DOMINIO PERSONALIZADO</span>
</li>
</ul>
<button class="select-button">SELECCIONAR PLAN</button>
</div>
</div>
<div class="pricing-card" data-tier="empresa">
<div class="hologram-base"></div>
<div class="card-projection">
<div class="card-header">
<h3 class="plan-name">EMPRESA</h3>
<p class="plan-description">PARA GRANDES ORGANIZACIONES</p>
</div>
<div class="card-price">
<span class="currency">$</span>
<span class="amount" data-monthly="99" data-yearly="69.30">99</span>
<span class="period">/MES</span>
</div>
<ul class="features-list">
<li class="feature-item">
<div class="feature-dot"></div>
<span class="feature-text">PROYECTOS ILIMITADOS</span>
</li>
<li class="feature-item">
<div class="feature-dot"></div>
<span class="feature-text">1TB ALMACENAMIENTO</span>
</li>
<li class="feature-item">
<div class="feature-dot"></div>
<span class="feature-text">SOPORTE DEDICADO 24/7</span>
</li>
<li class="feature-item">
<div class="feature-dot"></div>
<span class="feature-text">ACCESO API COMPLETO</span>
</li>
<li class="feature-item">
<div class="feature-dot"></div>
<span class="feature-text">DOMINIO PERSONALIZADO</span>
</li>
</ul>
<button class="select-button">CONTACTAR VENTAS</button>
</div>
</div>
</div>
<div class="light-rays"></div>
</div>Estilos CSS
.holographic-pricing-container {
max-width: 1200px;
margin: 2rem auto;
padding: 2rem;
font-family: 'Inter', sans-serif;
background: #000011;
position: relative;
overflow: hidden;
border: 1px solid rgba(0, 255, 255, 0.3);
box-shadow: 0 0 30px rgba(0, 255, 255, 0.2);
min-height: 100vh;
}
.holographic-pricing-container::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background:
radial-gradient(circle at 20% 30%, rgba(0, 255, 255, 0.1) 0%, transparent 40%),
radial-gradient(circle at 80% 70%, rgba(255, 0, 255, 0.1) 0%, transparent 40%),
radial-gradient(circle at 40% 80%, rgba(0, 255, 0, 0.1) 0%, transparent 30%);
pointer-events: none;
animation: float 15s ease-in-out infinite;
}
.pricing-header {
text-align: center;
margin-bottom: 3rem;
position: relative;
z-index: 3;
}
.pricing-title {
font-size: 2.5rem;
margin-bottom: 0.5rem;
color: #00ffff;
text-shadow:
0 0 10px rgba(0, 255, 255, 0.7),
0 0 20px rgba(0, 255, 255, 0.5),
0 0 30px rgba(0, 255, 255, 0.3);
letter-spacing: 3px;
animation: title-glow 3s ease-in-out infinite alternate;
}
.pricing-subtitle {
color: rgba(0, 255, 255, 0.7);
font-size: 1.1rem;
text-shadow: 0 0 5px rgba(0, 255, 255, 0.5);
}
.pricing-toggle {
display: flex;
justify-content: center;
align-items: center;
gap: 1rem;
margin-bottom: 3rem;
position: relative;
z-index: 3;
}
.toggle-label {
font-size: 1rem;
color: rgba(0, 255, 255, 0.9);
text-shadow: 0 0 3px rgba(0, 255, 255, 0.5);
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: rgba(0, 20, 40, 0.5);
border: 1px solid rgba(0, 255, 255, 0.3);
transition: .4s;
border-radius: 34px;
}
.slider:before {
position: absolute;
content: "";
height: 22px;
width: 22px;
left: 4px;
bottom: 3px;
background: rgba(0, 255, 255, 0.8);
transition: .4s;
border-radius: 50%;
box-shadow: 0 0 10px rgba(0, 255, 255, 0.8);
}
input:checked + .slider {
background: rgba(0, 20, 40, 0.5);
border-color: rgba(0, 255, 255, 0.5);
}
input:checked + .slider:before {
transform: translateX(30px);
background: rgba(0, 255, 255, 1);
box-shadow: 0 0 15px rgba(0, 255, 255, 1);
}
.discount-badge {
background: linear-gradient(135deg, #ff00ff 0%, #00ffff 100%);
color: #000;
padding: 0.25rem 0.75rem;
border-radius: 20px;
font-size: 0.8rem;
font-weight: 600;
margin-left: 0.5rem;
text-shadow: none;
box-shadow: 0 0 15px rgba(255, 0, 255, 0.5);
}
.pricing-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 3rem;
position: relative;
z-index: 3;
perspective: 1000px;
}
.pricing-card {
position: relative;
transform-style: preserve-3d;
transition: transform 0.5s ease;
}
.hologram-base {
position: absolute;
bottom: -20px;
left: 50%;
transform: translateX(-50%);
width: 150px;
height: 10px;
background: linear-gradient(90deg, transparent, rgba(0, 255, 255, 0.8), transparent);
border-radius: 50%;
box-shadow: 0 0 20px rgba(0, 255, 255, 0.5);
filter: blur(2px);
z-index: 1;
}
.card-projection {
background: rgba(10, 30, 50, 0.3);
border: 1px solid rgba(0, 255, 255, 0.3);
border-radius: 16px;
padding: 2rem;
backdrop-filter: blur(10px);
transform: translateZ(30px);
box-shadow:
0 0 30px rgba(0, 255, 255, 0.2),
inset 0 0 20px rgba(0, 255, 255, 0.1);
position: relative;
z-index: 2;
transition: all 0.4s ease;
}
.card-projection::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 2px;
background: linear-gradient(90deg, transparent, rgba(0, 255, 255, 0.8), transparent);
animation: scan 3s linear infinite;
}
.pricing-card:hover .card-projection {
background: rgba(10, 30, 50, 0.4);
border-color: rgba(0, 255, 255, 0.6);
box-shadow:
0 0 40px rgba(0, 255, 255, 0.4),
inset 0 0 25px rgba(0, 255, 255, 0.2);
transform: translateZ(40px) translateY(-10px);
}
.popular-badge {
position: absolute;
top: -10px;
right: 20px;
background: linear-gradient(135deg, #ff00ff 0%, #00ffff 100%);
color: #000;
padding: 0.25rem 1rem;
border-radius: 20px;
font-size: 0.8rem;
font-weight: 600;
text-shadow: none;
box-shadow: 0 0 15px rgba(255, 0, 255, 0.5);
z-index: 3;
transform: rotate(5deg);
}
.card-header {
text-align: center;
margin-bottom: 2rem;
position: relative;
}
.plan-name {
font-size: 1.8rem;
margin-bottom: 0.5rem;
color: #00ffff;
text-shadow: 0 0 5px rgba(0, 255, 255, 0.5);
font-weight: 600;
}
.plan-description {
color: rgba(0, 255, 255, 0.8);
font-size: 0.9rem;
text-shadow: 0 0 3px rgba(0, 255, 255, 0.3);
}
.card-price {
text-align: center;
margin-bottom: 2rem;
}
.currency {
font-size: 1.5rem;
color: #00ffff;
vertical-align: top;
text-shadow: 0 0 5px rgba(0, 255, 255, 0.5);
}
.amount {
font-size: 3rem;
font-weight: 700;
color: #00ffff;
text-shadow:
0 0 10px rgba(0, 255, 255, 0.7),
0 0 20px rgba(0, 255, 255, 0.5);
}
.period {
color: rgba(0, 255, 255, 0.8);
font-size: 1rem;
text-shadow: 0 0 3px rgba(0, 255, 255, 0.3);
}
.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(0, 255, 255, 0.1);
}
.feature-item:last-child {
border-bottom: none;
}
.feature-dot {
width: 10px;
height: 10px;
border-radius: 50%;
background: #00ffff;
margin-right: 1rem;
flex-shrink: 0;
box-shadow: 0 0 5px #00ffff;
}
.feature-dot.disabled {
background: rgba(100, 100, 100, 0.5);
box-shadow: none;
}
.feature-text {
color: rgba(0, 255, 255, 0.9);
font-size: 0.95rem;
text-shadow: 0 0 2px rgba(0, 255, 255, 0.3);
flex: 1;
}
.feature-item.disabled .feature-text {
color: rgba(100, 100, 100, 0.7);
text-shadow: none;
}
.select-button {
width: 100%;
padding: 1rem;
background: rgba(0, 20, 40, 0.5);
border: 1px solid rgba(0, 255, 255, 0.3);
border-radius: 12px;
font-size: 1rem;
font-weight: 600;
color: #00ffff;
cursor: pointer;
transition: all 0.3s ease;
text-shadow: 0 0 3px rgba(0, 255, 255, 0.5);
box-shadow: 0 0 10px rgba(0, 255, 255, 0.2);
}
.select-button:hover {
background: rgba(0, 30, 60, 0.7);
border-color: rgba(0, 255, 255, 0.6);
box-shadow: 0 0 15px rgba(0, 255, 255, 0.4);
transform: translateY(-2px);
}
.light-rays {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
pointer-events: none;
z-index: 1;
}
.light-rays::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 100%;
background:
linear-gradient(90deg,
transparent 0%,
rgba(0, 255, 255, 0.1) 25%,
transparent 50%,
rgba(255, 0, 255, 0.1) 75%,
transparent 100%);
animation: rays-move 10s linear infinite;
transform: skewX(-30deg);
}
@keyframes title-glow {
0% {
text-shadow:
0 0 10px rgba(0, 255, 255, 0.7),
0 0 20px rgba(0, 255, 255, 0.5),
0 0 30px rgba(0, 255, 255, 0.3);
}
100% {
text-shadow:
0 0 15px rgba(0, 255, 255, 0.8),
0 0 25px rgba(0, 255, 255, 0.6),
0 0 35px rgba(0, 255, 255, 0.4),
0 0 45px rgba(0, 255, 255, 0.2);
}
}
@keyframes float {
0%, 100% {
transform: translateY(0);
}
50% {
transform: translateY(-20px);
}
}
@keyframes scan {
0% {
transform: translateX(-100%);
}
100% {
transform: translateX(100%);
}
}
@keyframes rays-move {
0% {
transform: skewX(-30deg) translateX(0);
}
100% {
transform: skewX(-30deg) translateX(100%);
}
}
@media (max-width: 768px) {
.holographic-pricing-container {
padding: 1rem;
}
.pricing-grid {
grid-template-columns: 1fr;
gap: 2rem;
}
.pricing-title {
font-size: 2rem;
}
.plan-name {
font-size: 1.5rem;
}
}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');
}
});
});
// Add 3D effect to cards
const cards = document.querySelectorAll('.pricing-card');
cards.forEach(card => {
card.addEventListener('mousemove', (e) => {
const rect = card.getBoundingClientRect();
const x = e.clientX - rect.left;
const y = e.clientY - rect.top;
const centerX = rect.width / 2;
const centerY = rect.height / 2;
const rotateX = (centerY - y) / 20;
const rotateY = (x - centerX) / 20;
card.style.transform = `perspective(1000px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;
});
card.addEventListener('mouseleave', () => {
card.style.transform = 'perspective(1000px) rotateX(0) rotateY(0)';
});
});
});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 holográficos y efectos de luz para que coincidan con tu marca
- Actualiza los planes de precios y características para reflejar tus ofertas
La visualización de precios holográfica presenta proyecciones 3D holográficas simuladas usando transformaciones CSS 3D y propiedades de perspectiva. El diseño incluye rayos de luz dinámicos, animaciones flotantes y efectos de línea de escaneo que crean una apariencia holográfica auténtica con visuales futuristas.
HTML
135
líneas
CSS
414
líneas
JavaScript
35
líneas
<div class="holographic-pricing-container">
<div class="pricing-header">
<h2 class="pricing-title">/// PRECIOS HOLOGRÁFICOS ///</h2>
<p class="pricing-subtitle">PROYECTANDO INFORMACIÓN DE NIVELES...</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 30%</span>
</div>
<div class="pricing-grid">
<div class="pricing-card" data-tier="basico">
<div class="hologram-base"></div>
<div class="card-projection">
<div class="card-header">
<h3 class="plan-name">BÁSICO</h3>
<p class="plan-description">PARA USUARIOS INDIVIDUALES</p>
</div>
<div class="card-price">
<span class="currency">\$</span>
<span class="amount" data-monthly="19" data-yearly="13.30">19</span>
<span class="period">/MES</span>
</div>
<ul class="features-list">
<li class="feature-item">
<div class="feature-dot"></div>
<span class="feature-text">1 PROYECTO</span>
</li>
<li class="feature-item">
<div class="feature-dot"></div>
<span class="feature-text">5GB ALMACENAMIENTO</span>
</li>
<li class="feature-item">
<div class="feature-dot"></div>
<span class="feature-text">SOPORTE POR EMAIL</span>
</li>
<li class="feature-item disabled">
<div class="feature-dot disabled"></div>
<span class="feature-text">ACCESO API</span>
</li>
<li class="feature-item disabled">
<div class="feature-dot disabled"></div>
<span class="feature-text">DOMINIO PERSONALIZADO</span>
</li>
</ul>
<button class="select-button">SELECCIONAR PLAN</button>
</div>
</div>
<div class="pricing-card popular" data-tier="pro">
<div class="hologram-base"></div>
<div class="card-projection">
<div class="popular-badge">MÁS POPULAR</div>
<div class="card-header">
<h3 class="plan-name">PRO</h3>
<p class="plan-description">PARA EQUIPOS EN CRECIMIENTO</p>
</div>
<div class="card-price">
<span class="currency">\$</span>
<span class="amount" data-monthly="49" data-yearly="34.30">49</span>
<span class="period">/MES</span>
</div>
<ul class="features-list">
<li class="feature-item">
<div class="feature-dot"></div>
<span class="feature-text">5 PROYECTOS</span>
</li>
<li class="feature-item">
<div class="feature-dot"></div>
<span class="feature-text">100GB ALMACENAMIENTO</span>
</li>
<li class="feature-item">
<div class="feature-dot"></div>
<span class="feature-text">SOPORTE PRIORITARIO</span>
</li>
<li class="feature-item">
<div class="feature-dot"></div>
<span class="feature-text">ACCESO API</span>
</li>
<li class="feature-item disabled">
<div class="feature-dot disabled"></div>
<span class="feature-text">DOMINIO PERSONALIZADO</span>
</li>
</ul>
<button class="select-button">SELECCIONAR PLAN</button>
</div>
</div>
<div class="pricing-card" data-tier="empresa">
<div class="hologram-base"></div>
<div class="card-projection">
<div class="card-header">
<h3 class="plan-name">EMPRESA</h3>
<p class="plan-description">PARA GRANDES ORGANIZACIONES</p>
</div>
<div class="card-price">
<span class="currency">\$</span>
<span class="amount" data-monthly="99" data-yearly="69.30">99</span>
<span class="period">/MES</span>
</div>
<ul class="features-list">
<li class="feature-item">
<div class="feature-dot"></div>
<span class="feature-text">PROYECTOS ILIMITADOS</span>
</li>
<li class="feature-item">
<div class="feature-dot"></div>
<span class="feature-text">1TB ALMACENAMIENTO</span>
</li>
<li class="feature-item">
<div class="feature-dot"></div>
<span class="feature-text">SOPORTE DEDICADO 24/7</span>
</li>
<li class="feature-item">
<div class="feature-dot"></div>
<span class="feature-text">ACCESO API COMPLETO</span>
</li>
<li class="feature-item">
<div class="feature-dot"></div>
<span class="feature-text">DOMINIO PERSONALIZADO</span>
</li>
</ul>
<button class="select-button">CONTACTAR VENTAS</button>
</div>
</div>
</div>
<div class="light-rays"></div>
</div>