CSS starfield

based on https://codepen.io/keithclark/pen/zqcEd?editors=1100

by s_light

HTML

<h1>CSS starfield</h1>
<div id="space">
  <div class="stars"></div>
  <div class="stars"></div>
  <div class="stars"></div>
  <div class="stars"></div>
  <div class="stars"></div>
  <div class="stars"></div>
</div>

CSS

@import url(https://fonts.googleapis.com/css?family=Orbitron:700);

/* Stars 
------------------------------------- */

#space, .stars {
  overflow: hidden;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.stars {
  background-image: 
    radial-gradient(2px 2px at 10% 15%, #eee, rgba(0,0,0,0)),
    radial-gradient(2px 2px at 20% 35%, #fff, rgba(0,0,0,0)),
    radial-gradient(2px 2px at 25% 80%, #ddd, rgba(0,0,0,0)),
    radial-gradient(2px 2px at 45% 20%, #fff, rgba(0,0,0,0)),
    radial-gradient(2px 2px at 65% 80px, #fff, rgba(0,0,0,0)),
    radial-gradient(3px 3px at 5% 80%, #ddd, rgba(0,0,0,0)),
    radial-gradient(2px 2px at 80% 60%, #ddd, rgba(0,0,0,0));
  background-repeat: repeat;
  background-size: 50vw 50vh;
  animation: starmove 120s infinite;
  
  opacity: 0.1;
  width:200vw;
  left:-100vw;
}

.stars:nth-child(1) {
  background-position: 50% 50%;
  animation-delay: 0s;
}
.stars:nth-child(2) {
  background-position: 0% 50%;
  animation-delay: 1s;
  left: - 200vw;
}
.stars:nth-child(3) {
  background-position: -20% -30%;
  animation-delay: 10s;
  animation-duration: 200s;
  transform: rotate(30deg);
}
.stars:nth-child(4) {
  background-position: 40% -80%;
  animation-delay: 15s;
  transform: rotate(-70deg);
}
.stars:nth-child(5) {
  background-position: -20% 30%;
  animation-delay: 20s;
  transform: rotate(110deg);
}
.stars:nth-child(6) {
  background-position: 60% 45%;
  animation-delay: 25s;
  transform: rotate(180deg);
}

@keyframes starmove {
  0% {
    opacity: 0.3;
    transform: translate(0, -1%);
    animation-timing-function: ease-in;
  } 
  20% {
    opacity: 1.0;
    animation-timing-function: ease-in-out;
  }
  50% {
    opacity: 0.3;
    transform: translate(50%, 10%);
    animation-timing-function: ease-in-out;
  }
  80% {
    opacity: 1.0;
    animation-timing-function: ease-in-out;
  }
  100% {
    opacity: 0.3;
    transform: translate(100%, -2%);
    animation-timing-function: ease-out;
  }
}



/* Demo syles...