پیشنمایش زنده
کد HTML
<label class="u-checkbox-ninja">
<input type="checkbox" />
<div class="ninja-container">
<div class="blade" style="--i: 1"></div>
<div class="blade" style="--i: 2"></div>
<div class="blade" style="--i: 3"></div>
<div class="blade" style="--i: 4"></div>
<div class="core"></div>
</div>
<span>Activate Ninja Mode</span>
</label>
کد CSS
.u-checkbox-ninja {
--ninja-black: #000000;
--star-core: #ffffff;
--star-glow: #a3e4ff;
--blade-primary: #1a1a1a;
--blade-edge: #5d9bff;
--constellation: #222222;
--label-text: #e0e0e0;
display: flex;
align-items: center;
gap: 1rem;
font-family: "Orbitron", sans-serif;
font-weight: 500;
color: var(--label-text);
cursor: pointer;
user-select: none;
transition: color 0.3s ease;
background: var(--ninja-black);
padding: 1rem;
border-radius: 0.5rem;
}
.u-checkbox-ninja:hover {
color: var(--star-glow);
}
.u-checkbox-ninja input {
display: none;
}
.ninja-container {
width: 4rem;
height: 4rem;
position: relative;
display: flex;
align-items: center;
justify-content: center;
background: radial-gradient(circle, var(--constellation), #000000);
border-radius: 50%;
border: 2px solid var(--blade-edge);
box-shadow:
0 0 0.8rem rgba(93, 155, 255, 0.4),
inset 0 0 1rem rgba(0, 0, 0, 0.9);
transform-style: preserve-3d;
transition: all 0.4s cubic-bezier(0.68, -0.55, 0.27, 1.55);
overflow: hidden;
}
.u-checkbox-ninja:hover .ninja-container {
transform: scale(1.08) rotate(10deg);
box-shadow:
0 0 1.5rem rgba(93, 155, 255, 0.7),
inset 0 0 1rem rgba(0, 0, 0, 0.7);
}
.blade {
position: absolute;
width: 1.4rem;
height: 1.4rem;
background: linear-gradient(135deg, var(--blade-primary), #000000);
border: 1px solid var(--blade-edge);
transform-origin: center center;
transition: transform 0.6s cubic-bezier(0.76, 0, 0.24, 1);
clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
transform: rotate(calc(var(--i) * 90deg)) translateY(-0.7rem) rotate(180deg);
filter: drop-shadow(0 0 0.2rem rgba(93, 155, 255, 0.5));
z-index: 1;
}
.u-checkbox-ninja input:checked + .ninja-container .blade {
transform: rotate(calc(var(--i) * 90deg)) translateY(-0.7rem) rotate(270deg);
background: linear-gradient(135deg, var(--blade-edge), #000000);
box-shadow: 0 0 0.5rem var(--blade-edge);
}
.core {
width: 0.8rem;
height: 0.8rem;
background: radial-gradient(circle, var(--star-core), var(--star-glow));
border-radius: 50%;
transform: scale(0);
transition: transform 0.4s 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
box-shadow: 0 0 0.75rem var(--star-glow);
z-index: 2;
}
.u-checkbox-ninja input:checked + .ninja-container .core {
transform: scale(1);
animation: pulse-star 1.8s infinite alternate;
}
@keyframes pulse-star {
0% {
box-shadow: 0 0 0.5rem var(--star-glow);
}
100% {
box-shadow:
0 0 1.5rem var(--star-core),
0 0 3rem rgba(163, 228, 255, 0.6);
}
}