SOURCE

console 命令行工具 X clear

                    
>
console
<div class="loader">
  <div class="loader__figure"></div>
  <p class="loader__label">A7G</p>
</div>
body {
  height: 100vh;
  font-family: "Bitstream Vera Sans Mono", "Consolas", "Courier", monospace;
  -webkit-font-smoothing: antialiased;
  background-color: #1B101F;
}
body::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background: url(http://magdeleine.co/wp-content/uploads/2015/07/photo-1418226970361-9f1f7227d638-1400x933.jpeg) 50% 50% no-repeat;
  background-size: cover;
  opacity: 0.25;
}

.loader,
.loader__figure {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

.loader {
  overflow: visible;
  padding-top: 2em;
  height: 0;
  width: 2em;
}

.loader__figure {
  height: 0;
  width: 0;
  box-sizing: border-box;
  border: 0 solid #FE665C;
  border-radius: 50%;
  -webkit-animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);
  -moz-animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);
  animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);
}

.loader__label {
  float: left;
  margin-left: 50%;
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  -o-transform: translateX(-50%);
  transform: translateX(-50%);
  margin: 0.5em 0 0 50%;
  font-size: 0.875em;
  letter-spacing: 0.1em;
  line-height: 1.5em;
  color: #8d3b3e;
  white-space: nowrap;
  -webkit-animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);
  -moz-animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);
  animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.61, 0.355, 1);
}

@-webkit-keyframes loader-figure {
  0% {
    height: 0;
    width: 0;
  }
  30% {
    height: 2em;
    width: 2em;
    border-width: 1em;
    opacity: 1;
  }
  100% {
    height: 2em;
    width: 2em;
    border-width: 0;
    opacity: 0;
  }
}
@-moz-keyframes loader-figure {
  0% {
    height: 0;
    width: 0;
  }
  30% {
    height: 2em;
    width: 2em;
    border-width: 1em;
    opacity: 1;
  }
  100% {
    height: 2em;
    width: 2em;
    border-width: 0;
    opacity: 0;
  }
}
@keyframes loader-figure {
  0% {
    height: 0;
    width: 0;
  }
  30% {
    height: 2em;
    width: 2em;
    border-width: 1em;
    opacity: 1;
  }
  100% {
    height: 2em;
    width: 2em;
    border-width: 0;
    opacity: 0;
  }
}
@-webkit-keyframes loader-label {
  0% {
    opacity: 0.35;
  }
  30% {
    opacity: 1;
  }
  100% {
    opacity: 0.35;
  }
}
@-moz-keyframes loader-label {
  0% {
    opacity: 0.35;
  }
  30% {
    opacity: 1;
  }
  100% {
    opacity: 0.35;
  }
}
@keyframes loader-label {
  0% {
    opacity: 0.35;
  }
  30% {
    opacity: 1;
  }
  100% {
    opacity: 0.35;
  }
}