8 995 Animation / Codepen

Организм, абстракция на CSS

Абстрактная анимация на чистом CSS

HTML

<div class='organism'>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
</div>
<div class='organism'>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
  <div class='atom'></div>
</div>

SCSS

$atom: 100;
$speed: 3s;
html,body{
  width: 100%;height: 100%;
}
body{
  background-color: #140032;
  overflow: hidden;
  margin:0;
  perspective: 1000px;
  *,*:after{
    position: absolute;top: 0;bottom: 0;left: 0;right: 0;margin: auto;border-radius: 50%;
  }
}
.organism{
  &:first-child{
    transform: scale(-1,-1)
  }
}
.atom{
  width: 100px;
  height: 100px;
  animation: life $speed ease-in-out infinite;
  &:after{
    content: "";
    width: inherit;
    height: inherit;
    border-bottom: 2px dotted transparent;
  }
  @for $i from 0 through $atom{
    &:nth-child(#{$i + 1}){
      animation-delay: -$i * $speed / $atom;
      &:after{
        transform: rotateX($i * 720deg / $atom) translate($i * 500px / $atom) scale($i * 4 / $atom);
        border-color: hsla(250 + ($i * 50 / $atom),100%,50%,1);
      }
    }
  }
}
@keyframes life {
  50%{
    transform: rotateY(180deg) translateY(200px) scale(1,-1);
  }
}

Комментарии

  • Facebook
  • Вконтакте

Похожие статьи