Создание индикатора загрузки в виде пиксельных сердец

Перевод демонстрации от Catalin Rosu специально для сайта dejurka.ru

HTML

<div class="loader">
  <div class="heart"></div>
  <div class="heart"></div>
  <div class="heart"></div>
</div>

CSS

*, *:before, *:after {
  box-sizing: border-box;
}

.loader {
  width: 50px;
  height: 24px;
  padding: 4px 0;
  background: #222;
  border-top: 2px solid #111;
  border-bottom: 2px solid #111;
  position: fixed;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%) scale(2);
          transform: translate(-50%, -50%) scale(2); // масштабируем, чтобы выглядело лучше
}
.loader::before, .loader::after {
  content: '';
  position: absolute;
  top: 0;
  height: 2px;
  width: 2px;
}
.loader::before {
  box-shadow: -2px 0px 0 #111, -4px 2px 0 #111, -6px 4px 0 #111, -6px 6px 0 #111, -6px 8px 0 #111, -6px 10px 0 #111, -6px 12px 0 #111, -6px 14px 0 #111, -4px 16px 0 #111, -2px 18px 0 #111, -2px 2px 0 #222, -2px 4px 0 #222, -2px 6px 0 #222, -2px 8px 0 #222, -2px 10px 0 #222, -2px 12px 0 #222, -2px 14px 0 #222, -2px 16px 0 #222, -4px 4px 0 #222, -4px 6px 0 #222, -4px 8px 0 #222, -4px 10px 0 #222, -4px 12px 0 #222, -4px 14px 0 #222; // левая рамка 
}
.loader::after {
  right: 0;
  box-shadow: 2px 0px 0 #111, 4px 2px 0 #111, 6px 4px 0 #111, 6px 6px 0 #111, 6px 8px 0 #111, 6px 10px 0 #111, 6px 12px 0 #111, 6px 14px 0 #111, 4px 16px 0 #111, 2px 18px 0 #111, 2px 2px 0 #222, 2px 4px 0 #222, 2px 6px 0 #222, 2px 8px 0 #222, 2px 10px 0 #222, 2px 12px 0 #222, 2px 14px 0 #222, 2px 16px 0 #222, 4px 4px 0 #222, 4px 6px 0 #222, 4px 8px 0 #222, 4px 10px 0 #222, 4px 12px 0 #222, 4px 14px 0 #222; // правая рамка
} 

.heart {
  display: inline-block;
  vertical-align: top;
  margin-left: 12px;
  height: 2px;
  width: 2px;
  box-shadow: 6px 2px 0 #fff, 2px 0px 0 #fff, 4px 0px 0 #fff, 0px 2px 0 #fff, 0px 4px 0 #fff, 2px 6px 0 #fff, 4px 8px 0 #fff, 6px 10px 0 #fff, 8px 0px 0 #fff, 10px 0px 0 #fff, 12px 2px 0 #fff, 12px 4px 0 #fff, 10px 6px 0 #fff, 8px 8px 0 #fff;
}
.heart::before, .heart::after {
  content: '';
  position: absolute;
  height: 2px;
  width: 2px;
  visibility: hidden;
  -webkit-animation: ani 3s 2s infinite;
          animation: ani 3s/*продолжительность*/...