html {box-sizing: border-box;} *, *:before, *:after {box-sizing: inherit;} $bounce: cubic-bezier(0.545, 2, 0.47, 0.82); // in $easeInQuad : cubic-bezier(0.550, 0.085, 0.680, 0.530); $easeInCubic : cubic-bezier(0.550, 0.055, 0.675, 0.190); $easeInQuart : cubic-bezier(0.895, 0.030, 0.685, 0.220); $easeInQuint : cubic-bezier(0.755, 0.050, 0.855, 0.060); $easeInSine : cubic-bezier(0.470, 0.000, 0.745, 0.715); $easeInExpo : cubic-bezier(0.950, 0.050, 0.795, 0.035); $easeInCirc : cubic-bezier(0.600, 0.040, 0.980, 0.335); $easeInBack : cubic-bezier(0.600, -0.280, 0.735, 0.045); // out $easeOutQuad : cubic-bezier(0.250, 0.460, 0.450, 0.940); $easeOutCubic : cubic-bezier(0.215, 0.610, 0.355, 1.000); $easeOutQuart : cubic-bezier(0.165, 0.840, 0.440, 1.000); $easeOutQuint : cubic-bezier(0.230, 1.000, 0.320, 1.000); $easeOutSine : cubic-bezier(0.390, 0.575, 0.565, 1.000); $easeOutExpo : cubic-bezier(0.190, 1.000, 0.220, 1.000); $easeOutCirc : cubic-bezier(0.075, 0.820, 0.165, 1.000); $easeOutBack : cubic-bezier(0.175, 0.885, 0.320, 1.275); // in out $easeInOutQuad : cubic-bezier(0.455, 0.030, 0.515, 0.955); $easeInOutCubic : cubic-bezier(0.645, 0.045, 0.355, 1.000); $easeInOutQuart : cubic-bezier(0.770, 0.000, 0.175, 1.000); $easeInOutQuint : cubic-bezier(0.860, 0.000, 0.070, 1.000); $easeInOutSine : cubic-bezier(0.445, 0.050, 0.550, 0.950); $easeInOutExpo : cubic-bezier(1.000, 0.000, 0.000, 1.000); $easeInOutCirc : cubic-bezier(0.785, 0.135, 0.150, 0.860); $easeInOutBack : cubic-bezier(0.680, -0.550, 0.265, 1.550); .scene { background: radial-gradient(ellipse at center, #fff 0%,#b5b9bf 100%); position:fixed; top:0;right:0;bottom:0;left:0; margin:auto; overflow: hidden; } $red:#c73226; $lightblue:#354459; $mediumblue:#1e2839; $darkblue:#0c111f; $gray:#e5e5e5; @keyframes scalex { 0% {transform:scaleX(0);opacity:0;} 20% {opacity: 1;} 100% {transform:scaleX(1);} } @keyframes scaley { 0% {transform:scaleY(0);opacity:0;} 20% {opacity: 1;} 100% {transform:scaleY(1);} } @keyframes scale { 0% {transform:scale(0);opacity:0;} 20% {opacity: 1;} 100% {transform:scale(1);} } .logo { width: 248px; height: 238px; position:absolute;top:0;right:0;bottom:0;left:0; margin:auto; z-index: 800; .logo-trig { position: absolute; left: 0;bottom: 0; width:0;height:0; border-right: 52px solid $lightblue; border-top: 52px solid transparent; border-bottom: 52px solid transparent; animation:logo-trig .5s .25s $easeOutQuint backwards paused; } .logo-trid { position: absolute; top: 0;right: 0; width:0;height:0; border-left: 52px solid $lightblue; border-top: 52px solid transparent; border-bottom: 52px solid transparent; animation:logo-trid .5s .5s $easeOutQuint backwards paused; } .logo-sqg { position: absolute; top:2*26px;left:62px; width: 52px; height: 186px; background: $darkblue; transform:skewY(-45deg); transform-origin:0 0; animation:logo-sq .5s $easeOutQuint backwards paused; } .logo-sqd { position: absolute; top:2*26px;right:62px; width: 52px; height: 186px; background: $darkblue; transform:skewY(-45deg); transform-origin:0 100%; animation:logo-sq .5s .25s $easeOutQuint backwards paused; } .logo-sep { position:absolute; top:104px; right:0;left:0; margin:auto; width: 6px; height: 40px; transform:skewY(-45deg); background:$lightblue; animation:logo-sq .5s .5s $easeOutQuint backwards paused; } opacity: 0; &.a { opacity: 1; .logo-trig {animation-play-state:running;} .logo-trid {animation-play-state:running;} .logo-sqg {animation-play-state:running;} .logo-sqd {animation-play-state:running;} .logo-sep {animation-play-state:running;} } } @keyframes logo-trig { 0% {opacity:0;transform:translateY(-100px);} 100% {opacity:1;transform:none;} } @keyframes logo-trid { 0% {opacity:0;transform:translateY(100px);} 100% {opacity:1;transform:none;} } @keyframes logo-sq { 0% {transform:skewY(-45deg) scaleY(0);} 100% {transform:skewY(-45deg) scaleY(1);} } .sq-logo { width:326px; height:326px; transform:rotate(45deg); position:absolute;top:0;right:0;bottom:0;left:0; margin:auto; z-index: 100; > * {position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;} .sq--a { box-shadow: 0 0 0 10px #fff; background:$red; animation: scalex .5s $easeInOutQuint backwards paused, sqla .4s .5s $easeInOutCubic backwards paused; transform-origin:0 0; } .sq--b { width:310px; height:310px; background:#fff; animation:scaley .4s .35s $easeInOutQuint backwards paused; transform-origin:0 0; } opacity: 0; &.a { opacity: 1; .sq--a {animation-play-state:running;} .sq--b {animation-play-state:running;} } } @keyframes sqla { 0% {box-shadow: 0 0 0 0 #fff;} 50% {box-shadow: 0 0 0 20px #fff;} 100% {box-shadow: 0 0 0 10px #fff;} } .sr-rec1 { width:376px; height:376px; position:absolute;top:0;right:0;bottom:0;left:0; margin:auto; z-index: 90; > * {position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;} .sq--a { background: $lightblue; border:28px solid $darkblue; animation:srra .75s $easeOutCubic backwards paused; div { width:28px; height:28px; background:$darkblue; position: absolute; &.sq--1 {top: 0;left: 0;} &.sq--2 {top: 0;right: 0;} &.sq--3 {right: 0;bottom: 0;} &.sq--4 {bottom: 0;left: 0;} } } .sq--b { width: 356px; height: 356px; z-index: 5; div { position:absolute; background:$lightblue; } .sq--1 { top:0;right:0;left:0;height:4px; animation:scalex .5s .5s $easeInOutQuint backwards paused; transform-origin:0 50%; } .sq--2 { top:0;right:0;bottom:0;width:4px; animation:scaley .5s .5s $easeInOutQuint backwards paused; transform-origin:50% 0; } .sq--3 { right:0;bottom:0;left:0;height:4px; animation:scalex .5s .5s $easeInOutQuint backwards paused; transform-origin:100% 50%; } .sq--4 { top:0;bottom:0;left:0;width:4px; animation:scaley .5s .5s $easeInOutQuint backwards paused; transform-origin:50% 100%; } } opacity: 0; &.a { opacity: 1; .sq--a {animation-play-state:running;} .sq--b { .sq--1 {animation-play-state:running;} .sq--2 {animation-play-state:running;} .sq--3 {animation-play-state:running;} .sq--4 {animation-play-state:running;} } } } @keyframes srra { 0% {transform:scale(1.5);opacity: 0;} 50% {transform:scale(.75);opacity: 1;} 75% {transform:scale(1.1);opacity: 1;} 100% {transform:scale(1);opacity: 1;} } .sr-rec2 { width:390px; height:390px; transform:rotate(45deg); position:absolute;top:0;right:0;bottom:0;left:0; margin:auto; z-index: 80; > * {position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;} .sq--a { background: $lightblue; animation:scalex .75s $easeOutCubic backwards paused; transform-origin:0 0; } .sq--b { div { position:absolute; background:$darkblue; } .sq--1 { top:0;right:0;left:0;height:6px; animation:scalex .5s .5s $easeInOutQuint backwards paused; transform-origin:0 50%; } .sq--2 { top:0;right:0;bottom:0;width:6px; animation:scaley .5s .5s $easeInOutQuint backwards paused; transform-origin:50% 0; } .sq--3 { right:0;bottom:0;left:0;height:6px; animation:scalex .5s .5s $easeInOutQuint backwards paused; transform-origin:100% 50%; } .sq--4 { top:0;bottom:0;left:0;width:6px; animation:scaley .5s .5s $easeInOutQuint backwards paused; transform-origin:50% 100%; } } .sq--c { width:370px; height:370px; div { position:absolute; background:$red; } .sq--1 { top:0;right:0;left:0;height:2px; animation:scalex .5s .5s $easeInOutQuint backwards paused; transform-origin:0 50%; } .sq--2 { top:0;right:0;bottom:0;width:2px; animation:scaley .5s .5s $easeInOutQuint backwards paused; transform-origin:50% 0; } .sq--3 { right:0;bottom:0;left:0;height:2px; animation:scalex .5s .5s $easeInOutQuint backwards paused; transform-origin:100% 50%; } .sq--4 { top:0;bottom:0;left:0;width:2px; animation:scaley .5s .5s $easeInOutQuint backwards paused; transform-origin:50% 100%; } } .sq--d { width:356px; height:356px; .sq--dd { position:absolute; width: 100%;height:100%; &.sq--d1 {transform:rotate(0deg);} &.sq--d2 {transform:rotate(90deg);} &.sq--d3 {transform:rotate(180deg);} &.sq--d4 {transform:rotate(270deg);} div { width:18px; height:18px; background:$gray; position:absolute; top:0; left:0; opacity: 0; transform:translateY(50px) scale(0); @for $i from 1 through 14 { &:nth-child(#{$i}) { transition:.5s $i*.015+.75s $bounce; left:$i*26-26px; } } } } } opacity: 0; &.a { opacity: 1; .sq--a {animation-play-state:running;} .sq--b { .sq--1 {animation-play-state:running;} .sq--2 {animation-play-state:running;} .sq--3 {animation-play-state:running;} .sq--4 {animation-play-state:running;} } .sq--c { .sq--1 {animation-play-state:running;} .sq--2 {animation-play-state:running;} .sq--3 {animation-play-state:running;} .sq--4 {animation-play-state:running;} } .sq--d { .sq--dd { div { transform:translateY(0) scale(1); opacity: 1; } } } } } .sr-rec3 { width:476px; height:476px; position:absolute;top:0;right:0;bottom:0;left:0; margin:auto; z-index: 70; > * {position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;} .sq--a { background: $lightblue; animation:scalex 1s $easeOutCubic backwards paused; transform-origin:0 0; } .sq--b { div { position:absolute; background:$darkblue; } .sq--1 { top:0;right:0;left:0;height:10px; animation:scalex .75s .5s $easeInOutQuint backwards paused; transform-origin:0 50%; } .sq--2 { top:0;right:0;bottom:0;width:10px; animation:scaley .75s .5s $easeInOutQuint backwards paused; transform-origin:50% 0; } .sq--3 { right:0;bottom:0;left:0;height:10px; animation:scalex .75s .5s $easeInOutQuint backwards paused; transform-origin:100% 50%; } .sq--4 { top:0;bottom:0;left:0;width:10px; animation:scaley .75s .5s $easeInOutQuint backwards paused; transform-origin:50% 100%; } } .sq--c { width:446px; height:446px; div { position:absolute; background:$red; } .sq--1 { top:0;right:0;left:0;height:2px; animation:scalex .75s .5s $easeInOutQuint backwards paused; transform-origin:0 50%; } .sq--2 { top:0;right:0;bottom:0;width:2px; animation:scaley .75s .5s $easeInOutQuint backwards paused; transform-origin:50% 0; } .sq--3 { right:0;bottom:0;left:0;height:2px; animation:scalex .75s .5s $easeInOutQuint backwards paused; transform-origin:100% 50%; } .sq--4 { top:0;bottom:0;left:0;width:2px; animation:scaley .75s .5s $easeInOutQuint backwards paused; transform-origin:50% 100%; } } .sq--d { width:430px; height:430px; .sq--dd { position:absolute; width: 100%;height:100%; &.sq--d1 {transform:rotate(0deg);} &.sq--d2 {transform:rotate(90deg);} &.sq--d3 {transform:rotate(180deg);} &.sq--d4 {transform:rotate(270deg);} div { width:24px; height:24px; background:$gray; position:absolute; top:0; left:0; transform:translateY(50px) scale(0); @for $i from 1 through 15 { &:nth-child(#{$i}) { transition:.5s $i*.015+.75s $bounce; left:$i*29-29px; } } } } } transition: .25s $easeOutCubic; opacity: 0; &.a { opacity: 1; .sq--a {animation-play-state:running;} .sq--b { .sq--1 {animation-play-state:running;} .sq--2 {animation-play-state:running;} .sq--3 {animation-play-state:running;} .sq--4 {animation-play-state:running;} } .sq--c { .sq--1 {animation-play-state:running;} .sq--2 {animation-play-state:running;} .sq--3 {animation-play-state:running;} .sq--4 {animation-play-state:running;} } .sq--d { .sq--dd { div { transform:translateY(0) scale(1); } } } } } .sr-rec4 { width:464px; height:464px; position:absolute;top:0;right:0;bottom:0;left:0; margin:auto; z-index: 60; transform:rotate(45deg); > * {position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;} .sq--a { background: $red; animation:scalex .75s $easeInOutQuint backwards paused; transform-origin:100% 100%; } .sq--b { width:452px; height:452px; background: $mediumblue; animation:scaley .75s .5s $easeInOutQuint backwards paused; transform-origin:100% 100%; } .sq--c { width:424px; height:424px; .sq--cc { position: absolute; width: 36px; height:36px; &.sq--c1 {top:0;right:0;} &.sq--c2 {right:0;bottom:0;} &.sq--c3 {bottom:0;left:0;} .sq--cc1 { position:absolute; top:0;right:0;bottom:0;left:0; margin:auto; width:36px; height:36px; border:4px solid $red; } .sq--cc2 { position:absolute; top:0;right:0;bottom:0;left:0; margin:auto; width:20px; height:20px; background:$gray; } &.sq--c1 { .sq--cc1 {animation:scale .75s .1s $bounce backwards paused;} .sq--cc2 {animation:scale .75s .6s $bounce backwards paused;} } &.sq--c2 { .sq--cc1 {animation:scale .75s .1+.25s $bounce backwards paused;} .sq--cc2 {animation:scale .75s .6+.25s $bounce backwards paused;} } &.sq--c3 { .sq--cc1 {animation:scale .75s .1+.5s $bounce backwards paused;} .sq--cc2 {animation:scale .75s .6+.5s $bounce backwards paused;} } } } opacity: 0; &.a { opacity: 1; .sq--a {animation-play-state:running;} .sq--b {animation-play-state:running;} .sq--c { .sq--cc { .sq--cc1 {animation-play-state:running;} .sq--cc2 {animation-play-state:running;} } } } } .str { width:586px; height:586px; position:absolute;top:0;right:0;bottom:0;left:0; margin:auto; z-index: 50; overflow: hidden; > * {position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;} .st--st { position: absolute; top:0;right:0; width:352px; height:100%; &.st--a {transform:rotate(45deg);} &.st--b {transform:rotate(-45-90deg);} div { height: 6px; width: 100%; background:$red; position: absolute; left: 0;right: 0; transform-origin:100% 0; &:nth-child(1) {top:0;} &:nth-child(2) {top:12px;} &:nth-child(3) {top:24px;} } &.st--a { div:nth-child(1) {animation:scalex 2s 1*.1s $easeInOutQuint backwards paused;} div:nth-child(2) {animation:scalex 2s 2*.1s $easeInOutQuint backwards paused;} div:nth-child(3) {animation:scalex 2s 3*.1s $easeInOutQuint backwards paused;} } &.st--b { div:nth-child(1) {animation:scalex 2s 1*.1s $easeInOutQuint backwards paused;} div:nth-child(2) {animation:scalex 2s 2*.1s $easeInOutQuint backwards paused;} div:nth-child(3) {animation:scalex 2s 3*.1s $easeInOutQuint backwards paused;} } } opacity: 0; &.a { opacity: 1; .st--st { &.st--a { div {animation-play-state:running;} } &.st--b { div {animation-play-state:running;} } } } }