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);
  }
}