JSFiddle - React, Tailwind, and code Playground
by Vladimir
HTML
<div class="circle">
<div class="circle__half circle__half_left"></div>
<div class="circle__half circle__half_right"></div>
<div class="circle__content"></div>
</div>
CSS
.circle {
width: 100px;
height: 100px;
border-radius: 50%;
overflow: hidden;
display: flex;
position: relative;
}
.circle__half {
width: 50%;
height: 100%;
background: white;
overflow: hidden;
}
.circle__half::before {
width: 100%;
height: 100%;
background: blue;
content: '';
display: block;
animation: rotating 1s linear 1s forwards;
}
.circle__half_left::before {
transform: rotate(-180deg);
transform-origin: 100% 50%;
}
.circle__half_right::before {
transform: rotate(0deg);
transform-origin: 0 50%;
animation-delay: 0s;
}
.circle__content {
position: absolute;
width: calc(100% - 10px);
height: calc(100% - 10px);
margin: 5px;
background: white;
border-radius: 50%;
}
@keyframes rotating {
0% {
transform: rotate(-180deg);
}
100% {
transform: rotate(0deg);
}
}