The problem
You want to create premium holographic effects like trading cards or luxury product displays.
The solution
.holo-card {
position: relative;
width: 300px;
height: 420px;
border-radius: 16px;
background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
overflow: hidden;
cursor: pointer;
transition: transform 0.3s ease;
}
.holo-card::before {
content: '';
position: absolute;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: repeating-linear-gradient(
0deg,
transparent,
transparent 2px,
rgba(255, 255, 255, 0.03) 2px,
rgba(255, 255, 255, 0.03) 4px
);
}
.holo-card::after {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(
115deg,
transparent 20%,
rgba(255, 0, 255, 0.4) 36%,
rgba(0, 255, 255, 0.4) 43%,
rgba(0, 255, 0, 0.4) 50%,
rgba(255, 255, 0, 0.4) 57%,
rgba(255, 0, 0, 0.4) 64%,
transparent 80%
);
background-size: 200% 100%;
background-position: 200% 0;
mix-blend-mode: color-dodge;
opacity: 0;
transition: opacity 0.3s, background-position 0.5s;
}
.holo-card:hover::after {
opacity: 1;
background-position: -200% 0;
animation: holo-shimmer 2s linear infinite;
}
@keyframes holo-shimmer {
0% { background-position: 200% 0; }
100% { background-position: -200% 0; }
}
.holo-card:hover {
transform: scale(1.02) translateY(-5px);
box-shadow:
0 0 40px rgba(255, 0, 255, 0.4),
0 0 60px rgba(0, 255, 255, 0.3),
0 20px 40px rgba(0, 0, 0, 0.4);
}
/* Sparkle effect */
.holo-sparkle {
position: absolute;
width: 4px;
height: 4px;
background: white;
border-radius: 50%;
box-shadow: 0 0 10px white;
animation: sparkle 1.5s ease-in-out infinite;
opacity: 0;
}
@keyframes sparkle {
0%, 100% { opacity: 0; transform: scale(0); }
50% { opacity: 1; transform: scale(1); }
}See it live
Put it to work
<div class="holo-card">
<div style="padding: 24px; color: white;">
<h2>Holographic</h2>
<p>Hover to see the rainbow effect</p>
</div>
<div class="holo-sparkle" style="top: 20%; left: 30%;"></div>
<div class="holo-sparkle" style="top: 60%; left: 70%; animation-delay: 0.3s;"></div>
<div class="holo-sparkle" style="top: 40%; left: 50%; animation-delay: 0.6s;"></div>
</div>Worth knowing
Uses mix-blend-mode: color-dodge for the iridescent effect. Combine multiple gradients for depth.