* { padding: 0; margin: 0; box-sizing: inherit } html { font-size: 10px } body { box-sizing: border-box; background: #f2f2f2 } .red { background-color: #D50F25 } .yellow { background-color: #EEB211 } .green { background-color: #009925 } /* or 009939? */ .blue { background-color: #3369E8 } .wrap { margin: 0 auto; line-height: 6rem; text-align: center; } .loader { position: absolute; margin: 0 auto 3rem auto; overflow: hidden; } .loader > div { position: absolute; top: 0; left: 0; height: 100%; width: 100%; } /* BAR */ .bar { width: 100%; height: .5rem; top: 0; left: 0; } .go .loader.bar > div{ animation: loading-bar 2s infinite backwards ease-out; } .bar > div { transform: scaleX(1); } .loader.bar div:nth-child(1) { animation-delay: -1.5s; } .loader.bar div:nth-child(2) { animation-delay: -1s; } .loader.bar div:nth-child(3) { animation-delay: -.5s; } .loader.bar div:nth-child(4) { animation-delay: 0s; } @keyframes loading-bar { 0% { transform: scaleX(0); z-index: 15; } 22% { transform: scaleX(0); z-index: 15; } 50% { transform: scaleX(1); } 90% { transform: scaleX(1); z-index: 1; } 100% { transform: scaleX(1); z-index: 0; } } /* CIRCLE */ .circle { height: 2rem; width: 2rem; border-radius: 50%; transform: scale(1); top: 3rem; right: 3rem; margin: auto } .circle > div { height: 100%; width: 100%; border-radius: 50%; } .go .loader.circle > div { animation: loading-circle 2s infinite backwards ease-out; } .loader.circle div:nth-child(1) { animation-delay: -1.5s; transform: translateX(-500%); } .loader.circle div:nth-child(2) { animation-delay: -1s; transform: translateY(500%); } .loader.circle div:nth-child(3) { animation-delay: -.5s; transform: translateX(500%); } .loader.circle div:nth-child(4) { animation-delay: 0s; transform: translateY(-500%); } @keyframes loading-circle { 0% { z-index: 10; } 75% { transform: translateX(0); z-index: 1; } 100% { transform: translateX(0); z-index: 0; } } /* ORBIT */ .orbit { height: 20rem; width: 20rem; top: 0; left: 0; bottom: 0; right: 0; margin: auto; overflow: visible; background: #111; border-radius: 50%; } .orbit > div { top: 2.5rem; left: 2.5rem; font-size: 1rem; height: 15rem; width: 15rem; transform-origin: center center; } .orbit > div::before { position: absolute; left: calc(50% - .5em); display: block; content: ''; height: 1em; width: 1em; border-radius: 50%; transform: scale(1); } .orbit > div:nth-child(1)::before { background-color: #3369E8; } .orbit > div:nth-child(2)::before { background-color: #D50F25; } .orbit > div:nth-child(3)::before { background-color: #009925; } .orbit > div:nth-child(4)::before { background-color: #EEB211; } .go .loader.orbit > div { animation: loading-orbit 6s infinite linear; } .go .loader.orbit > div::before { animation: loading-orbit-before 2s infinite ease-in-out; } .loader.orbit > div:nth-child(1) { animation-delay: 0s; } .loader.orbit > div:nth-child(2) { animation-delay: -.75s; } .loader.orbit > div:nth-child(3) { animation-delay: -1.5s; } .loader.orbit > div:nth-child(4) { animation-delay: -2.25s; } .loader.orbit > div:nth-child(1)::before { animation-delay: 0s; } .loader.orbit > div:nth-child(2)::before { animation-delay: -.5s; } .loader.orbit > div:nth-child(3)::before { animation-delay: -1s; } .loader.orbit > div:nth-child(4)::before { animation-delay: -1.5s; } @keyframes loading-orbit { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } @keyframes loading-orbit-before { 0% { height: 1em; width: 1em; transform: translate3d(0,0,0); z-index: 5; } 5%{ height: 1.25em; width: 1.25em; } 25% { height: 2em; width: 2em; z-index: 10; } 50% { transform: translate3d(1rem,15rem,0); z-index: 0; height: 1em; width: 1em; } 100% { transform: translate3d(0,0,0); z-index: 0; height: 1em; width: 1em; } }