<input id="rotation-checkbox" type="checkbox" class="rotator"> <label for="rotation-checkbox">rotate</label>
<br>
<section role="region" aria-hidden="true" aria-label="Taichi" class="taichi-container">
<div class="taichi-white"></div>
<div class="taichi-black"></div>
</section>
.taichi-container {
position: relative;
display: inline-block;
width: 200px;
height: 200px;
border: solid 2px black;
/* For some browsers, it may have insufficient radius issue. We use over-radius tricks to fix it */
border-radius: 60%;
background-color: black;
}
.taichi-white {
width: 50%;
height: 100%;
display: inline-block;
position: absolute;
left: 0;
top: 0;
background-color: white;
border: solid 0 white;
box-sizing: border-box;
border-top-left-radius: 100% 50%;
border-bottom-left-radius: 100% 50%;
}
.taichi-white:before {
content: ' ';
width: 100%;
height: 50%;
background-color: white;
display: inline-block;
position: absolute;
left: 50%;
border-radius: 60%;
}
.taichi-white:after {
content: ' ';
width: 10%;
height: 5%;
background-color: black;
display: inline-block;
position: absolute;
left: 95%;
top: 22.5%;
border-radius: 60%;
}
.taichi-black {
width: 50%;
height: 50%;
display: inline-block;
position: absolute;
left: 50%;
bottom: 0;
background-color: black;
border: solid 0px black;
box-sizing: border-box;
border-bottom-right-radius: 100%;
}
.taichi-black:before {
content: ' ';
width: 100%;
height: 100%;
background-color: black;
display: inline-block;
position: absolute;
left: -50%;
bottom: 0%;
border-radius: 60%;
}
.taichi-black:after {
content: ' ';
width: 10%;
height: 10%;
background-color: white;
display: inline-block;
position: absolute;
left: 0;
bottom: 50%;
border-radius: 60%;
}
.rotator:checked ~ .taichi-container {
animation: rotate-animation 4s linear infinite;
animation-play-state: play;
}
.rotator ~ .taichi-container {
animation: rotate-animation 4s linear infinite;
animation-play-state: paused;
}
@keyframes rotate-animation {
100% {
transform: rotate(360deg);
}
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.