Back to CSS Button Groups Solar Flare Pure CSS
Share
HTML
<fieldset
  class="cbgp-flare"
  role="group"
  aria-label="Date range"
  onmousemove="event.currentTarget.style.setProperty('--mx', event.offsetX + 'px')"
>
  <legend class="cbgp-sr">Date range</legend>
  <input type="radio" name="cbgp-flare" id="cbgp-flare-1" />
  <label for="cbgp-flare-1">Today</label>
  <input type="radio" name="cbgp-flare" id="cbgp-flare-2" checked />
  <label for="cbgp-flare-2">7 days</label>
  <input type="radio" name="cbgp-flare" id="cbgp-flare-3" />
  <label for="cbgp-flare-3">30 days</label>
  <input type="radio" name="cbgp-flare" id="cbgp-flare-4" />
  <label for="cbgp-flare-4">Custom</label>
</fieldset>
CSS
.cbgp-flare {
  --mx: -200px;
  display: inline-flex; gap: 0;
  border: 0; padding: 0;
  background:
    radial-gradient(circle 80px at var(--mx) 50%,
      rgba(255,200,80,0.18), transparent 70%),
    rgba(8,10,18,0.92);
  border: 1px solid rgba(255,200,80,0.18);
  border-radius: 10px;
  overflow: hidden;
  position: relative;
}
.cbgp-flare input { appearance: none; -webkit-appearance: none; position: absolute; opacity: 0; }
.cbgp-flare label {
  padding: 11px 18px;
  font: 700 11px/1 ui-monospace, monospace;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(220,225,230,0.5);
  cursor: pointer;
  position: relative;
  transition: color 0.25s;
  border-right: 1px solid rgba(255,255,255,0.04);
}
.cbgp-flare label:last-of-type { border-right: 0; }
.cbgp-flare label::after {
  content: '';
  position: absolute;
  left: 14px; right: 14px; bottom: 5px;
  height: 2px;
  background: linear-gradient(90deg, #ffc850, #ff5af1);
  border-radius: 2px;
  opacity: 0;
  transform: scaleX(0.4);
  transition: opacity 0.3s, transform 0.3s cubic-bezier(.65,0,.35,1);
  box-shadow: 0 0 8px rgba(255,200,80,0.6);
}
.cbgp-flare label:hover { color: #ffd479; }
.cbgp-flare input:checked + label { color: #fff; }
.cbgp-flare input:checked + label::after { opacity: 1; transform: scaleX(1); }
.cbgp-flare input:focus-visible + label { outline: 2px solid #ffc850; outline-offset: -2px; border-radius: 6px; }