/** * * All animations must live in their own file * in the animations directory and be included * here. * */ /** * Styles shared by multiple animations */ /** * Dots */ @-webkit-keyframes scale { 0% { opacity: 1; transform: scale(1); -webkit-transform: scale(1); } 45% { opacity: .7; transform: scale(.1); -webkit-transform: scale(.1); } 80% { opacity: 1; transform: scale(1); -webkit-transform: scale(1); } } @keyframes scale { 0% { opacity: 1; transform: scale(1); -webkit-transform: scale(1); } 45% { opacity: .7; transform: scale(.1); -webkit-transform: scale(.1); } 80% { opacity: 1; transform: scale(1); -webkit-transform: scale(1); } } .ball-pulse > div:nth-child(0) { animation: scale .75s -.36s infinite cubic-bezier(.2, .68, .18, 1.08); -webkit-animation: scale .75s -.36s infinite cubic-bezier(.2, .68, .18, 1.08); } .ball-pulse > div:nth-child(1) { animation: scale .75s -.24s infinite cubic-bezier(.2, .68, .18, 1.08); -webkit-animation: scale .75s -.24s infinite cubic-bezier(.2, .68, .18, 1.08); } .ball-pulse > div:nth-child(2) { animation: scale .75s -.12s infinite cubic-bezier(.2, .68, .18, 1.08); -webkit-animation: scale .75s -.12s infinite cubic-bezier(.2, .68, .18, 1.08); } .ball-pulse > div:nth-child(3) { animation: scale .75s 0s infinite cubic-bezier(.2, .68, .18, 1.08); -webkit-animation: scale .75s 0s infinite cubic-bezier(.2, .68, .18, 1.08); } .ball-pulse > div { background-color: #fff; border-radius: 100%; display: inline-block; height: 15px; margin: 2px; width: 15px; -webkit-animation-fill-mode: both; animation-fill-mode: both; } @-webkit-keyframes ball-pulse-sync { 33% { transform: translateY(10px); -webkit-transform: translateY(10px); } 66% { transform: translateY(-10px); -webkit-transform: translateY(-10px); } 100% { transform: translateY(0); -webkit-transform: translateY(0); } } @keyframes ball-pulse-sync { 33% { transform: translateY(10px); -webkit-transform: translateY(10px); } 66% { transform: translateY(-10px); -webkit-transform: translateY(-10px); } 100% { transform: translateY(0); -webkit-transform: translateY(0); } } .ball-pulse-sync > div:nth-child(0) { animation: ball-pulse-sync .6s -.21s infinite ease-in-out; -webkit-animation: ball-pulse-sync .6s -.21s infinite ease-in-out; } .ball-pulse-sync > div:nth-child(1) { animation: ball-pulse-sync .6s -.14s infinite ease-in-out; -webkit-animation: ball-pulse-sync .6s -.14s infinite ease-in-out; } .ball-pulse-sync > div:nth-child(2) { animation: ball-pulse-sync .6s -.07s infinite ease-in-out; -webkit-animation: ball-pulse-sync .6s -.07s infinite ease-in-out; } .ball-pulse-sync > div:nth-child(3) { animation: ball-pulse-sync .6s 0s infinite ease-in-out; -webkit-animation: ball-pulse-sync .6s 0s infinite ease-in-out; } .ball-pulse-sync > div { background-color: #fff; border-radius: 100%; display: inline-block; height: 15px; margin: 2px; width: 15px; -webkit-animation-fill-mode: both; animation-fill-mode: both; } @-webkit-keyframes ball-scale { 0% { transform: scale(0); -webkit-transform: scale(0); } 100% { opacity: 0; transform: scale(1); -webkit-transform: scale(1); } } @keyframes ball-scale { 0% { transform: scale(0); -webkit-transform: scale(0); } 100% { opacity: 0; transform: scale(1); -webkit-transform: scale(1); } } .ball-scale > div { animation: ball-scale 1s 0s ease-in-out infinite; -webkit-animation: ball-scale 1s 0s ease-in-out infinite; background-color: #fff; border-radius: 100%; display: inline-block; height: 15px; height: 60px; margin: 2px; width: 15px; width: 60px; -webkit-animation-fill-mode: both; animation-fill-mode: both; } @-webkit-keyframes rotate { 0% { transform: rotate(0deg); -webkit-transform: rotate(0deg); } 50% { transform: rotate(180deg); -webkit-transform: rotate(180deg); } 100% { transform: rotate(360deg); -webkit-transform: rotate(360deg); } } @keyframes rotate { 0% { transform: rotate(0deg); -webkit-transform: rotate(0deg); } 50% { transform: rotate(180deg); -webkit-transform: rotate(180deg); } 100% { transform: rotate(360deg); -webkit-transform: rotate(360deg); } } .ball-rotate { position: relative; } .ball-rotate > div { background-color: #fff; border-radius: 100%; height: 15px; margin: 2px; position: relative; width: 15px; -webkit-animation-fill-mode: both; animation-fill-mode: both; } .ball-rotate > div:first-child { animation: rotate 1s 0s cubic-bezier(.7, -.13, .22, .86) infinite; -webkit-animation: rotate 1s 0s cubic-bezier(.7, -.13, .22, .86) infinite; } .ball-rotate > div:before, .ball-rotate > div:after { background-color: #fff; border-radius: 100%; content: ''; height: 15px; margin: 2px; opacity: .8; position: absolute; width: 15px; } .ball-rotate > div:before { left: -28px; top: 0; } .ball-rotate > div:after { left: 25px; top: 0; } @keyframes rotate { 0% { transform: rotate(0deg) scale(1); -webkit-transform: rotate(0deg) scale(1); } 50% { transform: rotate(180deg) scale(.6); -webkit-transform: rotate(180deg) scale(.6); } 100% { transform: rotate(360deg) scale(1); -webkit-transform: rotate(360deg) scale(1); } } .ball-clip-rotate > div { animation: rotate .75s 0s linear infinite; -webkit-animation: rotate .75s 0s linear infinite; background: transparent !important; background-color: #fff; border: 2px solid #fff; border-bottom-color: transparent; border-radius: 100%; display: inline-block; height: 15px; height: 25px; margin: 2px; width: 15px; width: 25px; -webkit-animation-fill-mode: both; animation-fill-mode: both; } @keyframes rotate { 0% { transform: rotate(0deg) scale(1); -webkit-transform: rotate(0deg) scale(1); } 50% { transform: rotate(180deg) scale(.6); -webkit-transform: rotate(180deg) scale(.6); } 100% { transform: rotate(360deg) scale(1); -webkit-transform: rotate(360deg) scale(1); } } @keyframes scale { 30% { transform: scale(.3); -webkit-transform: scale(.3); } 100% { transform: scale(1); -webkit-transform: scale(1); } } .ball-clip-rotate-pulse { position: relative; transform: translateY(-15px); -ms-transform: translateY(-15px); -webkit-transform: translateY(-15px); } .ball-clip-rotate-pulse > div { border-radius: 100%; left: 0; position: absolute; top: 0; -webkit-animation-fill-mode: both; animation-fill-mode: both; } .ball-clip-rotate-pulse > div:first-child { animation: scale 1s 0s cubic-bezier(.09, .57, .49, .9) infinite; -webkit-animation: scale 1s 0s cubic-bezier(.09, .57, .49, .9) infinite; background: #fff; height: 16px; left: -7px; top: 7px; width: 16px; } .ball-clip-rotate-pulse > div:last-child { animation: rotate 1s 0s cubic-bezier(.09, .57, .49, .9) infinite; -webkit-animation: rotate 1s 0s cubic-bezier(.09, .57, .49, .9) infinite; animation-duration: 1s; -webkit-animation-duration: 1s; background: transparent; border: 2px solid #fff; border: 2px solid; border-color: #fff transparent #fff transparent; height: 30px; left: -16px; position: absolute; top: -2px; width: 30px; } @keyframes rotate { 0% { transform: rotate(0deg) scale(1); -webkit-transform: rotate(0deg) scale(1); } 50% { transform: rotate(180deg) scale(.6); -webkit-transform: rotate(180deg) scale(.6); } 100% { transform: rotate(360deg) scale(1); -webkit-transform: rotate(360deg) scale(1); } } .ball-clip-rotate-multiple { position: relative; } .ball-clip-rotate-multiple > div { animation: rotate 1s 0s ease-in-out infinite; -webkit-animation: rotate 1s 0s ease-in-out infinite; border: 2px solid #fff; border-bottom-color: transparent; border-radius: 100%; border-top-color: transparent; height: 35px; left: -20px; position: absolute; top: -20px; width: 35px; -webkit-animation-fill-mode: both; animation-fill-mode: both; } .ball-clip-rotate-multiple > div:last-child { animation-direction: reverse; -webkit-animation-direction: reverse; animation-duration: .5s; -webkit-animation-duration: .5s; border-color: #fff transparent #fff transparent; display: inline-block; height: 15px; left: -10px; top: -10px; width: 15px; } @-webkit-keyframes ball-scale-ripple { 0% { opacity: 1; transform: scale(.1); -webkit-transform: scale(.1); } 70% { opacity: .7; transform: scale(1); -webkit-transform: scale(1); } 100% { opacity: .0; } } @keyframes ball-scale-ripple { 0% { opacity: 1; transform: scale(.1); -webkit-transform: scale(.1); } 70% { opacity: .7; transform: scale(1); -webkit-transform: scale(1); } 100% { opacity: .0; } } .ball-scale-ripple > div { animation: ball-scale-ripple 1s 0s infinite cubic-bezier(.21, .53, .56, .8); -webkit-animation: ball-scale-ripple 1s 0s infinite cubic-bezier(.21, .53, .56, .8); border: 2px solid #fff; border-radius: 100%; height: 50px; width: 50px; -webkit-animation-fill-mode: both; animation-fill-mode: both; } @-webkit-keyframes ball-scale-ripple-multiple { 0% { opacity: 1; transform: scale(.1); -webkit-transform: scale(.1); } 70% { opacity: .7; transform: scale(1); -webkit-transform: scale(1); } 100% { opacity: .0; } } @keyframes ball-scale-ripple-multiple { 0% { opacity: 1; transform: scale(.1); -webkit-transform: scale(.1); } 70% { opacity: .7; transform: scale(1); -webkit-transform: scale(1); } 100% { opacity: .0; } } .ball-scale-ripple-multiple { position: relative; transform: translateY(-25px); -ms-transform: translateY(-25px); -webkit-transform: translateY(-25px); } .ball-scale-ripple-multiple > div:nth-child(0) { animation-delay: -.8s; -webkit-animation-delay: -.8s; } .ball-scale-ripple-multiple > div:nth-child(1) { animation-delay: -.6s; -webkit-animation-delay: -.6s; } .ball-scale-ripple-multiple > div:nth-child(2) { animation-delay: -.4s; -webkit-animation-delay: -.4s; } .ball-scale-ripple-multiple > div:nth-child(3) { animation-delay: -.2s; -webkit-animation-delay: -.2s; } .ball-scale-ripple-multiple > div { animation: ball-scale-ripple-multiple 1.25s 0s infinite cubic-bezier(.21, .53, .56, .8); -webkit-animation: ball-scale-ripple-multiple 1.25s 0s infinite cubic-bezier(.21, .53, .56, .8); border: 2px solid #fff; border-radius: 100%; height: 50px; left: -26px; position: absolute; top: -2px; width: 50px; -webkit-animation-fill-mode: both; animation-fill-mode: both; } @-webkit-keyframes ball-beat { 50% { opacity: .2; transform: scale(.75); -webkit-transform: scale(.75); } 100% { opacity: 1; transform: scale(1); -webkit-transform: scale(1); } } @keyframes ball-beat { 50% { opacity: .2; transform: scale(.75); -webkit-transform: scale(.75); } 100% { opacity: 1; transform: scale(1); -webkit-transform: scale(1); } } .ball-beat > div { animation: ball-beat .7s 0s infinite linear; -webkit-animation: ball-beat .7s 0s infinite linear; background-color: #fff; border-radius: 100%; display: inline-block; height: 15px; margin: 2px; width: 15px; -webkit-animation-fill-mode: both; animation-fill-mode: both; } .ball-beat > div:nth-child(2n-1) { animation-delay: -.35s !important; -webkit-animation-delay: -.35s !important; } @-webkit-keyframes ball-scale-multiple { 0% { opacity: 0; transform: scale(0); -webkit-transform: scale(0); } 5% { opacity: 1; } 100% { opacity: 0; transform: scale(1); -webkit-transform: scale(1); } } @keyframes ball-scale-multiple { 0% { opacity: 0; transform: scale(0); -webkit-transform: scale(0); } 5% { opacity: 1; } 100% { opacity: 0; transform: scale(1); -webkit-transform: scale(1); } } .ball-scale-multiple { position: relative; transform: translateY(-30px); -ms-transform: translateY(-30px); -webkit-transform: translateY(-30px); } .ball-scale-multiple > div:nth-child(2) { animation-delay: -.4s; -webkit-animation-delay: -.4s; } .ball-scale-multiple > div:nth-child(3) { animation-delay: -.2s; -webkit-animation-delay: -.2s; } .ball-scale-multiple > div { animation: ball-scale-multiple 1s 0s linear infinite; -webkit-animation: ball-scale-multiple 1s 0s linear infinite; background-color: #fff; border-radius: 100%; height: 15px; height: 60px; left: -30px; margin: 2px; margin: 0; opacity: 0; position: absolute; top: 0; width: 15px; width: 60px; -webkit-animation-fill-mode: both; animation-fill-mode: both; } @-webkit-keyframes ball-triangle-path-1 { 33% { transform: translate(25px, -50px); -webkit-transform: translate(25px, -50px); } 66% { transform: translate(50px, 0px); -webkit-transform: translate(50px, 0px); } 100% { transform: translate(0px, 0px); -webkit-transform: translate(0px, 0px); } } @keyframes ball-triangle-path-1 { 33% { transform: translate(25px, -50px); -webkit-transform: translate(25px, -50px); } 66% { transform: translate(50px, 0px); -webkit-transform: translate(50px, 0px); } 100% { transform: translate(0px, 0px); -webkit-transform: translate(0px, 0px); } } @-webkit-keyframes ball-triangle-path-2 { 33% { transform: translate(25px, 50px); -webkit-transform: translate(25px, 50px); } 66% { transform: translate(-25px, 50px); -webkit-transform: translate(-25px, 50px); } 100% { transform: translate(0px, 0px); -webkit-transform: translate(0px, 0px); } } @keyframes ball-triangle-path-2 { 33% { transform: translate(25px, 50px); -webkit-transform: translate(25px, 50px); } 66% { transform: translate(-25px, 50px); -webkit-transform: translate(-25px, 50px); } 100% { transform: translate(0px, 0px); -webkit-transform: translate(0px, 0px); } } @-webkit-keyframes ball-triangle-path-3 { 33% { transform: translate(-50px, 0px); -webkit-transform: translate(-50px, 0px); } 66% { transform: translate(-25px, -50px); -webkit-transform: translate(-25px, -50px); } 100% { transform: translate(0px, 0px); -webkit-transform: translate(0px, 0px); } } @keyframes ball-triangle-path-3 { 33% { transform: translate(-50px, 0px); -webkit-transform: translate(-50px, 0px); } 66% { transform: translate(-25px, -50px); -webkit-transform: translate(-25px, -50px); } 100% { transform: translate(0px, 0px); -webkit-transform: translate(0px, 0px); } } .ball-triangle-path { position: relative; transform: translate(-29.994px, -37.50938px); -ms-transform: translate(-29.994px, -37.50938px); -webkit-transform: translate(-29.994px, -37.50938px); } .ball-triangle-path > div:nth-child(1) { animation-delay: 0; -webkit-animation-delay: 0; animation-duration: 2s; -webkit-animation-duration: 2s; animation-iteration-count: infinite; -webkit-animation-iteration-count: infinite; animation-name: ball-triangle-path-1; -webkit-animation-name: ball-triangle-path-1; animation-timing-function: ease-in-out; -webkit-animation-timing-function: ease-in-out; } .ball-triangle-path > div:nth-child(2) { animation-delay: 0; -webkit-animation-delay: 0; animation-duration: 2s; -webkit-animation-duration: 2s; animation-iteration-count: infinite; -webkit-animation-iteration-count: infinite; animation-name: ball-triangle-path-2; -webkit-animation-name: ball-triangle-path-2; animation-timing-function: ease-in-out; -webkit-animation-timing-function: ease-in-out; } .ball-triangle-path > div:nth-child(3) { animation-delay: 0; -webkit-animation-delay: 0; animation-duration: 2s; -webkit-animation-duration: 2s; animation-iteration-count: infinite; -webkit-animation-iteration-count: infinite; animation-name: ball-triangle-path-3; -webkit-animation-name: ball-triangle-path-3; animation-timing-function: ease-in-out; -webkit-animation-timing-function: ease-in-out; } .ball-triangle-path > div { border: 1px solid #fff; border-radius: 100%; height: 10px; position: absolute; width: 10px; -webkit-animation-fill-mode: both; animation-fill-mode: both; } .ball-triangle-path > div:nth-of-type(1) { top: 50px; } .ball-triangle-path > div:nth-of-type(2) { left: 25px; } .ball-triangle-path > div:nth-of-type(3) { left: 50px; top: 50px; } @-webkit-keyframes ball-pulse-rise-even { 0% { transform: scale(1.1); -webkit-transform: scale(1.1); } 25% { transform: translateY(-30px); -webkit-transform: translateY(-30px); } 50% { transform: scale(.4); -webkit-transform: scale(.4); } 75% { transform: translateY(30px); -webkit-transform: translateY(30px); } 100% { transform: translateY(0); transform: scale(1); -webkit-transform: translateY(0); -webkit-transform: scale(1); } } @keyframes ball-pulse-rise-even { 0% { transform: scale(1.1); -webkit-transform: scale(1.1); } 25% { transform: translateY(-30px); -webkit-transform: translateY(-30px); } 50% { transform: scale(.4); -webkit-transform: scale(.4); } 75% { transform: translateY(30px); -webkit-transform: translateY(30px); } 100% { transform: translateY(0); transform: scale(1); -webkit-transform: translateY(0); -webkit-transform: scale(1); } } @-webkit-keyframes ball-pulse-rise-odd { 0% { transform: scale(.4); -webkit-transform: scale(.4); } 25% { transform: translateY(30px); -webkit-transform: translateY(30px); } 50% { transform: scale(1.1); -webkit-transform: scale(1.1); } 75% { transform: translateY(-30px); -webkit-transform: translateY(-30px); } 100% { transform: translateY(0); transform: scale(.75); -webkit-transform: translateY(0); -webkit-transform: scale(.75); } } @keyframes ball-pulse-rise-odd { 0% { transform: scale(.4); -webkit-transform: scale(.4); } 25% { transform: translateY(30px); -webkit-transform: translateY(30px); } 50% { transform: scale(1.1); -webkit-transform: scale(1.1); } 75% { transform: translateY(-30px); -webkit-transform: translateY(-30px); } 100% { transform: translateY(0); transform: scale(.75); -webkit-transform: translateY(0); -webkit-transform: scale(.75); } } .ball-pulse-rise > div { animation-delay: 0; -webkit-animation-delay: 0; animation-duration: 1s; -webkit-animation-duration: 1s; animation-iteration-count: infinite; -webkit-animation-iteration-count: infinite; animation-timing-function: cubic-bezier(.15, .46, .9, .6); -webkit-animation-timing-function: cubic-bezier(.15, .46, .9, .6); background-color: #fff; border-radius: 100%; display: inline-block; height: 15px; margin: 2px; width: 15px; -webkit-animation-fill-mode: both; animation-fill-mode: both; } .ball-pulse-rise > div:nth-child(2n) { animation-name: ball-pulse-rise-even; -webkit-animation-name: ball-pulse-rise-even; } .ball-pulse-rise > div:nth-child(2n-1) { animation-name: ball-pulse-rise-odd; -webkit-animation-name: ball-pulse-rise-odd; } @-webkit-keyframes ball-grid-beat { 50% { opacity: .7; } 100% { opacity: 1; } } @keyframes ball-grid-beat { 50% { opacity: .7; } 100% { opacity: 1; } } .ball-grid-beat { width: 57px; } .ball-grid-beat > div:nth-child(1) { animation-delay: -.07s; -webkit-animation-delay: -.07s; animation-duration: 1.53s; -webkit-animation-duration: 1.53s; } .ball-grid-beat > div:nth-child(2) { animation-delay: .72s; -webkit-animation-delay: .72s; animation-duration: .94s; -webkit-animation-duration: .94s; } .ball-grid-beat > div:nth-child(3) { animation-delay: .11s; -webkit-animation-delay: .11s; animation-duration: 1.25s; -webkit-animation-duration: 1.25s; } .ball-grid-beat > div:nth-child(4) { animation-delay: .13s; -webkit-animation-delay: .13s; animation-duration: 1.01s; -webkit-animation-duration: 1.01s; } .ball-grid-beat > div:nth-child(5) { animation-delay: .1s; -webkit-animation-delay: .1s; animation-duration: 1.2s; -webkit-animation-duration: 1.2s; } .ball-grid-beat > div:nth-child(6) { animation-delay: .18s; -webkit-animation-delay: .18s; animation-duration: .97s; -webkit-animation-duration: .97s; } .ball-grid-beat > div:nth-child(7) { animation-delay: -.09s; -webkit-animation-delay: -.09s; animation-duration: .67s; -webkit-animation-duration: .67s; } .ball-grid-beat > div:nth-child(8) { animation-delay: .42s; -webkit-animation-delay: .42s; animation-duration: .92s; -webkit-animation-duration: .92s; } .ball-grid-beat > div:nth-child(9) { animation-delay: .52s; -webkit-animation-delay: .52s; animation-duration: 1.43s; -webkit-animation-duration: 1.43s; } .ball-grid-beat > div { animation-delay: 0; -webkit-animation-delay: 0; animation-iteration-count: infinite; -webkit-animation-iteration-count: infinite; animation-name: ball-grid-beat; -webkit-animation-name: ball-grid-beat; background-color: #fff; border-radius: 100%; display: inline-block; float: left; height: 15px; margin: 2px; width: 15px; -webkit-animation-fill-mode: both; animation-fill-mode: both; } @-webkit-keyframes ball-grid-pulse { 0% { transform: scale(1); -webkit-transform: scale(1); } 50% { opacity: .7; transform: scale(.5); -webkit-transform: scale(.5); } 100% { opacity: 1; transform: scale(1); -webkit-transform: scale(1); } } @keyframes ball-grid-pulse { 0% { transform: scale(1); -webkit-transform: scale(1); } 50% { opacity: .7; transform: scale(.5); -webkit-transform: scale(.5); } 100% { opacity: 1; transform: scale(1); -webkit-transform: scale(1); } } .ball-grid-pulse { width: 57px; } .ball-grid-pulse > div:nth-child(1) { animation-delay: .73s; -webkit-animation-delay: .73s; animation-duration: 1.3s; -webkit-animation-duration: 1.3s; } .ball-grid-pulse > div:nth-child(2) { animation-delay: .32s; -webkit-animation-delay: .32s; animation-duration: 1.3s; -webkit-animation-duration: 1.3s; } .ball-grid-pulse > div:nth-child(3) { animation-delay: .71s; -webkit-animation-delay: .71s; animation-duration: .88s; -webkit-animation-duration: .88s; } .ball-grid-pulse > div:nth-child(4) { animation-delay: .62s; -webkit-animation-delay: .62s; animation-duration: 1.06s; -webkit-animation-duration: 1.06s; } .ball-grid-pulse > div:nth-child(5) { animation-delay: .31s; -webkit-animation-delay: .31s; animation-duration: .62s; -webkit-animation-duration: .62s; } .ball-grid-pulse > div:nth-child(6) { animation-delay: -.14s; -webkit-animation-delay: -.14s; animation-duration: 1.48s; -webkit-animation-duration: 1.48s; } .ball-grid-pulse > div:nth-child(7) { animation-delay: -.1s; -webkit-animation-delay: -.1s; animation-duration: 1.47s; -webkit-animation-duration: 1.47s; } .ball-grid-pulse > div:nth-child(8) { animation-delay: .4s; -webkit-animation-delay: .4s; animation-duration: 1.49s; -webkit-animation-duration: 1.49s; } .ball-grid-pulse > div:nth-child(9) { animation-delay: .73s; -webkit-animation-delay: .73s; animation-duration: .7s; -webkit-animation-duration: .7s; } .ball-grid-pulse > div { animation-delay: 0; -webkit-animation-delay: 0; animation-iteration-count: infinite; -webkit-animation-iteration-count: infinite; animation-name: ball-grid-pulse; -webkit-animation-name: ball-grid-pulse; background-color: #fff; border-radius: 100%; display: inline-block; float: left; height: 15px; margin: 2px; width: 15px; -webkit-animation-fill-mode: both; animation-fill-mode: both; } @-webkit-keyframes ball-spin-fade-loader { 50% { opacity: .3; transform: scale(.4); -webkit-transform: scale(.4); } 100% { opacity: 1; transform: scale(1); -webkit-transform: scale(1); } } @keyframes ball-spin-fade-loader { 50% { opacity: .3; transform: scale(.4); -webkit-transform: scale(.4); } 100% { opacity: 1; transform: scale(1); -webkit-transform: scale(1); } } .ball-spin-fade-loader { left: -10px; position: relative; top: -10px; } .ball-spin-fade-loader > div:nth-child(1) { animation: ball-spin-fade-loader 1s -.96s infinite linear; -webkit-animation: ball-spin-fade-loader 1s -.96s infinite linear; left: 0; top: 25px; } .ball-spin-fade-loader > div:nth-child(2) { animation: ball-spin-fade-loader 1s -.84s infinite linear; -webkit-animation: ball-spin-fade-loader 1s -.84s infinite linear; left: 17.04545px; top: 17.04545px; } .ball-spin-fade-loader > div:nth-child(3) { animation: ball-spin-fade-loader 1s -.72s infinite linear; -webkit-animation: ball-spin-fade-loader 1s -.72s infinite linear; left: 25px; top: 0; } .ball-spin-fade-loader > div:nth-child(4) { animation: ball-spin-fade-loader 1s -.6s infinite linear; -webkit-animation: ball-spin-fade-loader 1s -.6s infinite linear; left: 17.04545px; top: -17.04545px; } .ball-spin-fade-loader > div:nth-child(5) { animation: ball-spin-fade-loader 1s -.48s infinite linear; -webkit-animation: ball-spin-fade-loader 1s -.48s infinite linear; left: 0; top: -25px; } .ball-spin-fade-loader > div:nth-child(6) { animation: ball-spin-fade-loader 1s -.36s infinite linear; -webkit-animation: ball-spin-fade-loader 1s -.36s infinite linear; left: -17.04545px; top: -17.04545px; } .ball-spin-fade-loader > div:nth-child(7) { animation: ball-spin-fade-loader 1s -.24s infinite linear; -webkit-animation: ball-spin-fade-loader 1s -.24s infinite linear; left: -25px; top: 0; } .ball-spin-fade-loader > div:nth-child(8) { animation: ball-spin-fade-loader 1s -.12s infinite linear; -webkit-animation: ball-spin-fade-loader 1s -.12s infinite linear; left: -17.04545px; top: 17.04545px; } .ball-spin-fade-loader > div { background-color: #fff; border-radius: 100%; height: 15px; margin: 2px; position: absolute; width: 15px; -webkit-animation-fill-mode: both; animation-fill-mode: both; } @-webkit-keyframes ball-spin-loader { 75% { opacity: .2; } 100% { opacity: 1; } } @keyframes ball-spin-loader { 75% { opacity: .2; } 100% { opacity: 1; } } .ball-spin-loader { position: relative; } .ball-spin-loader > span:nth-child(1) { animation: ball-spin-loader 2s .9s infinite linear; -webkit-animation: ball-spin-loader 2s .9s infinite linear; left: 0; top: 45px; } .ball-spin-loader > span:nth-child(2) { animation: ball-spin-loader 2s 1.8s infinite linear; -webkit-animation: ball-spin-loader 2s 1.8s infinite linear; left: 30.68182px; top: 30.68182px; } .ball-spin-loader > span:nth-child(3) { animation: ball-spin-loader 2s 2.7s infinite linear; -webkit-animation: ball-spin-loader 2s 2.7s infinite linear; left: 45px; top: 0; } .ball-spin-loader > span:nth-child(4) { animation: ball-spin-loader 2s 3.6s infinite linear; -webkit-animation: ball-spin-loader 2s 3.6s infinite linear; left: 30.68182px; top: -30.68182px; } .ball-spin-loader > span:nth-child(5) { animation: ball-spin-loader 2s 4.5s infinite linear; -webkit-animation: ball-spin-loader 2s 4.5s infinite linear; left: 0; top: -45px; } .ball-spin-loader > span:nth-child(6) { animation: ball-spin-loader 2s 5.4s infinite linear; -webkit-animation: ball-spin-loader 2s 5.4s infinite linear; left: -30.68182px; top: -30.68182px; } .ball-spin-loader > span:nth-child(7) { animation: ball-spin-loader 2s 6.3s infinite linear; -webkit-animation: ball-spin-loader 2s 6.3s infinite linear; left: -45px; top: 0; } .ball-spin-loader > span:nth-child(8) { animation: ball-spin-loader 2s 7.2s infinite linear; -webkit-animation: ball-spin-loader 2s 7.2s infinite linear; left: -30.68182px; top: 30.68182px; } .ball-spin-loader > div { background: green; border-radius: 100%; height: 15px; position: absolute; width: 15px; -webkit-animation-fill-mode: both; animation-fill-mode: both; } @-webkit-keyframes ball-zig { 33% { transform: translate(-15px, -30px); -webkit-transform: translate(-15px, -30px); } 66% { transform: translate(15px, -30px); -webkit-transform: translate(15px, -30px); } 100% { transform: translate(0, 0); -webkit-transform: translate(0, 0); } } @keyframes ball-zig { 33% { transform: translate(-15px, -30px); -webkit-transform: translate(-15px, -30px); } 66% { transform: translate(15px, -30px); -webkit-transform: translate(15px, -30px); } 100% { transform: translate(0, 0); -webkit-transform: translate(0, 0); } } @-webkit-keyframes ball-zag { 33% { transform: translate(15px, 30px); -webkit-transform: translate(15px, 30px); } 66% { transform: translate(-15px, 30px); -webkit-transform: translate(-15px, 30px); } 100% { transform: translate(0, 0); -webkit-transform: translate(0, 0); } } @keyframes ball-zag { 33% { transform: translate(15px, 30px); -webkit-transform: translate(15px, 30px); } 66% { transform: translate(-15px, 30px); -webkit-transform: translate(-15px, 30px); } 100% { transform: translate(0, 0); -webkit-transform: translate(0, 0); } } .ball-zig-zag { position: relative; transform: translate(-15px, -15px); -ms-transform: translate(-15px, -15px); -webkit-transform: translate(-15px, -15px); } .ball-zig-zag > div { background-color: #fff; border-radius: 100%; height: 15px; left: -7px; margin: 2px; margin-left: 15px; position: absolute; top: 4px; width: 15px; -webkit-animation-fill-mode: both; animation-fill-mode: both; } .ball-zig-zag > div:first-child { animation: ball-zig .7s 0s infinite linear; -webkit-animation: ball-zig .7s 0s infinite linear; } .ball-zig-zag > div:last-child { animation: ball-zag .7s 0s infinite linear; -webkit-animation: ball-zag .7s 0s infinite linear; } @-webkit-keyframes ball-zig-deflect { 17% { transform: translate(-15px, -30px); -webkit-transform: translate(-15px, -30px); } 34% { transform: translate(15px, -30px); -webkit-transform: translate(15px, -30px); } 50% { transform: translate(0, 0); -webkit-transform: translate(0, 0); } 67% { transform: translate(15px, -30px); -webkit-transform: translate(15px, -30px); } 84% { transform: translate(-15px, -30px); -webkit-transform: translate(-15px, -30px); } 100% { transform: translate(0, 0); -webkit-transform: translate(0, 0); } } @keyframes ball-zig-deflect { 17% { transform: translate(-15px, -30px); -webkit-transform: translate(-15px, -30px); } 34% { transform: translate(15px, -30px); -webkit-transform: translate(15px, -30px); } 50% { transform: translate(0, 0); -webkit-transform: translate(0, 0); } 67% { transform: translate(15px, -30px); -webkit-transform: translate(15px, -30px); } 84% { transform: translate(-15px, -30px); -webkit-transform: translate(-15px, -30px); } 100% { transform: translate(0, 0); -webkit-transform: translate(0, 0); } } @-webkit-keyframes ball-zag-deflect { 17% { transform: translate(15px, 30px); -webkit-transform: translate(15px, 30px); } 34% { transform: translate(-15px, 30px); -webkit-transform: translate(-15px, 30px); } 50% { transform: translate(0, 0); -webkit-transform: translate(0, 0); } 67% { transform: translate(-15px, 30px); -webkit-transform: translate(-15px, 30px); } 84% { transform: translate(15px, 30px); -webkit-transform: translate(15px, 30px); } 100% { transform: translate(0, 0); -webkit-transform: translate(0, 0); } } @keyframes ball-zag-deflect { 17% { transform: translate(15px, 30px); -webkit-transform: translate(15px, 30px); } 34% { transform: translate(-15px, 30px); -webkit-transform: translate(-15px, 30px); } 50% { transform: translate(0, 0); -webkit-transform: translate(0, 0); } 67% { transform: translate(-15px, 30px); -webkit-transform: translate(-15px, 30px); } 84% { transform: translate(15px, 30px); -webkit-transform: translate(15px, 30px); } 100% { transform: translate(0, 0); -webkit-transform: translate(0, 0); } } .ball-zig-zag-deflect { position: relative; transform: translate(-15px, -15px); -ms-transform: translate(-15px, -15px); -webkit-transform: translate(-15px, -15px); } .ball-zig-zag-deflect > div { background-color: #fff; border-radius: 100%; height: 15px; left: -7px; margin: 2px; margin-left: 15px; position: absolute; top: 4px; width: 15px; -webkit-animation-fill-mode: both; animation-fill-mode: both; } .ball-zig-zag-deflect > div:first-child { animation: ball-zig-deflect 1.5s 0s infinite linear; -webkit-animation: ball-zig-deflect 1.5s 0s infinite linear; } .ball-zig-zag-deflect > div:last-child { animation: ball-zag-deflect 1.5s 0s infinite linear; -webkit-animation: ball-zag-deflect 1.5s 0s infinite linear; } /** * Lines */ @-webkit-keyframes line-scale { 0% { transform: scaley(1); -webkit-transform: scaley(1); } 50% { transform: scaley(.4); -webkit-transform: scaley(.4); } 100% { transform: scaley(1); -webkit-transform: scaley(1); } } @keyframes line-scale { 0% { transform: scaley(1); -webkit-transform: scaley(1); } 50% { transform: scaley(.4); -webkit-transform: scaley(.4); } 100% { transform: scaley(1); -webkit-transform: scaley(1); } } .line-scale > div:nth-child(1) { animation: line-scale 1s -.4s infinite cubic-bezier(.2, .68, .18, 1.08); -webkit-animation: line-scale 1s -.4s infinite cubic-bezier(.2, .68, .18, 1.08); } .line-scale > div:nth-child(2) { animation: line-scale 1s -.3s infinite cubic-bezier(.2, .68, .18, 1.08); -webkit-animation: line-scale 1s -.3s infinite cubic-bezier(.2, .68, .18, 1.08); } .line-scale > div:nth-child(3) { animation: line-scale 1s -.2s infinite cubic-bezier(.2, .68, .18, 1.08); -webkit-animation: line-scale 1s -.2s infinite cubic-bezier(.2, .68, .18, 1.08); } .line-scale > div:nth-child(4) { animation: line-scale 1s -.1s infinite cubic-bezier(.2, .68, .18, 1.08); -webkit-animation: line-scale 1s -.1s infinite cubic-bezier(.2, .68, .18, 1.08); } .line-scale > div:nth-child(5) { animation: line-scale 1s 0s infinite cubic-bezier(.2, .68, .18, 1.08); -webkit-animation: line-scale 1s 0s infinite cubic-bezier(.2, .68, .18, 1.08); } .line-scale > div { background-color: #fff; border-radius: 2px; display: inline-block; height: 35px; margin: 2px; width: 4px; -webkit-animation-fill-mode: both; animation-fill-mode: both; } @-webkit-keyframes line-scale-party { 0% { transform: scale(1); -webkit-transform: scale(1); } 50% { transform: scale(.5); -webkit-transform: scale(.5); } 100% { transform: scale(1); -webkit-transform: scale(1); } } @keyframes line-scale-party { 0% { transform: scale(1); -webkit-transform: scale(1); } 50% { transform: scale(.5); -webkit-transform: scale(.5); } 100% { transform: scale(1); -webkit-transform: scale(1); } } .line-scale-party > div:nth-child(1) { animation-delay: .23s; -webkit-animation-delay: .23s; animation-duration: 1.1s; -webkit-animation-duration: 1.1s; } .line-scale-party > div:nth-child(2) { animation-delay: .09s; -webkit-animation-delay: .09s; animation-duration: 1s; -webkit-animation-duration: 1s; } .line-scale-party > div:nth-child(3) { animation-delay: .44s; -webkit-animation-delay: .44s; animation-duration: .65s; -webkit-animation-duration: .65s; } .line-scale-party > div:nth-child(4) { animation-delay: -.12s; -webkit-animation-delay: -.12s; animation-duration: 1.01s; -webkit-animation-duration: 1.01s; } .line-scale-party > div { animation-delay: 0; -webkit-animation-delay: 0; animation-iteration-count: infinite; -webkit-animation-iteration-count: infinite; animation-name: line-scale-party; -webkit-animation-name: line-scale-party; background-color: #fff; border-radius: 2px; display: inline-block; height: 35px; margin: 2px; width: 4px; -webkit-animation-fill-mode: both; animation-fill-mode: both; } @-webkit-keyframes line-scale-pulse-out { 0% { transform: scaley(1); -webkit-transform: scaley(1); } 50% { transform: scaley(.4); -webkit-transform: scaley(.4); } 100% { transform: scaley(1); -webkit-transform: scaley(1); } } @keyframes line-scale-pulse-out { 0% { transform: scaley(1); -webkit-transform: scaley(1); } 50% { transform: scaley(.4); -webkit-transform: scaley(.4); } 100% { transform: scaley(1); -webkit-transform: scaley(1); } } .line-scale-pulse-out > div { animation: line-scale-pulse-out .9s -.6s infinite cubic-bezier(.85, .25, .37, .85); -webkit-animation: line-scale-pulse-out .9s -.6s infinite cubic-bezier(.85, .25, .37, .85); background-color: #fff; border-radius: 2px; display: inline-block; height: 35px; margin: 2px; width: 4px; -webkit-animation-fill-mode: both; animation-fill-mode: both; } .line-scale-pulse-out > div:nth-child(2), .line-scale-pulse-out > div:nth-child(4) { animation-delay: -.4s !important; -webkit-animation-delay: -.4s !important; } .line-scale-pulse-out > div:nth-child(1), .line-scale-pulse-out > div:nth-child(5) { animation-delay: -.2s !important; -webkit-animation-delay: -.2s !important; } @-webkit-keyframes line-scale-pulse-out-rapid { 0% { transform: scaley(1); -webkit-transform: scaley(1); } 80% { transform: scaley(.3); -webkit-transform: scaley(.3); } 90% { transform: scaley(1); -webkit-transform: scaley(1); } } @keyframes line-scale-pulse-out-rapid { 0% { transform: scaley(1); -webkit-transform: scaley(1); } 80% { transform: scaley(.3); -webkit-transform: scaley(.3); } 90% { transform: scaley(1); -webkit-transform: scaley(1); } } .line-scale-pulse-out-rapid > div { animation: line-scale-pulse-out-rapid .9s -.5s infinite cubic-bezier(.11, .49, .38, .78); -webkit-animation: line-scale-pulse-out-rapid .9s -.5s infinite cubic-bezier(.11, .49, .38, .78); background-color: #fff; border-radius: 2px; display: inline-block; height: 35px; margin: 2px; width: 4px; -webkit-animation-fill-mode: both; animation-fill-mode: both; } .line-scale-pulse-out-rapid > div:nth-child(2), .line-scale-pulse-out-rapid > div:nth-child(4) { animation-delay: -.25s !important; -webkit-animation-delay: -.25s !important; } .line-scale-pulse-out-rapid > div:nth-child(1), .line-scale-pulse-out-rapid > div:nth-child(5) { animation-delay: 0s !important; -webkit-animation-delay: 0s !important; } @-webkit-keyframes line-spin-fade-loader { 50% { opacity: .3; } 100% { opacity: 1; } } @keyframes line-spin-fade-loader { 50% { opacity: .3; } 100% { opacity: 1; } } .line-spin-fade-loader { left: -4px; position: relative; top: -10px; } .line-spin-fade-loader > div:nth-child(1) { animation: line-spin-fade-loader 1.2s -.84s infinite ease-in-out; -webkit-animation: line-spin-fade-loader 1.2s -.84s infinite ease-in-out; left: 0; top: 20px; } .line-spin-fade-loader > div:nth-child(2) { animation: line-spin-fade-loader 1.2s -.72s infinite ease-in-out; -webkit-animation: line-spin-fade-loader 1.2s -.72s infinite ease-in-out; left: 13.63636px; top: 13.63636px; transform: rotate(-45deg); -ms-transform: rotate(-45deg); -webkit-transform: rotate(-45deg); } .line-spin-fade-loader > div:nth-child(3) { animation: line-spin-fade-loader 1.2s -.6s infinite ease-in-out; -webkit-animation: line-spin-fade-loader 1.2s -.6s infinite ease-in-out; left: 20px; top: 0; transform: rotate(90deg); -ms-transform: rotate(90deg); -webkit-transform: rotate(90deg); } .line-spin-fade-loader > div:nth-child(4) { animation: line-spin-fade-loader 1.2s -.48s infinite ease-in-out; -webkit-animation: line-spin-fade-loader 1.2s -.48s infinite ease-in-out; left: 13.63636px; top: -13.63636px; transform: rotate(45deg); -ms-transform: rotate(45deg); -webkit-transform: rotate(45deg); } .line-spin-fade-loader > div:nth-child(5) { animation: line-spin-fade-loader 1.2s -.36s infinite ease-in-out; -webkit-animation: line-spin-fade-loader 1.2s -.36s infinite ease-in-out; left: 0; top: -20px; } .line-spin-fade-loader > div:nth-child(6) { animation: line-spin-fade-loader 1.2s -.24s infinite ease-in-out; -webkit-animation: line-spin-fade-loader 1.2s -.24s infinite ease-in-out; left: -13.63636px; top: -13.63636px; transform: rotate(-45deg); -ms-transform: rotate(-45deg); -webkit-transform: rotate(-45deg); } .line-spin-fade-loader > div:nth-child(7) { animation: line-spin-fade-loader 1.2s -.12s infinite ease-in-out; -webkit-animation: line-spin-fade-loader 1.2s -.12s infinite ease-in-out; left: -20px; top: 0; transform: rotate(90deg); -ms-transform: rotate(90deg); -webkit-transform: rotate(90deg); } .line-spin-fade-loader > div:nth-child(8) { animation: line-spin-fade-loader 1.2s 0s infinite ease-in-out; -webkit-animation: line-spin-fade-loader 1.2s 0s infinite ease-in-out; left: -13.63636px; top: 13.63636px; transform: rotate(45deg); -ms-transform: rotate(45deg); -webkit-transform: rotate(45deg); } .line-spin-fade-loader > div { background-color: #fff; border-radius: 2px; height: 35px; height: 15px; margin: 2px; position: absolute; width: 4px; width: 5px; -webkit-animation-fill-mode: both; animation-fill-mode: both; } /** * Misc */ @-webkit-keyframes triangle-skew-spin { 25% { transform: perspective(100px) rotateX(180deg) rotateY(0); -webkit-transform: perspective(100px) rotateX(180deg) rotateY(0); } 50% { transform: perspective(100px) rotateX(180deg) rotateY(180deg); -webkit-transform: perspective(100px) rotateX(180deg) rotateY(180deg); } 75% { transform: perspective(100px) rotateX(0) rotateY(180deg); -webkit-transform: perspective(100px) rotateX(0) rotateY(180deg); } 100% { transform: perspective(100px) rotateX(0) rotateY(0); -webkit-transform: perspective(100px) rotateX(0) rotateY(0); } } @keyframes triangle-skew-spin { 25% { transform: perspective(100px) rotateX(180deg) rotateY(0); -webkit-transform: perspective(100px) rotateX(180deg) rotateY(0); } 50% { transform: perspective(100px) rotateX(180deg) rotateY(180deg); -webkit-transform: perspective(100px) rotateX(180deg) rotateY(180deg); } 75% { transform: perspective(100px) rotateX(0) rotateY(180deg); -webkit-transform: perspective(100px) rotateX(0) rotateY(180deg); } 100% { transform: perspective(100px) rotateX(0) rotateY(0); -webkit-transform: perspective(100px) rotateX(0) rotateY(0); } } .triangle-skew-spin > div { animation: triangle-skew-spin 3s 0s cubic-bezier(.09, .57, .49, .9) infinite; -webkit-animation: triangle-skew-spin 3s 0s cubic-bezier(.09, .57, .49, .9) infinite; border-bottom: 20px solid #fff; border-left: 20px solid transparent; border-right: 20px solid transparent; height: 0; width: 0; -webkit-animation-fill-mode: both; animation-fill-mode: both; } @-webkit-keyframes square-spin { 25% { transform: perspective(100px) rotateX(180deg) rotateY(0); -webkit-transform: perspective(100px) rotateX(180deg) rotateY(0); } 50% { transform: perspective(100px) rotateX(180deg) rotateY(180deg); -webkit-transform: perspective(100px) rotateX(180deg) rotateY(180deg); } 75% { transform: perspective(100px) rotateX(0) rotateY(180deg); -webkit-transform: perspective(100px) rotateX(0) rotateY(180deg); } 100% { transform: perspective(100px) rotateX(0) rotateY(0); -webkit-transform: perspective(100px) rotateX(0) rotateY(0); } } @keyframes square-spin { 25% { transform: perspective(100px) rotateX(180deg) rotateY(0); -webkit-transform: perspective(100px) rotateX(180deg) rotateY(0); } 50% { transform: perspective(100px) rotateX(180deg) rotateY(180deg); -webkit-transform: perspective(100px) rotateX(180deg) rotateY(180deg); } 75% { transform: perspective(100px) rotateX(0) rotateY(180deg); -webkit-transform: perspective(100px) rotateX(0) rotateY(180deg); } 100% { transform: perspective(100px) rotateX(0) rotateY(0); -webkit-transform: perspective(100px) rotateX(0) rotateY(0); } } .square-spin > div { animation: square-spin 3s 0s cubic-bezier(.09, .57, .49, .9) infinite; -webkit-animation: square-spin 3s 0s cubic-bezier(.09, .57, .49, .9) infinite; background: #fff; border: 1px solid red; height: 50px; width: 50px; -webkit-animation-fill-mode: both; animation-fill-mode: both; } @-webkit-keyframes rotate_pacman_half_up { 0% { transform: rotate(270deg); -webkit-transform: rotate(270deg); } 50% { transform: rotate(360deg); -webkit-transform: rotate(360deg); } 100% { transform: rotate(270deg); -webkit-transform: rotate(270deg); } } @keyframes rotate_pacman_half_up { 0% { transform: rotate(270deg); -webkit-transform: rotate(270deg); } 50% { transform: rotate(360deg); -webkit-transform: rotate(360deg); } 100% { transform: rotate(270deg); -webkit-transform: rotate(270deg); } } @-webkit-keyframes rotate_pacman_half_down { 0% { transform: rotate(90deg); -webkit-transform: rotate(90deg); } 50% { transform: rotate(0deg); -webkit-transform: rotate(0deg); } 100% { transform: rotate(90deg); -webkit-transform: rotate(90deg); } } @keyframes rotate_pacman_half_down { 0% { transform: rotate(90deg); -webkit-transform: rotate(90deg); } 50% { transform: rotate(0deg); -webkit-transform: rotate(0deg); } 100% { transform: rotate(90deg); -webkit-transform: rotate(90deg); } } @-webkit-keyframes pacman-balls { 75% { opacity: .7; } 100% { transform: translate(-100px, -6.25px); -webkit-transform: translate(-100px, -6.25px); } } @keyframes pacman-balls { 75% { opacity: .7; } 100% { transform: translate(-100px, -6.25px); -webkit-transform: translate(-100px, -6.25px); } } .pacman { position: relative; } .pacman > div:nth-child(2) { animation: pacman-balls 1s -.99s infinite linear; -webkit-animation: pacman-balls 1s -.99s infinite linear; } .pacman > div:nth-child(3) { animation: pacman-balls 1s -.66s infinite linear; -webkit-animation: pacman-balls 1s -.66s infinite linear; } .pacman > div:nth-child(4) { animation: pacman-balls 1s -.33s infinite linear; -webkit-animation: pacman-balls 1s -.33s infinite linear; } .pacman > div:nth-child(5) { animation: pacman-balls 1s 0s infinite linear; -webkit-animation: pacman-balls 1s 0s infinite linear; } .pacman > div:first-of-type { animation: rotate_pacman_half_up .5s 0s infinite; -webkit-animation: rotate_pacman_half_up .5s 0s infinite; border-bottom: 25px solid #fff; border-left: 25px solid #fff; border-radius: 25px; border-right: 25px solid transparent; border-top: 25px solid #fff; height: 0; left: -30px; position: relative; width: 0; } .pacman > div:nth-child(2) { animation: rotate_pacman_half_down .5s 0s infinite; -webkit-animation: rotate_pacman_half_down .5s 0s infinite; border-bottom: 25px solid #fff; border-left: 25px solid #fff; border-radius: 25px; border-right: 25px solid transparent; border-top: 25px solid #fff; height: 0; left: -30px; margin-top: -50px; position: relative; width: 0; } .pacman > div:nth-child(3), .pacman > div:nth-child(4), .pacman > div:nth-child(5), .pacman > div:nth-child(6) { background-color: #fff; border-radius: 100%; height: 15px; height: 10px; left: 70px; margin: 2px; position: absolute; top: 25px; transform: translate(0, -6.25px); -ms-transform: translate(0, -6.25px); -webkit-transform: translate(0, -6.25px); width: 15px; width: 10px; } @-webkit-keyframes cube-transition { 25% { transform: translateX(50px) scale(.5) rotate(-90deg); -webkit-transform: translateX(50px) scale(.5) rotate(-90deg); } 50% { transform: translate(50px, 50px) rotate(-180deg); -webkit-transform: translate(50px, 50px) rotate(-180deg); } 75% { transform: translateY(50px) scale(.5) rotate(-270deg); -webkit-transform: translateY(50px) scale(.5) rotate(-270deg); } 100% { transform: rotate(-360deg); -webkit-transform: rotate(-360deg); } } @keyframes cube-transition { 25% { transform: translateX(50px) scale(.5) rotate(-90deg); -webkit-transform: translateX(50px) scale(.5) rotate(-90deg); } 50% { transform: translate(50px, 50px) rotate(-180deg); -webkit-transform: translate(50px, 50px) rotate(-180deg); } 75% { transform: translateY(50px) scale(.5) rotate(-270deg); -webkit-transform: translateY(50px) scale(.5) rotate(-270deg); } 100% { transform: rotate(-360deg); -webkit-transform: rotate(-360deg); } } .cube-transition { position: relative; transform: translate(-25px, -25px); -ms-transform: translate(-25px, -25px); -webkit-transform: translate(-25px, -25px); } .cube-transition > div { animation: cube-transition 1.6s 0s infinite ease-in-out; -webkit-animation: cube-transition 1.6s 0s infinite ease-in-out; background-color: #fff; height: 10px; left: -5px; position: absolute; top: -5px; width: 10px; -webkit-animation-fill-mode: both; animation-fill-mode: both; } .cube-transition > div:last-child { animation-delay: -.8s; -webkit-animation-delay: -.8s; } @-webkit-keyframes spin-rotate { 0% { transform: rotate(0deg); -webkit-transform: rotate(0deg); } 50% { transform: rotate(180deg); -webkit-transform: rotate(180deg); } 100% { transform: rotate(360deg); -webkit-transform: rotate(360deg); } } @keyframes spin-rotate { 0% { transform: rotate(0deg); -webkit-transform: rotate(0deg); } 50% { transform: rotate(180deg); -webkit-transform: rotate(180deg); } 100% { transform: rotate(360deg); -webkit-transform: rotate(360deg); } } .semi-circle-spin { height: 35px; overflow: hidden; position: relative; width: 35px; } .semi-circle-spin > div { animation: spin-rotate .6s 0s infinite linear; -webkit-animation: spin-rotate .6s 0s infinite linear; background-image: -webkit-linear-gradient(transparent 0%, transparent 70%, #fff 30%, #fff 100%); background-image: linear-gradient(transparent 0%, transparent 70%, #fff 30%, #fff 100%); border-radius: 100%; border-width: 0; height: 100%; position: absolute; width: 100%; }