Loading Spinner

Single element solutions for a loading spinner are quite common. When using infinite rotation on an element that has a rounded border we usually change the color of one of the four borders, otherwise we would not see the rotation. Consider the following …

@keyframes rotation {
  to { transform: rotate(1turn); }
.loading {
  display: block;
  position: relative;
  padding-top: 4.25em;
  color: rgba(0,0,0,.5);
  text-align: center;
.loading::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 50%;
  height: 4em;
  width: 4em;
  margin-left: -2em;
  border: .375em solid currentColor;
  border-right-color: rgba(0,0,0,.8);
  border-radius: 50%;
  animation: rotation .8s linear infinite;

In this example however I keep border-color as it is and change border-style instead.

.loading::before {
  /* no border-right-color thank you */
  border-right-style: double;

What we get looks like a snake being trapped inside of a ring.