.cb-pop {
display: inline-flex; align-items: center;
gap: 10px; cursor: pointer; user-select: none;
}
.cb-pop__input { display: none; }
.cb-pop__box {
width: 24px; height: 24px; border-radius: 50%;
border: 2px solid rgba(245,168,74,.4);
display: flex; align-items: center;
justify-content: center;
transition: border-color .25s;
}
.cb-pop__dot {
width: 10px; height: 10px; border-radius: 50%;
background: #f5a84a;
transform: scale(0);
transition: transform .4s
cubic-bezier(.34,1.56,.64,1);
}
.cb-pop__input:checked + .cb-pop__box {
border-color: #f5a84a;
}
.cb-pop__input:checked
+ .cb-pop__box .cb-pop__dot {
transform: scale(1);
} <label class="cb-pop">
<input class="cb-pop__input" type="checkbox" checked />
<span class="cb-pop__box">
<span class="cb-pop__dot"></span>
</span>
<span>Bouncy pop checkbox</span>
</label> Live preview Edit any tab — preview updates live Ready