- var hxgns = 50;
main
  .hxgns
    - for (var h = 0; h < hxgns; ++h) {
      .hxgn
        - for (var s = 0; s < 6; ++s) {
          .s
        - }
    - }
View Compiled
@import 'compass';
$h: 50;
$c: #ffd239;
$dur: 0.5s;
$scale: 0.9;
$rotInc: 6deg;
$triH: sqrt(3)/2;
$x: 50%;
$y: 65%;
$maxSize: 720px;

*, *:before, *:after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
body {
  display: flex;
  height: 100vh;
}
main, .hxgns {
  position: relative;
}
main {
  display: flex;
  margin: auto;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  position: relative;
  width: 100%;
  max-width: $maxSize;
  height: 100%;
  max-height: $maxSize;
}
.hxgns, .hxgn {
  transform-origin: $x $y;
}
.hxgns {
  animation: twist $dur linear infinite;
  font-size: 28px;
  width: (40em * $triH); 
  height: (40em * $triH);
}
.hxgn, .s {
  position: absolute;
}
.hxgn {
  width: 100%; 
  height: 100%;
}
.s {
  top: 50%;
  left: 50%;
  width: 0; 
  height: 0; 
  border-left: 10em solid transparent;
  border-right: 10em solid transparent;
  border-bottom: (20em * $triH) solid $c;
  transform-origin: 50% 0;
}
.hxgn:nth-of-type(odd) > .s {
  border-bottom-color: $c/4;
}
@for $h from 1 through $h {
  .hxgn:nth-of-type(#{$h}) {
    $h: $h - 1;
    transform: rotate($rotInc * $h) scale(pow($scale,$h),pow($scale,$h));
    z-index: $h;
  }
}
@for $s from 1 through 6 {
  .s:nth-of-type(#{$s}) {
    transform: translateX(-50%) rotate(60deg * ($s - 1));
  }
}

@keyframes twist {
  from {
    transform: rotate(0deg) scale(1,1);
  }
  to {
    transform: rotate(-$rotInc*2) scale(pow($scale,-2),pow($scale,-2));
  }
}
View Compiled

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.