Neon Button
A copy-paste neon & glow component in pure HTML & CSS. Zero dependencies, framework-agnostic, MIT-licensed.
Neon & GlowHTMLCSSany framework
Copy into your project
HTML
<!-- Neon Button — pulsing-glow CTA -->
<button class="nuda-neon-button">Launch</button>CSS
/* ── Neon Button ─────────────────────────────────────────────
A CTA whose halo breathes via box-shadow (GPU friendly).
Customize:
--neon-btn-color : neon hue
--neon-btn-speed : pulse cycle
──────────────────────────────────────────────────────────── */
.nuda-neon-button {
--neon-btn-color: #e4ff54;
--neon-btn-speed: 2.4s;
padding: 12px 30px;
background: rgba(228, 255, 84, 0.06);
color: var(--neon-btn-color);
border: 1.5px solid var(--neon-btn-color);
border-radius: 10px;
font-size: 14px;
font-weight: 700;
letter-spacing: 0.04em;
cursor: pointer;
text-shadow: 0 0 8px rgba(228, 255, 84, 0.7);
animation: nuda-neon-button-pulse var(--neon-btn-speed) ease-in-out infinite;
transition: background 0.2s;
will-change: box-shadow;
}
.nuda-neon-button:hover { background: rgba(228, 255, 84, 0.14); }
.nuda-neon-button:focus-visible {
outline: 2px solid var(--neon-btn-color);
outline-offset: 3px;
}
@keyframes nuda-neon-button-pulse {
0%, 100% {
box-shadow: 0 0 6px rgba(228, 255, 84, 0.4), 0 0 16px rgba(228, 255, 84, 0.2);
}
50% {
box-shadow: 0 0 14px rgba(228, 255, 84, 0.7), 0 0 40px rgba(228, 255, 84, 0.4);
}
}
@media (prefers-reduced-motion: reduce) {
.nuda-neon-button {
animation: none;
box-shadow: 0 0 10px rgba(228, 255, 84, 0.5);
}
}How to use Neon Button
Paste the HTML where you need it and the CSS into a global stylesheet (or a <style> tag). Every class is prefixed nuda- so it never collides with Tailwind or your own styles. Tweak the CSS custom properties to match your design system.
Works in React, Vue, Svelte, Astro, Next.js, Nuxt, Laravel Blade, Django, Rails — or a single .html file. No npm install, no build step.