Card com Brilho Neon
Este é um componente de interface de usuário de cartão interativo em que a borda do cartão acende como uma luz neon quando você passa o mouse e o holofote se move dependendo da posição do mouse.
Visualização
Três cartas se destacam contra um fundo escuro e, quando pairadas, um brilho neon e um efeito de holofote são ativados.
Lightning Fast
Carregue instantaneamente com cache de borda.
Secure by Design
Seguro com segurança de confiança zero.
Deep Analytics
Informações em tempo real.
Casos de uso e recursos
-
Jogos/Dashboards/Produtos Digitais: Adequado para sites de tema escuro.
-
Variáveis CSS mais JavaScript: Uma implementação simples para atualizar variáveis
--mx/--mycom JavaScript. -
Controle a cor de cada cartão com variáveis CSS: Altere facilmente a cor emissora com a variável
--glow.
Pontos de design e UX
-
Controle a posição do
radial-gradientcom a posição do mouse: Obtenha a direcionalidade do destaque especificando a posição com uma variável CSS em vez debackground-position. -
opacity: 0 → 0.6transição: O brilho desaparece, então o foco é natural e suave. -
translateY(-8px)lift-up: O efeito de fazer os cartões parecerem flutuantes enfatiza a interatividade.
Como personalizar
Para alterar a cor do brilho, basta substituir a variável --glow:
/* sotaque rosa */
.neon-card { --glow: #ec4899; }
/* sotaque ciano */
.neon-card { --glow: #06b6d4; }
Código de implementação
<div class="neon-cards-grid">
<div class="neon-card neon-card-1">
<div class="neon-card-content">
<div class="neon-card-icon">⚡</div>
<h3 class="neon-card-title">Lightning Fast</h3>
<p class="neon-card-desc">Carregue instantaneamente com cache de borda.</p>
</div>
</div>
<!-- Estrutura semelhante para outros cartões -->
</div>
<style>
/* Os detalhes são iguais aos do CSS na visualização */
.neon-cards-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 2rem;
}
.neon-card {
--glow: #6366f1;
position: relative;
background: #111;
border-radius: 16px;
padding: 2px;
cursor: pointer;
transition: transform 0.3s ease;
overflow: hidden;
}
.neon-card::before {
content: "";
position: absolute;
inset: 0;
background: radial-gradient(600px circle at var(--mx, 50%) var(--my, 50%), var(--glow), transparent 40%);
opacity: 0;
transition: opacity 0.3s ease;
}
.neon-card:hover {
transform: translateY(-8px);
}
.neon-card:hover::before {
opacity: 0.6;
}
.neon-card-content {
position: relative;
background: #111;
border-radius: 14px;
padding: 2rem;
height: 100%;
z-index: 1;
}
.neon-card-1 { --glow: #ec4899; }
.neon-card-2 { --glow: #06b6d4; }
.neon-card-3 { --glow: #8b5cf6; }
</style>
<script>
(function() {
document.querySelectorAll('.neon-card').forEach(function(card) {
card.addEventListener('mousemove', function(e) {
var rect = card.getBoundingClientRect();
card.style.setProperty('--mx', ((e.clientX-rect.left)/rect.width*100)+'%');
card.style.setProperty('--my', ((e.clientY-rect.top)/rect.height*100)+'%');
});
});
})();
</script> Status de compatibilidade do navegador
| Navegador | Estado de compatibilidade |
|-------|-------|
| Cromo 49+ | ✅ Totalmente compatível |
| Firefox 31+ | ✅ Totalmente compatível |
| Safári 9.1+ | ✅ Compatível |
| Borda 79+ | ✅ Totalmente compatível |