// 7 card styles · floating, flip, glassmorphism, image overlay, 3D tilt, neon pulse & spotlight
Optimised pipelines that ship to production in seconds.
<div class="float-card"> <div class="icon">⚡</div> <h3>Fast Delivery</h3> <p>Ship to production in seconds.</p> </div>
.float-card { background: #1c2030; border: 1px solid #2a2f42; border-radius: 14px; padding: 1.75rem; box-shadow: 0 4px 20px rgba(0,0,0,0.3); transition: transform 0.3s, box-shadow 0.3s; } .float-card:hover { transform: translateY(-10px); box-shadow: 0 20px 60px rgba(0,0,0,0.5), 0 0 0 1px rgba(90,240,196,0.15); }
The back side — put details, a CTA, or stats here.
<div class="flip-scene"> <div class="flip-card-inner"> <div class="flip-front"> <div class="icon">🚀</div> <span>Front Side</span> </div> <div class="flip-back"> <p>Back side content here.</p> </div> </div> </div>
.flip-scene { perspective: 800px; cursor: pointer; } .flip-card-inner { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; transition: transform 0.6s ease; } .flip-scene:hover .flip-card-inner { transform: rotateY(180deg); } .flip-front, .flip-back { position: absolute; inset: 0; backface-visibility: hidden; border-radius: 12px; } .flip-back { transform: rotateY(180deg); }
Senior Designer · Remote
<!-- needs a colourful parent --> <div class="gradient-bg"> <div class="glass-card"> <div class="avatar">👤</div> <h3>Alex Johnson</h3> <p>Senior Designer</p> </div> </div>
.glass-card { backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.22); border-radius: 16px; padding: 1.75rem 2rem; color: white; box-shadow: 0 8px 32px rgba(0,0,0,0.2); } .gradient-bg { background: linear-gradient(135deg, #667eea, #764ba2, #ec4899); padding: 2rem; border-radius: 16px; }
<div class="overlay-card"> <img src="photo.jpg" class="card-img"/> <div class="card-body"> <h3>Card Title</h3> <p>Card description text.</p> </div> </div>
.overlay-card { position: relative; overflow: hidden; border-radius: 14px; } .card-img { width: 100%; display: block; transition: transform 0.4s ease; } .overlay-card:hover .card-img { transform: scale(1.08); } .card-body { position: absolute; bottom: 0; left: 0; right: 0; background: linear-gradient( to top, rgba(0,0,0,0.9) 60%, transparent); padding: 2rem 1.25rem 1.25rem; transform: translateY(40px); transition: transform 0.35s ease; } .overlay-card:hover .card-body { transform: translateY(0); }
Move your cursor over me to see the 3D depth effect.
<div class="tilt-scene"> <div class="tilt-card" id="tiltCard"> <span class="icon">🎯</span> <h3>Tilt to Reveal</h3> <p>Move your cursor over me.</p> </div> </div> <script> const card = document.getElementById('tiltCard'); card.addEventListener('mousemove', e => { const r = card.getBoundingClientRect(); const x = (e.clientX - r.left) / r.width - 0.5; const y = (e.clientY - r.top) / r.height - 0.5; card.style.transform = `rotateY(${x * 22}deg) rotateX(${-y * 22}deg)`; }); card.addEventListener('mouseleave', () => { card.style.transform = ''; }); </script>
.tilt-scene { perspective: 900px; display: inline-block; } .tilt-card { background: #1c2030; border: 1px solid #2a2f42; border-radius: 16px; padding: 2rem 1.5rem; transform-style: preserve-3d; transition: box-shadow 0.3s, transform 0.1s ease-out; will-change: transform; } /* child elements gain Z depth */ .tilt-card .icon { transform: translateZ(30px); } .tilt-card h3 { transform: translateZ(20px); } .tilt-card p { transform: translateZ(10px); }
Hover to trigger the electric glow effect on this card.
<div class="neon-card"> <div class="icon">⚡</div> <h3>Neon Pulse</h3> <p>Hover to trigger the glow.</p> </div>
.neon-card { background: #0d1117; border: 1.5px solid rgba(0,247,255,0.25); border-radius: 14px; padding: 1.75rem 1.5rem; position: relative; overflow: hidden; transition: border-color 0.3s, box-shadow 0.3s; } .neon-card:hover { border-color: #00f7ff; animation: neonPulse 1.6s ease-in-out infinite; } .neon-card h3 { color: #00f7ff; text-shadow: 0 0 8px rgba(0,247,255,0.4); } @keyframes neonPulse { 0%,100% { box-shadow: 0 0 18px rgba(0,247,255,0.35), 0 0 40px rgba(0,247,255,0.15); } 50% { box-shadow: 0 0 28px rgba(0,247,255,0.55), 0 0 65px rgba(0,247,255,0.25); } }
Move your cursor to cast light across the card surface.
<div class="spotlight-card" id="card"> <div class="icon">🔦</div> <h3>Spotlight Effect</h3> <p>Move your cursor to cast light.</p> </div> <script> const c = document.getElementById('card'); c.addEventListener('mousemove', e => { const r = c.getBoundingClientRect(); c.style.setProperty('--sx', (e.clientX - r.left) + 'px'); c.style.setProperty('--sy', (e.clientY - r.top) + 'px'); }); c.addEventListener('mouseleave', () => { c.style.setProperty('--sx', '-200px'); c.style.setProperty('--sy', '-200px'); }); </script>
.spotlight-card { position: relative; overflow: hidden; background: #1c2030; border: 1px solid #2a2f42; border-radius: 14px; padding: 1.75rem 1.5rem; transition: border-color 0.2s; } .spotlight-card::before { content: ''; position: absolute; width: 180px; height: 180px; border-radius: 50%; background: radial-gradient(circle, rgba(90,240,196,0.18) 0%, transparent 70%); transform: translate( var(--sx, -200px), var(--sy, -200px)) translate(-50%, -50%); pointer-events: none; transition: transform 0.08s linear; } .spotlight-card:hover { border-color: rgba(90,240,196,0.3); }