CSS
@property --cbgp-holo-a { syntax: '<angle>'; initial-value: 0deg; inherits: false; }
.cbgp-holo {
display: inline-flex; gap: 0;
border: 1px solid rgba(255,255,255,0.06);
background: rgba(8,10,18,0.85);
border-radius: 10px;
overflow: hidden;
padding: 3px;
}
.cbgp-holo input { appearance: none; -webkit-appearance: none; position: absolute; opacity: 0; }
.cbgp-holo label {
--cbgp-holo-a: 0deg;
display: flex; align-items: center; justify-content: center;
width: 44px; height: 40px;
cursor: pointer;
border-radius: 8px;
background:
conic-gradient(from var(--cbgp-holo-a),
transparent 0deg, transparent 240deg,
rgba(0,255,224,0) 260deg, rgba(0,255,224,0.3) 290deg,
rgba(255,90,241,0.3) 320deg, rgba(255,90,241,0) 350deg,
transparent 360deg);
transition: --cbgp-holo-a 0.7s cubic-bezier(.65,0,.35,1), background 0.3s;
}
.cbgp-holo svg {
width: 16px; height: 16px;
fill: none; stroke: rgba(220,225,230,0.5);
stroke-width: 1.8; stroke-linecap: round;
transition: stroke 0.25s;
}
.cbgp-holo label:hover { --cbgp-holo-a: 180deg; }
.cbgp-holo label:hover svg { stroke: rgba(220,225,230,0.85); }
.cbgp-holo input:checked + label {
--cbgp-holo-a: 360deg;
background:
conic-gradient(from var(--cbgp-holo-a),
rgba(0,255,224,0.32), rgba(255,90,241,0.32),
rgba(255,200,80,0.28), rgba(0,255,224,0.32));
box-shadow: 0 0 14px rgba(0,255,224,0.18);
}
.cbgp-holo input:checked + label svg { stroke: #fff; }
.cbgp-holo input:focus-visible + label { outline: 2px solid #00ffe0; outline-offset: -2px; }