.container
.lcd-light
.monitor
.monitor-neck
.monitor-base
.desk
.tower
.chair-back
.chair-bottom
.clock
.hour
.minute
.pillow
.bed
.human-wrapper
.human
.head
.eyes
.torso
.l-thigh
.l-lower-leg
.r-thigh
.r-lower-leg
.r-upper-arm
.r-lower-arm
.l-upper-arm
.l-lower-arm
View Compiled
$color:
rgb(0,0,0)
rgb(255,255,255)
rgb(220,30,30)
rgb(255,176,47);
$dur: 8s;
$monitorDur: $dur / 100;
$hrsDur: $dur / 2;
$minsDur: $hrsDur / 12;
$humanDur: $dur;
$frames: 72;
$framePer: 100% / $frames;
@mixin shape($borderRad,$x,$y,$w,$h) {
border-radius: $borderRad;
left: $x;
top: $y;
width: $w;
height: $h;
}
body {
margin: 0;
}
.container {
background: nth($color,4);
position: relative;
// I first used pixels as the unit for everything, and then I converted it to vw based on the number of pixels out of 384 pixels (width of original GIF). For example, 216px (original height) / 384px = 0.5625 -> 56.25vw. This is a part of making the animation fit the entire window width.
width: 100%;
height: 56.25vw;
div {
background: nth($color,1);
position: absolute;
transform-origin: 0 50%;
}
.lcd-light {
@include shape(0,18.23vw,19.79vw,10.42vw,18.75vw);
background: radial-gradient(at center left, nth($color,2), transparent 75%);
background: radial-gradient(center left, nth($color,2), transparent 75%);
background: radial-gradient(center left, nth($color,2), transparent 75%);
transform: rotate(-10deg);
animation: monitorFlash $monitorDur steps(2) infinite alternate;
&::before, &::after {
border: 0;
content: "";
display: block;
position: absolute;
}
// top triangle
&::before {
border-bottom: 6.25vw solid transparent;
border-left: 10.42vw solid nth($color,4);
}
// bottom triangle
&::after {
border-top: 3.65vw solid transparent;
border-left: 9.38vw solid nth($color,4);
bottom: 0;
}
}
.monitor {
@include shape(1.04vw,16.67vw,23.96vw,11.46vw,2.08vw);
transform: rotate(80deg);
}
.monitor-neck {
@include shape(0,14.58vw,35.42vw,3.65vw,1.04vw);
transform: rotate(-40deg);
}
.monitor-base {
@include shape(3.13vw 3.13vw 0 0,11.46vw,35.42vw,6.25vw,3.13vw);
}
.desk {
@include shape(2.08vw,8.33vw,38.02vw,18.23vw,3.13vw);
}
.tower {
@include shape(1.04vw,8.33vw,42.19vw,15.63vw,9.90vw);
&::before {
background-color: nth($color,4);
background-image: repeating-linear-gradient(transparent, transparent 0.52vw, nth($color,1) 0.52vw, nth($color,1) 1.04vw), repeating-linear-gradient(90deg, transparent, transparent 0.52vw, nth($color,1) 0.52vw, nth($color,1) 1.04vw);
content: "";
display: block;
position: absolute;
top: 2.08vw;
right: 2.08vw;
width: 3.65vw;
height: 2.6vw;
}
}
.chair-back {
@include shape(2.08vw,38.54vw,40.63vw,9.9vw,3.13vw);
transform: rotate(-80deg);
}
.chair-bottom {
@include shape(2.08vw,29.69vw,43.23vw,9.9vw,3.13vw);
}
.clock {
@include shape(50%,44.79vw,6.25vw,8.85vw,8.85vw);
background: nth($color,2);
border: 1.82vw solid nth($color,1);
}
.hour, .minute {
will-change: transform;
}
.hour {
@include shape(1.04vw,3.65vw,1.56vw,1.56vw,3.65vw);
transform-origin: 0.78vw 2.86vw;
transform: rotate(135deg);
animation: hrHand $hrsDur linear infinite;
}
.minute {
@include shape(1.04vw,3.65vw,0.78vw,1.56vw,4.43vw);
transform-origin: 0.78vw 3.65vw;
animation: minHand $minsDur linear infinite;
}
.pillow {
@include shape(2.08vw,85.94vw,40.63vw,8.33vw,3.13vw);
transform: rotate(-35deg);
}
.bed {
@include shape(2.08vw 2.08vw 0.52vw 0.52vw,54.69vw,43.23vw,29.69vw,5.21vw);
background: transparent;
border-top: 3.13vw solid nth($color,1);
border-right: 3.13vw solid nth($color,1);
border-left: 3.13vw solid nth($color,1);
}
.human-wrapper {
transform: translate(68.75vw,23.44vw);
will-change: transform;
animation: bodyMove $humanDur linear infinite;
}
.human {
background: transparent;
@include shape(0,0,0,6.25vw,20.31vw);
transform-origin: 3.13vw 17.71vw;
transform: rotate(90deg);
animation: bodyRotate $humanDur linear infinite;
div {
will-change: transform;
}
}
.head {
@include shape(50%,0,0,6.25vw,6.25vw);
transform: translate(-2.86vw,0.78vw);
animation: headMove $humanDur linear infinite;
}
.eyes {
background: transparent;
width: 3.13vw;
height: 1.04vw;
top: 2.08vw;
left: 2.34vw;
transform-origin: 50% 50%;
transform: rotate(-55deg);
animation: eyesMove $humanDur linear infinite;
&::before, &::after {
background: nth($color,3);
border-radius: 50%;
content: "";
display: inline-block;
position: absolute;
width: 1.04vw;
height: 1.04vw;
}
&::before {
right: 0.52vw;
}
}
.torso {
@include shape(3.13vw,1.04vw,6.77vw,4.17vw,12.5vw);
}
.r-upper-arm,
.r-lower-arm,
.l-upper-arm,
.l-lower-arm {
transform-origin: 1.82vw 1.82vw;
}
.l-thigh,
.r-thigh,
.l-lower-leg,
.r-lower-leg {
transform-origin: 2.08vw 2.08vw;
}
.r-upper-arm {
@include shape(3.13vw,0.26vw,0,3.65vw,8.33vw);
transform: rotate(-40deg);
animation: RUpArmMove $humanDur linear infinite;
}
.r-lower-arm {
@include shape(3.13vw,0,4.95vw,3.65vw,8.33vw);
transform: rotate(-25deg);
animation: RLowArmMove $humanDur linear infinite;
}
.l-upper-arm {
@include shape(3.13vw,0.26vw,0,3.65vw,8.33vw);
transform: rotate(-40deg);
animation: LUpArmMove $humanDur linear infinite;
}
.l-lower-arm {
@include shape(3.13vw,0,4.95vw,3.65vw,8.33vw);
transform: rotate(-25deg);
animation: LLowArmMove $humanDur linear infinite;
}
.l-thigh,
.r-thigh {
@include shape(3.13vw,0,8.33vw,4.17vw,10.94vw);
transform: rotate(-5deg);
}
.l-thigh {
animation: LThighMove $humanDur linear infinite;
}
.r-thigh {
animation: RThighMove $humanDur linear infinite;
}
.l-lower-leg,
.r-lower-leg {
@include shape(3.13vw,0,6.77vw,4.17vw,10.94vw);
transform: rotate(5deg);
}
.l-lower-leg {
animation: LLowerLegMove $humanDur linear infinite;
}
.r-lower-leg {
animation: RLowerLegMove $humanDur linear infinite;
}
.reset-anim {
animation: none;
}
}
@keyframes monitorFlash {
from {opacity: 1;}
to {opacity: 0.75;}
}
@keyframes bodyMove {
from {transform: translate(68.75vw,23.44vw);}
#{$framePer * 5} {transform: translate(68.75vw,23.44vw);}
#{$framePer * 6} {transform: translate(68.75vw,19.53vw);}
#{$framePer * 11} {transform: translate(68.75vw,19.53vw);}
#{$framePer * 16} {transform: translate(35.16vw,19.53vw);}
#{$framePer * 17} {transform: translate(33.85vw,20.31vw);}
#{$framePer * 18} {transform: translate(32.81vw,23.96vw);}
#{$framePer * 38} {transform: translate(32.81vw,23.96vw);}
#{$framePer * 39} {transform: translate(33.33vw,23.96vw);}
#{$framePer * 40} {transform: translate(34.38vw,23.96vw);}
#{$framePer * 41} {transform: translate(34.38vw,23.96vw);}
#{$framePer * 42} {transform: translate(36.46vw,23.96vw);}
#{$framePer * 43} {transform: translate(46.88vw,19.79vw);}
#{$framePer * 44} {transform: translate(48.18vw,19.79vw);}
#{$framePer * 45} {transform: translate(55.99vw,19.79vw);}
#{$framePer * 46} {transform: translate(61.20vw,21.35vw);}
#{$framePer * 47} {transform: translate(68.75vw,23.44vw);}
to {transform: translate(68.75vw,23.44vw);}
}
@keyframes bodyRotate {
from {transform: rotate(90deg);}
#{$framePer * 5} {transform: rotate(90deg);}
#{$framePer * 6} {transform: rotate(80deg);}
#{$framePer * 7} {transform: rotate(70deg);}
#{$framePer * 8} {transform: rotate(35deg);}
#{$framePer * 9} {transform: rotate(0deg);}
#{$framePer * 11} {transform: rotate(0deg);}
#{$framePer * 12} {transform: rotate(-3deg);}
#{$framePer * 16} {transform: rotate(-3deg);}
#{$framePer * 17} {transform: rotate(-30deg);}
#{$framePer * 18} {transform: rotate(-15deg);}
#{$framePer * 35} {transform: rotate(-15deg);}
#{$framePer * 36} {transform: rotate(0deg);}
#{$framePer * 37} {transform: rotate(0deg);}
#{$framePer * 38} {transform: rotate(7deg);}
#{$framePer * 39} {transform: rotate(15deg);}
#{$framePer * 40} {transform: rotate(25deg);}
#{$framePer * 41} {transform: rotate(35deg);}
#{$framePer * 42} {transform: rotate(40deg);}
#{$framePer * 43} {transform: rotate(70deg);}
#{$framePer * 44} {transform: rotate(85deg);}
#{$framePer * 45} {transform: rotate(85deg);}
#{$framePer * 46} {transform: rotate(88deg);}
#{$framePer * 47} {transform: rotate(90deg);}
to {transform: rotate(90deg);}
}
@keyframes headMove {
from {transform: translate(-2.86vw,0.78vw);}
#{$framePer * 5} {transform: translate(-2.86vw,0.78vw);}
#{$framePer * 6} {transform: translate(-1.30vw,1.82vw);}
#{$framePer * 7} {transform: translate(0vw,0vw);}
#{$framePer * 35} {transform: translate(0vw,0vw);}
#{$framePer * 36} {transform: translate(-0.52vw,0vw);}
#{$framePer * 37} {transform: translate(0.52vw,0vw);}
#{$framePer * 41} {transform: translate(1.04vw,0vw);}
#{$framePer * 42} {transform: translate(0.52vw,0vw);}
#{$framePer * 43} {transform: translate(0vw,0vw);}
#{$framePer * 44} {transform: translate(-0.52vw,0.26vw);}
#{$framePer * 45} {transform: translate(-0.78vw,0.26vw);}
#{$framePer * 46} {transform: translate(-1.30vw,0.52vw);}
#{$framePer * 47} {transform: translate(-2.86vw,0.78vw);}
to {transform: translate(-2.86vw,0.78vw);}
}
@keyframes eyesMove {
from {transform: rotate(-55deg) scale(1,0);}
#{$framePer * 3} {transform: rotate(-55deg) scale(1,1);}
#{$framePer * 5} {transform: rotate(-55deg) scale(1,1);}
#{$framePer * 9} {transform: rotate(0deg) translate(0vw,1.04vw);}
#{$framePer * 10} {transform: rotate(0deg) translate(-1.04vw,1.04vw);}
#{$framePer * 11} {transform: rotate(0deg) translate(-1.82vw,1.04vw);}
#{$framePer * 35} {transform: rotate(0deg) translate(-1.82vw,1.04vw);}
#{$framePer * 36} {transform: rotate(30deg) translate(-1.82vw,1.04vw);}
#{$framePer * 37} {transform: rotate(30deg) translate(1.04vw,1.04vw);}
#{$framePer * 42} {transform: rotate(0deg) translate(0.5vw,1.04vw);}
#{$framePer * 46} {transform: rotate(-25deg) translate(0vw,1.04vw) scale(1,1);}
#{$framePer * 47} {transform: rotate(-55deg) translate(0vw,0vw) scale(1,0);}
to {transform: rotate(-55deg) translate(0vw,0vw) scale(1,0);}
}
@keyframes RUpArmMove {
from {transform: rotate(-40deg);}
#{$framePer * 5} {transform: rotate(-40deg);}
#{$framePer * 6} {transform: rotate(-30deg);}
#{$framePer * 7} {transform: rotate(-45deg);}
#{$framePer * 8} {transform: rotate(0deg);}
#{$framePer * 9} {transform: rotate(15deg);}
#{$framePer * 10} {transform: rotate(0deg);}
#{$framePer * 11} {transform: rotate(0deg);}
#{$framePer * 12} {transform: rotate(-35deg);}
#{$framePer * 13} {transform: rotate(-5deg);}
#{$framePer * 14} {transform: rotate(25deg);}
#{$framePer * 15} {transform: rotate(-5deg);}
#{$framePer * 16} {transform: rotate(-35deg);}
#{$framePer * 17} {transform: rotate(-15deg);}
#{$framePer * 18} {transform: rotate(65deg);}
#{$framePer * 35} {transform: rotate(65deg);}
#{$framePer * 36} {transform: rotate(75deg);}
#{$framePer * 37} {transform: rotate(50deg);}
#{$framePer * 38} {transform: rotate(40deg);}
#{$framePer * 39} {transform: rotate(10deg);}
#{$framePer * 40} {transform: rotate(45deg);}
#{$framePer * 41} {transform: rotate(-30deg);}
#{$framePer * 42} {transform: rotate(-60deg);}
#{$framePer * 43} {transform: rotate(-120deg);}
#{$framePer * 44} {transform: rotate(-100deg);}
#{$framePer * 45} {transform: rotate(-100deg);}
#{$framePer * 46} {transform: rotate(-60deg);}
#{$framePer * 47} {transform: rotate(-20deg);}
#{$framePer * 49} {transform: rotate(-40deg);}
to {transform: rotate(-40deg);}
}
@keyframes RLowArmMove {
from {transform: rotate(-25deg);}
#{$framePer * 5} {transform: rotate(-25deg);}
#{$framePer * 6} {transform: rotate(-60deg);}
#{$framePer * 7} {transform: rotate(-15deg);}
#{$framePer * 9} {transform: rotate(-15deg);}
#{$framePer * 10} {transform: rotate(0deg);}
#{$framePer * 11} {transform: rotate(0deg);}
#{$framePer * 12} {transform: rotate(30deg);}
#{$framePer * 16} {transform: rotate(30deg);}
#{$framePer * 17} {transform: rotate(80deg);}
#{$framePer * 18} {transform: rotate(40deg);}
#{$framePer * 19} {transform: rotate(50deg);}
#{$framePer * 20} {transform: rotate(80deg);}
#{$framePer * 21} {transform: rotate(50deg);}
#{$framePer * 22} {transform: rotate(20deg);}
#{$framePer * 23} {transform: rotate(50deg);}
#{$framePer * 24} {transform: rotate(80deg);}
#{$framePer * 25} {transform: rotate(50deg);}
#{$framePer * 26} {transform: rotate(20deg);}
#{$framePer * 27} {transform: rotate(50deg);}
#{$framePer * 28} {transform: rotate(80deg);}
#{$framePer * 29} {transform: rotate(50deg);}
#{$framePer * 30} {transform: rotate(20deg);}
#{$framePer * 31} {transform: rotate(50deg);}
#{$framePer * 32} {transform: rotate(80deg);}
#{$framePer * 33} {transform: rotate(50deg);}
#{$framePer * 34} {transform: rotate(20deg);}
#{$framePer * 35} {transform: rotate(50deg);}
#{$framePer * 36} {transform: rotate(25deg);}
#{$framePer * 37} {transform: rotate(20deg);}
#{$framePer * 38} {transform: rotate(20deg);}
#{$framePer * 39} {transform: rotate(10deg);}
#{$framePer * 40} {transform: rotate(-30deg);}
#{$framePer * 41} {transform: rotate(-30deg);}
#{$framePer * 42} {transform: rotate(-40deg);}
#{$framePer * 43} {transform: rotate(-30deg);}
#{$framePer * 46} {transform: rotate(-45deg);}
#{$framePer * 47} {transform: rotate(-30deg);}
#{$framePer * 48} {transform: rotate(-30deg);}
#{$framePer * 50} {transform: rotate(-25deg);}
to {transform: rotate(-25deg);}
}
@keyframes LUpArmMove {
from {transform: rotate(-40deg);}
#{$framePer * 5} {transform: rotate(-40deg);}
#{$framePer * 6} {transform: rotate(-60deg);}
#{$framePer * 7} {transform: rotate(-80deg);}
#{$framePer * 8} {transform: rotate(-60deg);}
#{$framePer * 9} {transform: rotate(-30deg);}
#{$framePer * 10} {transform: rotate(0deg);}
#{$framePer * 11} {transform: rotate(0deg);}
#{$framePer * 12} {transform: rotate(35deg);}
#{$framePer * 13} {transform: rotate(-5deg);}
#{$framePer * 14} {transform: rotate(-25deg);}
#{$framePer * 15} {transform: rotate(-5deg);}
#{$framePer * 16} {transform: rotate(35deg);}
#{$framePer * 17} {transform: rotate(60deg);}
#{$framePer * 18} {transform: rotate(65deg);}
#{$framePer * 35} {transform: rotate(65deg);}
#{$framePer * 36} {transform: rotate(15deg);}
#{$framePer * 37} {transform: rotate(5deg);}
#{$framePer * 38} {transform: rotate(0deg);}
#{$framePer * 42} {transform: rotate(-80deg);}
#{$framePer * 43} {transform: rotate(-45deg);}
#{$framePer * 47} {transform: rotate(30deg);}
#{$framePer * 49} {transform: rotate(-40deg);}
to {transform: rotate(-40deg);}
}
@keyframes LLowArmMove {
from {transform: rotate(-25deg);}
#{$framePer * 5} {transform: rotate(-25deg);}
#{$framePer * 6} {transform: rotate(-60deg);}
#{$framePer * 7} {transform: rotate(-15deg);}
#{$framePer * 9} {transform: rotate(-15deg);}
#{$framePer * 10} {transform: rotate(0deg);}
#{$framePer * 11} {transform: rotate(0deg);}
#{$framePer * 12} {transform: rotate(30deg);}
#{$framePer * 17} {transform: rotate(30deg);}
#{$framePer * 18} {transform: rotate(40deg);}
#{$framePer * 19} {transform: rotate(50deg);}
#{$framePer * 20} {transform: rotate(20deg);}
#{$framePer * 21} {transform: rotate(50deg);}
#{$framePer * 22} {transform: rotate(80deg);}
#{$framePer * 23} {transform: rotate(50deg);}
#{$framePer * 24} {transform: rotate(20deg);}
#{$framePer * 25} {transform: rotate(50deg);}
#{$framePer * 26} {transform: rotate(80deg);}
#{$framePer * 27} {transform: rotate(50deg);}
#{$framePer * 28} {transform: rotate(20deg);}
#{$framePer * 29} {transform: rotate(50deg);}
#{$framePer * 30} {transform: rotate(80deg);}
#{$framePer * 31} {transform: rotate(50deg);}
#{$framePer * 32} {transform: rotate(20deg);}
#{$framePer * 33} {transform: rotate(50deg);}
#{$framePer * 34} {transform: rotate(70deg);}
#{$framePer * 35} {transform: rotate(75deg);}
#{$framePer * 36} {transform: rotate(70deg);}
#{$framePer * 38} {transform: rotate(-15deg);}
#{$framePer * 42} {transform: rotate(-85deg);}
#{$framePer * 43} {transform: rotate(-90deg);}
#{$framePer * 48} {transform: rotate(-25deg);}
to {transform: rotate(-25deg);}
}
@keyframes RThighMove {
from {transform: rotate(-5deg);}
#{$framePer * 5} {transform: rotate(-5deg);}
#{$framePer * 6} {transform: rotate(-30deg);}
#{$framePer * 7} {transform: rotate(-80deg);}
#{$framePer * 8} {transform: rotate(-30deg);}
#{$framePer * 9} {transform: rotate(0deg);}
#{$framePer * 11} {transform: rotate(0deg);}
#{$framePer * 12} {transform: rotate(-15deg);}
#{$framePer * 13} {transform: rotate(15deg);}
#{$framePer * 14} {transform: rotate(30deg);}
#{$framePer * 15} {transform: rotate(15deg);}
#{$framePer * 16} {transform: rotate(30deg);}
#{$framePer * 17} {transform: rotate(70deg);}
#{$framePer * 18} {transform: rotate(90deg);}
#{$framePer * 38} {transform: rotate(90deg); height: 10.94vw;}
#{$framePer * 39} {transform: rotate(0deg); height: 7.29vw;}
#{$framePer * 42} {transform: rotate(0deg); height: 7.29vw;}
#{$framePer * 43} {transform: rotate(-50deg); height: 10.94vw;}
#{$framePer * 44} {transform: rotate(-90deg);}
#{$framePer * 45} {transform: rotate(-60deg);}
#{$framePer * 46} {transform: rotate(-30deg);}
#{$framePer * 47} {transform: rotate(-5deg);}
to {transform:3rotate(-5deg);}
}
@keyframes RLowerLegMove {
from {transform: rotate(5deg);}
#{$framePer * 5} {transform: rotate(5deg);}
#{$framePer * 6} {transform: rotate(30deg);}
#{$framePer * 7} {transform: rotate(15deg);}
#{$framePer * 8} {transform: rotate(0deg);}
#{$framePer * 11} {transform: rotate(0deg);}
#{$framePer * 12} {transform: rotate(-15deg);}
#{$framePer * 16} {transform: rotate(-15deg);}
#{$framePer * 17} {transform: rotate(-25deg);}
#{$framePer * 18} {transform: rotate(-70deg);}
#{$framePer * 36} {transform: rotate(-70deg);}
#{$framePer * 37} {transform: rotate(-80deg);}
#{$framePer * 38} {transform: rotate(-70deg) translateY(0);}
#{$framePer * 39} {transform: rotate(-30deg) translateY(-3.65vw);}
#{$framePer * 40} {transform: rotate(0deg) translateY(-3.65vw);}
#{$framePer * 41} {transform: rotate(5deg) translateY(-3.65vw);}
#{$framePer * 42} {transform: rotate(10deg) translateY(-3.65vw);}
#{$framePer * 43} {transform: rotate(60deg) translateY(0);}
#{$framePer * 44} {transform: rotate(30deg);}
#{$framePer * 45} {transform: rotate(60deg);}
#{$framePer * 46} {transform: rotate(30deg);}
#{$framePer * 47} {transform: rotate(5deg);}
to {transform: rotate(5deg);}
}
@keyframes LThighMove {
from {transform: rotate(-5deg);}
#{$framePer * 5} {transform: rotate(-5deg);}
#{$framePer * 6} {transform: rotate(-30deg);}
#{$framePer * 10} {transform: rotate(0deg);}
#{$framePer * 11} {transform: rotate(0deg);}
#{$framePer * 12} {transform: rotate(30deg);}
#{$framePer * 13} {transform: rotate(15deg);}
#{$framePer * 14} {transform: rotate(-15deg);}
#{$framePer * 15} {transform: rotate(15deg);}
#{$framePer * 16} {transform: rotate(-15deg);}
#{$framePer * 17} {transform: rotate(50deg);}
#{$framePer * 18} {transform: rotate(90deg);}
#{$framePer * 35} {transform: rotate(90deg); height: 10.94vw;}
#{$framePer * 36} {transform: rotate(0deg); height: 6.77vw;}
#{$framePer * 37} {transform: rotate(-5deg); height: 6.77vw;}
#{$framePer * 38} {transform: rotate(-10deg); height: 6.77vw;}
#{$framePer * 39} {transform: rotate(-70deg); height: 6.77vw;}
#{$framePer * 42} {transform: rotate(-40deg); height: 6.77vw;}
#{$framePer * 43} {transform: rotate(-110deg); height: 10.94vw;}
#{$framePer * 44} {transform: rotate(-190deg);}
#{$framePer * 45} {transform: rotate(-50deg);}
#{$framePer * 46} {transform: rotate(-5deg);}
to {transform: rotate(-5deg);}
}
@keyframes LLowerLegMove {
from {transform: rotate(5deg);}
#{$framePer * 5} {transform: rotate(5deg);}
#{$framePer * 6} {transform: rotate(30deg);}
#{$framePer * 9} {transform: rotate(30deg);}
#{$framePer * 10} {transform: rotate(0deg);}
#{$framePer * 11} {transform: rotate(0deg);}
#{$framePer * 12} {transform: rotate(-30deg);}
#{$framePer * 13} {transform: rotate(-15deg);}
#{$framePer * 16} {transform: rotate(-15deg);}
#{$framePer * 17} {transform: rotate(-50deg);}
#{$framePer * 18} {transform: rotate(-90deg);}
#{$framePer * 35} {transform: rotate(-90deg) translateY(0);}
#{$framePer * 36} {transform: rotate(0deg) translateY(-4.95vw);}
#{$framePer * 37} {transform: rotate(0deg) translateY(-4.95vw);}
#{$framePer * 38} {transform: rotate(30deg) translateY(-4.95vw);}
#{$framePer * 39} {transform: rotate(35deg) translateY(-4.95vw);}
#{$framePer * 40} {transform: rotate(30deg) translateY(-4.95vw);}
#{$framePer * 41} {transform: rotate(0deg) translateY(-4.95vw);}
#{$framePer * 42} {transform: rotate(5deg) translateY(-4.17vw);}
#{$framePer * 43} {transform: rotate(45deg) translateY(0);}
#{$framePer * 44} {transform: rotate(145deg);}
#{$framePer * 45} {transform: rotate(55deg);}
#{$framePer * 46} {transform: rotate(25deg);}
#{$framePer * 47} {transform: rotate(5deg);}
to {transform: rotate(5deg);}
}
@keyframes hrHand {
from {
transform: rotate(135deg);
}
to {
transform: rotate(495deg);
}
}
@keyframes minHand {
from {
transform: rotate(0deg);
}
to {
transform: rotate(1turn);
}
}
View Compiled
/* For restaring animations on window resize */
const animParts = [
"lcd-light",
"hour",
"minute",
"human-wrapper",
"human",
"head",
"eyes",
"r-upper-arm",
"r-lower-arm",
"l-upper-arm",
"l-lower-arm",
"l-thigh",
"r-thigh",
"l-lower-leg",
"r-lower-leg"
];
function restartAnims(animClassArray, resetClass) {
for (let i = 0; i < animClassArray.length; ++i) {
// get animated elements and reset animations
let animClass = document.getElementsByClassName(animClassArray[i])[0];
animClass.className += " " + resetClass;
// reflow
let animClassW = animClass.offsetWidth;
animClass.offsetWidth = animClassW;
// animation reset class removed
animClass.className = animClassArray[i];
}
}
window.addEventListener("resize", function(){
restartAnims(animParts, "reset-anim");
});
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.