.cb-flip {
display: inline-flex; align-items: center;
gap: 10px; cursor: pointer; user-select: none;
}
.cb-flip__input { display: none; }
.cb-flip__box {
width: 26px; height: 26px; border-radius: 7px;
border: 2px solid rgba(124,108,255,.3);
perspective: 80px;
position: relative;
}
.cb-flip__face {
position: absolute; inset: 0; border-radius: 5px;
background: #7c6cff;
display: flex; align-items: center;
justify-content: center;
color: #fff; font-size: 14px;
transform: rotateY(90deg);
transform-origin: center;
transition: transform .4s cubic-bezier(.23,1,.32,1);
}
.cb-flip__input:checked
+ .cb-flip__box .cb-flip__face {
transform: rotateY(0deg);
} <label class="cb-flip">
<input class="cb-flip__input" type="checkbox" checked />
<span class="cb-flip__box">
<span class="cb-flip__face">✓</span>
</span>
<span>3D flip checkbox</span>
</label> Live preview Edit any tab — preview updates live Ready