Skip to content

Glow Tooltip

A copy-paste tooltips component in pure HTML & CSS. Zero dependencies, framework-agnostic, MIT-licensed.

TooltipsHTMLCSSany framework

Copy into your project

HTML
<div class="nuda-glowedge-wrap">
  <button class="nuda-glowedge__trigger" aria-describedby="glowedge-tip-1">
    Hover me
  </button>
  <div class="nuda-glowedge" role="tooltip" id="glowedge-tip-1">
    Lime glow edge
  </div>
</div>
CSS
/* Glow Tooltip (edge glow)
   Tooltip with an animated lime gradient edge + outer glow.
   Shows on hover and keyboard focus.
   Customize: --glowedge-accent, --glowedge-bg */

.nuda-glowedge-wrap {
  position: relative;
  display: inline-block;
}

.nuda-glowedge__trigger {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #ccc;
  padding: 0.45rem 1rem;
  border-radius: 8px;
  font-size: 0.85rem;
  cursor: pointer;
}

.nuda-glowedge {
  --glowedge-accent: #e4ff54;
  --glowedge-bg: #101012;
  position: absolute;
  bottom: calc(100% + 9px);
  left: 50%;
  transform: translateX(-50%);
  background: var(--glowedge-bg);
  border: 1px solid rgba(228, 255, 84, 0.5);
  color: #fafafa;
  font-size: 0.75rem;
  padding: 0.4rem 0.8rem;
  border-radius: 7px;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.22s ease, box-shadow 0.3s ease;
  box-shadow: 0 0 0 rgba(228, 255, 84, 0);
}

/* Animated gradient border via mask-composite */
.nuda-glowedge::after {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: 7px;
  padding: 1px;
  background: linear-gradient(120deg, rgba(228, 255, 84, 0), rgba(228, 255, 84, 0.9), rgba(228, 255, 84, 0));
  background-size: 200% 100%;
  background-position: 0% 0%;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity 0.3s ease, background-position 0.6s ease;
}

.nuda-glowedge-wrap:hover .nuda-glowedge,
.nuda-glowedge__trigger:focus-visible + .nuda-glowedge {
  opacity: 1;
  box-shadow:
    0 0 16px rgba(228, 255, 84, 0.35),
    0 0 4px rgba(228, 255, 84, 0.2);
}

.nuda-glowedge-wrap:hover .nuda-glowedge::after,
.nuda-glowedge__trigger:focus-visible + .nuda-glowedge::after {
  opacity: 1;
  background-position: 100% 0%;
}

@media (prefers-reduced-motion: reduce) {
  .nuda-glowedge, .nuda-glowedge::after { transition: none; }
}

How to use Glow Tooltip

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.

More tooltips components

← Browse all NudaUI components