<div id="holder">
<div id="viewport">
<div class="subviewport expl">
<div id="explosion">
<div id="explosion-circle"></div>
</div>
</div>
<div class="subviewport red">
<div class="circles">
<div class="circle-top"> </div><div class="circle-top"> </div><div class="circle-top"></div><div class="circle-top"> </div>
</div>
</div>
<svg version="1.1" id="red-legs" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="239.189px" height="213.698px" viewBox="0 0 239.189 213.698" enable-background="new 0 0 150 150" xml:space="preserve">
<path fill="none" stroke="#333333" stroke-width="2" d="M148.126,179.477c64-17.334,4.667-27.333,2,16">
<animate attributeName = "d"
begin = "0s"
dur = "0.96s"
repeatCount = "indefinite"
values = "M148.126,179.477c64-17.334,4.667-27.333,2,16;
M137.493,179.477c61.5-13.898,15.681-24.738,8,16;
M125.493,162.989c60.25,16.182,11.25-11.5,18,32.487;
M125.493,146.489c38.75,24.494,14.75,13.5,14.75,48.987;
M125.493,133.239c12.932,16.25,18.5,26.75,4,62.237;
M125.493,120.739c46,17.25,17.25,48.5-9,48.5;
M122.743,113.489c52.25,8,21.25,54.75,6.461,54.75;
M122.743,106.849c63.25,5.39,28,61.39,16.929,61.39;
M122.743,106.849c49.25,0,41.665,42.391,26.587,56.412;
M124.743,103.739c44.75,0,41.747,36.359,33.055,54.055;
M124.743,100.739c48.25,0,41.93,28.484,41.93,50.18;
M124.743,100.739c48.25,0,50.108,24.09,54.25,48.18;
M124.743,100.739c60,0,46.5,13.75,67.25,44;
M124.743,99.739c31.5,31.5,63.25,7.11,72.25,45;
M124.743,99.739c21.602,37.11,25.852,49.86,65.352,49.86;
M124.743,99.739c14.602,36.86,38.852,53.36,65.352,71.36;
M126.664,106.849c4.632,12.079,41.931,58.5,63.431,84;
M125.505,112.099c11.84,11.5,46.84,46.75,57.84,80;
M133.094,117.099c11.84,11.5,39.5,34.25,42.5,75;
M133.094,124.349c12.951,9.631,38,16,38,69.75;
M130.344,135.099c64,29.5,18.875,20.5,37.75,59;
M124.844,147.365c78.5,15.734,16.375,8.234,35.25,46.734;
M141.844,159.599c52,6,10.25-5.978,14.069,34.5;
M147.094,168.349c59.25-6.143,2.5-14.5,7,25.75
"
/>
</path>
<path fill="none" stroke="#333333" stroke-width="2" d="M78.559,134c64-17.334,4.667-27.333,2,16">
<animate attributeName = "d"
begin = "0s"
dur = "0.96s"
repeatCount = "indefinite"
values = "M80.126,156.81c-20.667,28.667-8.667,37.999,22,29.333;
M66.993,195.477c46,0,42.292-11.696,46-15.403;
M74.753,195.354c46,0,47.031-28.657,50.739-32.364;
M81.243,195.477c46,0,52-24.556,44.25-48.987;
M103.517,186.74c53.726-3.75,30.745-34.627,18.976-53.5;
M116.493,195.477c21.592-34.487,17.096-50.688,9-74.737;
M106.993,195.477c29.5-36.237,26.149-55.987,15.75-81.987;
M94.493,195.477c34.711-27.237,38.649-62.627,28.25-88.627;
M85.993,195.477c22.75-30.487,38.75-60.386,38.75-88.627;
M76.993,195.477c22.75-30.487,36-68.487,47.75-94.737;
M69.243,177.99c32-23,55.5-55.75,55.5-77.25;
M68.243,158.74c39-4.5,56.5-36.5,56.5-58;
M69.243,146.24c32,9,55.5-24,55.5-45.5;
M69.243,143.24c33.75,11.5,59-20.5,55.5-42.5;
M69.243,138.849c30.852,19.25,59-16.109,55.5-38.11;
M71.094,135.419c29.5,23.68,58.5-9.82,53.648-34.68;
M72.594,133.349c27.034,23.625,52.375,4.75,54.067-27.5;
M72.594,128.696c17,33.653,52.908,14.153,52.91-16.597;
M72.594,124.849c14,37.25,51.908,24,51.91-6.75;
M74.344,127.599c0,35.5,46.75,34.75,49.16-1.5;
M75.344,133.599c-2.5,36.5,44.75,36.75,47.16,0.5;
M75.259,137.373c-9.915,37.477,42.675,45.242,45.085,8.992;
M78.094,142.599c-12.75,31.5,19.75,45.25,35,19.5;
M78.094,151.349c-11.25,21-1.25,41.25,27.5,24.218;"
/>
</path>
</svg>
<div class="hexagon dude" style="
">
<div class="face"> </div>
</div>
<div class="subviewport orange">
<div class="circles">
<div class="circle-top"> </div><div class="circle-top"> </div><div class="circle-top"></div><div class="circle-top"> </div>
</div>
</div>
<svg version="1.1" id="orange-legs" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="239.189px" height="213.698px" viewBox="-30 0 239.189 213.698" enable-background="new 0 0 150 150" xml:space="preserve">
<path fill="none" stroke="#333333" stroke-width="2" d="M-17.904,195.477c41.333-36.127,36-59.46,45.333-80.127">
<animate attributeName = "d"
begin = "0.12s"
dur = "1.44s"
repeatCount = "indefinite"
values = "M-17.904,195.477c41.333-36.127,36-59.46,45.333-80.127;
M-21.906,195.477c42.25-32.377,41.687-57.056,49.335-80.127;
M-24.906,194.1c42.75-27.75,45.546-53.48,52.335-76.75;
M-24.906,194.1c42.75-27.75,43.068-44.52,49.857-67.789;
M-28.906,195.35c42.25-25,44.25-33.25,52.5-58;
M-35.906,194.35c30.065-8.45,47.75-16.5,58.029-42.744;
M-44.656,194.35c30,0,46.5,3,65.5-16.5;
M-34.656,186.35c30,0,36.263,1.735,49.49-8.916;
M-26.406,177.1c30,0,28.25,3,38.75-5.25;
M-16.156,169.35c30,0,27.536,0.544,37.792-5.166;
M-7.694,161.773c30,0,54.289-7.674,46.289-26.924;
M1.973,154.062c32.622,0,50.622-8.674,42.622-27.924;
M10.204,158.273c32.89,1.076,50.64-19.337,30.14-38.674;
M18.844,162.85c32.89,1.076,43-30.5,20.25-45.25;
M26.094,166.85c33.75-4.25,35.75-37.75,12-51.25;
M28.844,168.1c30.25-4.75,32.5-42,9.25-52.5;
M34.094,169.6c27-5.25,27.5-47.5-2-55;
M43.594,175.35c20-18,16.75-55.25-14.75-59.25;
M53.344,182.1c13.25-25.25,6.542-58.25-24.5-63.875;
M58.594,186.183c5.093-25-2.5-58.333-31.167-64.5;
M62.928,188.35c0.969-25.167-10.613-49.714-30-60.333;
M70.928,194.85c-15.667-26.833-30.333-41.5-42.5-60.333;
M61.261,194.85c-4-30.167-8.333-31.667-21.833-48.667;
M53.761,194.85c0.667-43.833-3-5.833-28.333-37.5;
M47.219,193.975c-8.125-48.75,28.25-1-15.125-21.125;
M45.25,193.975c-7.655-42.625,21.97-10.875-7.655-21.375;
M39.344,193.975c-7.125-30.375,17-22.875-1.75-30.375;
M30.719,193.975c-4.125-23.625,15.875-32.5,4.5-42.5;
M-4.656,165.1c44.25,7.375,52-19.25,39.113-27.375;
M5.844,153.975c44.25,7.375,52-17.75,31-27.25;
M12.344,156.475c43.25,5.25,45.5-28.625,20.875-35;
M18.719,159.225c42.75-3.125,37.375-37,13-40.5;
M24.469,162.475c35.75-6.625,31.875-42.375,9.5-46.875;
M30.928,165.017c31-9.792,26.167-44.334,6.84-51.167;
M39.928,170.683c18.251-11.833,19.167-44.333-4.16-57.833;
M49.094,177.017c9.803-18.454,8.5-50.334-13.326-64.167;
M58.094,182.85c3.129-25.685-1.833-57-25.167-70.333;
M67.428,190.183c-2.167-25.833-21.424-66.333-41.833-77.666;"
/>
</path>
<path fill="none" stroke="#333333" stroke-width="2" d="M27.429,113.85c25.415,25.25,32.665,37,40.165,77.25">
<animate attributeName = "d"
begin = "0.12s"
dur = "1.44s"
repeatCount = "indefinite"
values = "M27.429,113.85c25.415,25.25,32.665,37,40.165,77.25;
M27.429,113.85c17.415,28.25,31.165,39.5,42.915,79;
M29.429,118.1c18.024,31.027,22.165,39.25,42.665,74.75;
M30.594,128.1c13.25,33.5,15.25,32.375,41.5,64.75;
M27.594,135.6c11.5,29.25,41.5,41.75,35.5,58.5;
M32.594,158.85c13.122,28.5,34.25,3.75,21.25,35.25;
M29.844,172.978c34.5,40.722,31.25-28.628,15.224,20.122;
M37.094,170.35c27.75,21.334,11.5-14.75,1.964,21.334;
M38.844,163.85c10.5,15.125,0,0-7.5,30.25;
M34.344,152.6c8,14.22-1.75,14.22-10,41.5;
M31.097,139.6c1.891,15.283-4.503,27.22-12.753,54.5;
M28.094,130.35c-4.472,15.25-8.043,36.47-16.293,63.75;
M28.094,122.6c-1.126,3.839-8.691,32.453-20.5,71.5;
M25.844,117.6c-1.126,3.839-11.119,37.418-22.927,76.465;
M24.094,115.1C22.969,118.938,11.547,155.6-1,194.064;
M24.094,115.1C22.969,118.938,10.547,154.6-2,193.064;
M24.094,115.1C22.969,118.938,10.547,154.6-2,193.064;
M24.094,115.1c-1.126,3.839-11,43-28,79;
M23.261,118.225C21.838,130.457,9.928,171.017-8.072,194.1;
M25.428,119.85c-1.833,15.333-15.833,51.833-35.667,74.25;
M24.116,126.688c-1.833,15.333-16.355,50.829-39.021,67.412;
M23.428,132.517c-1.833,15.333-19.167,44.75-41.833,61.333;
M22.761,141.183c-7.833,27.834-24.833,42-47.667,53.667;
M22.761,152.85c-13.5,28.333-33.333,40.5-53.667,42;
M22.761,176.475c-24.667,21-38.167,18.756-57.417,18.756;
M13.566,182.473C0,192.162-11.156,193.6-31.656,192.35;
M14.094,178.225c-11.75,9.5-18.5,7.625-39,6.375;
M34.457,152.85c0,8.375-12.613,30.375-49.863,21.875;
M30.344,140.35c0.75,9.875-5.625,29.875-9.5,53.375;
M21.469,138.1c0.75,9.875-4.875,32.125-8.75,55.625;
M22.594,127.85c0.039,9.625-9.625,42.375-13.5,65.875;
M23.344,121.475c0.039,9.625-13.625,48.75-17.5,72.25;
M23.344,116.725c0.037,9.146-16.417,52.792-21.25,77;
M23.344,114.517c-0.75,9-18.583,56.307-24.917,79.208;
M24.594,112.517c-0.75,9-16.833,60-29.833,81.208;
M24.594,112.517c-2.167,23.5-17.583,65.833-35.167,81.208;
M25.594,112.517c-1.167,23-15.5,64.5-40.333,81.208;
M25.594,112.517c-1.167,23-16,65.333-43.5,81.166;"
/>
</path>
</svg>
<div class="box dude" style="
"> <div class="face" style="
"></div></div>
<div class="subviewport green" style="
">
<div class="circles">
<div class="circle-top"> </div><div class="circle-top"> </div><div class="circle-top"></div><div class="circle-top"> </div><div class="circle-top"> </div>
</div>
</div>
<div class="rectangle dude">
<div class="face"> </div>
</div>
<div class="subviewport blue" style="
">
<div class="circles">
<div class="circle-top"> </div><div class="circle-top"> </div><div class="circle-top"> </div><div class="circle-top"> </div><div class="circle-top"> </div><div class="circle-top"></div><div class="circle-top"></div><div class="circle-top"> </div>
</div>
</div>
<div class="circle dude">
<div class="face"> </div>
</div>
</div>
</div>
html{
margin: 0;
padding: 0;
overflow-x: hidden;
}
body{
margin:0;
padding-top:100px;
background-color:hsl(0,10%,89%)
}
#holder{
width: 800px;
height: 500px;
position: relative;
background: hsl(0, 10%, 89%);
}
div#viewport {
position: absolute;
top: 0px;
left: 0;
width: 100%;
bottom: 180px;
}
.circles {
margin-bottom: 0;
position: absolute;
bottom: 0;
width: 100%;
word-break: normal;
white-space: nowrap;
}
.red {
width: 605px;
}
.expl{
width: 800px;
}
.red .circles {
animation: toleftR 0.96s linear infinite;
height: 132px;
margin-left: -132px;
}
.circle-top {
border-radius: 50%; display: inline-block;
margin: 0; padding: 0;
box-sizing: border-box;
}
.red .circle-top {
width: 264px;
height: 264px;
border: 11px solid hsl(0, 60%, 75%);
margin-left: -10px;
}
@keyframes toleftR{
0%{
transform: translateX(0)
}
100%{
transform: translateX(-254px)
}
}
@keyframes toleftO{
0%{
transform: translateX(0)
}
100%{
transform: translateX(-188px)
}
}
@keyframes toleftG{
0%{
transform: translateX(0)
}
100%{
transform: translateX(-130px)
}
}
@keyframes toleftB{
0%{
transform: translateX(0)
}
100%{
transform: translateX(-62px)
}
}
div#explosion {
margin-bottom: 0;
position: absolute;
bottom: 0;
width: 600px;
height: 100%;
left: 100px;
}
div#explosion-circle {
animation: explosion 2.88s infinite;
animation-timing-function: cubic-bezier(0.140, 0.620, 0.405, 0.850);
animation-direction: normal;
width: 600px;
height: 600px;
border-radius: 50%;
opacity: 0.5;
}
@keyframes explosion{
0%{
opacity: 0;
transform:translateX(0px) scale(0);
background-color: hsl(355, 95%, 53%);
}
75%{
opacity: 0.8;
transform:translateX(0px) scale(0);
background-color: hsl(355, 95%, 53%);
}
81.25%{
background-color: hsl(200, 86%, 60%);
}
87.5%{
background-color: hsl(120, 65%, 55%);
}
93.75%{
background-color: hsl(60, 100%, 50%);
opacity: 0.1;
}
100%{
transform:translateX(-254px) scale(1);
opacity: 0;
}
}
.subviewport {
left: 0;
position: absolute;
top: 0; bottom: 0; overflow: hidden;
}
.orange .circles {
height: 98px;
animation: toleftO 0.72s linear infinite;
margin-left: 17px;
}
.orange {
width: 505px;
}
.orange .circle-top {
width: 200px;
height: 200px;
border: 10px solid hsl(43, 77%, 76%);
margin-left: -10px;
}
.green {
width: 425px;
}
.green .circle-top {
width: 140px;
height: 140px;
border: 10px solid hsl(123, 55%, 73%);
margin-left: -10px;
}
.green .circles {
height: 70px;
animation: toleftG 0.48s linear infinite;
margin-left: -70px;
}
.blue {
width: 365px;
}
.blue .circle-top {
width: 70px;
height: 70px;
border: 8px solid hsl(200, 77%, 73%);
margin-left: -8px;
}
.blue .circles {
height: 35px;
animation: toleftB 0.24s linear infinite;
margin-left: -35px;
}
.hexagon {
position: absolute;
background-color: hsl(355, 95%, 53%);
text-align: center;
top: 263px;
left: 594px;
z-index: 1;
animation-duration: 0.96s;
animation-name: updownR;
}
.hexagon.dude, .hexagon.dude::before, .hexagon.dude::after {
width: 32px;
height: 53px;
border-width: 2px 0 2px 0;
border-style: solid;
}
.hexagon::before {
background-color: inherit;
content: "";
position: absolute;
transform: translateY(-2px) rotate(-60deg);
z-index: 1;
top: 0;
left: 0;
border-color: inherit;
}
.hexagon::after {
background-color: inherit;
content: "";
position: absolute;
transform: translateY(-2px) rotate(60deg);
z-index: -1;
top: 0;
left: 0;
border-color: inherit;
}
.box {
top: 210px;
left: 490px;
position: absolute;
width: 27px;
height: 23px;
background-color: hsl(22, 90%, 50%);
z-index: 0;
border-color: hsl(0, 0%, 30%);
animation-duration: 1.44s;
animation-name: updownO;
}
.box .face {
width: 16px;
height: 0;
border-bottom: 3px solid;
position: absolute;
z-index: 5;
top: 11px;
left: 32px;
border-color: inherit;
}
.box:before {
width: 16px;
height: 23px;
position: absolute;
content: "";
top: -2px;
right: -16px;
background: inherit;
border: inherit;
}
.box .face:after, .box .face:before {
content: "";
position:absolute;
width: 0;
height: 0;
border-color: inherit;
border: 2px solid;
border-radius: 50%;
top: -6px;
border-color: inherit;
}
.box .face:before{
left: -4px;
}
.box .face:after{
left: 3px;
}
.dude {
position: absolute;
border: 2px solid;
padding: 0;
z-index: 2;
border-top-color: hsl(0, 0%, 20%);
border-bottom-color: hsl(0, 0%, 20%);
border-right-color: hsl(0, 0%, 20%);
border-left-color: hsl(0, 0%, 20%);
animation-iteration-count: infinite;
animation-timing-function: linear;
}
.rectangle {
left: 411px;
top: 302px;
width: 21px;
height: 12px;
background: hsl(120, 65%, 55%);
animation-duration: .48s;
animation-name: updownG;
}
.rectangle .face {
position: absolute;
top: 7px;
left: 18px;
border-top: 3px solid;
height: 0;
width: 12px;
border-color: inherit;
}
.rectangle .face:after {
position: absolute;
content: "";
border-top: 2px solid;
border-left: 2px solid;
width: 1px;
height: 1px;
border-color: inherit;
top: -8px;
left: -1px;
}
.circle.dude {
top: 277px;
left: 355px;
width: 18px;
height: 18px;
border-radius: 50%;
background: hsl(200, 86%, 60%);
animation-duration: .24s;
animation-name: updownB;
}
.circle .face {
position: absolute;
left: 16px;
top: 8px;
width: 17px;
border-top: 2px solid;
border-color: inherit;
z-index: 7;
}
.circle .face:after {
border-top: 2px solid;
border-color: inherit;
width: 17px;
top: -1px;
content: "";
position: absolute;
transform-origin: 0 0;
transform: rotateZ(8deg);
}
.circle .face:before {
position: absolute;
content: "";
border-top: 2px solid;
border-left: 2px solid;
width: 1px;
height: 1px; border-color: inherit;
top: -7px;
left: -4px;
border-radius: 50%;
}
.hexagon .face {
position: absolute;
border-top: 3px solid;
border-color: inherit;
left: 8px;
top: 8px;
width: 26px;
z-index: 2;
}
.hexagon .face:after {
position: absolute;
content: "";
border-width: 0 3px 3px 0;
border-style: solid;
border-color: inherit;
width: 8px;
height: 21px;
left: 12px;
transform: skewX(11deg);
}
#red-legs{
position: absolute;
right: 73px;
bottom: -20px;
}
#orange-legs{
position: absolute;
right: 110px;
bottom: -20px;
}
@keyframes updownR {
0%{
transform: translateY(0px);
animation-timing-function: cubic-bezier(0,.50,.50,1);
}
50%{
transform: translateY(-96px);
animation-timing-function: cubic-bezier(.50,0,1,.50) ;
}
}
@keyframes updownO {
0%{
transform: translateY(0px);
animation-timing-function: cubic-bezier(0.585, 0.240, 0.865, 0.445);
}
25%{
transform: translateY(75px) rotateZ(90deg);
animation-timing-function: cubic-bezier(0.070, 0.405, 0.400, 0.820);
}
50%{
transform: translateY(0px) rotateZ(180deg);
animation-timing-function: cubic-bezier(0.585, 0.240, 0.865, 0.445);
}
75%{
transform: translateY(75px) rotateZ(270deg);
animation-timing-function: cubic-bezier(0.070, 0.405, 0.400, 0.820);
}
100%{
transform: translateY(0px) rotateZ(360deg);
animation-timing-function: cubic-bezier(0.585, 0.240, 0.865, 0.445);
}
}
@keyframes updownG {
0%{
transform: translateY(0px) skewX(-25deg) scale(0.8,1.8);
animation-timing-function: cubic-bezier(0,.50,.50,1);
}
50%{
transform: translateY(-50px);
animation-timing-function: cubic-bezier(.50,0,1,.50) ;
}
100%{
transform: translateY(0px) skewX(25deg) scale(0.8,1.8);
}
}
@keyframes updownB {
0%{
transform: translateY(0px);
animation-timing-function: cubic-bezier(.50,0,1,.50);
}
50%{
transform: translateY(25px) scale(1.2,1);
animation-timing-function: cubic-bezier(0,.50,.50,1);
}
100%{
transform: translateY(0px);
}
}
/******* BEST VIEWED IN CHROME *******/
// Original One
// https://dribbble.com/shots/1515226-Rain-Bros?list=searches&offset=0
/*
Legs sometimes don't sync because they are SVG animation
Refresh and see if it works
*/
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.