<div class="content">
<div class="block pattern1">
<div class="loading1">
<div class="bar bar1"></div>
<div class="bar bar2"></div>
<div class="bar bar3"></div>
<div class="bar bar4"></div>
<div class="bar bar5"></div>
</div>
</div>
<div class="block pattern2">
<div class="loading2"><span></span></div>
</div>
<div class="block pattern3">
<div class="loading3"></div>
</div>
<div class="block pattern4">
<div class="loading4"></div>
<dis class="loading4-shadow"></dis>
</div>
<div class="block pattern5">
<div class="loading5"><div></div></div>
</div>
<div class="block pattern6">
<div class="loading6"><span></span></div>
</div>
</div>
* {
box-sizing: border-box;
}
body {
margin: 0;
padding: 0;
}
.content {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
.block {
display: flex;
align-items: center;
justify-content: center;
padding: 56px 0;
min-height: 190px;
}
.pattern1 {
background: #3c2c3e;
}
.loading1 {
display: flex;
justify-content: space-between;
width: 80px;
height: 80px;
}
.bar {
width: 12%;
height: 100%;
background-color: #ed6663;
transform-origin: center;
}
@keyframes barAnimation1 {
0% {
transform: scaleY(1);
}
100% {
transform: scaleY(0.2);
}
}
@keyframes barAnimation2 {
0% {
transform: scaleY(0.6);
}
25% {
transform: scaleY(1);
}
50% {
transform: scaleY(0.6);
}
75% {
transform: scaleY(0.2);
}
100% {
transform: scaleY(0.6);
}
}
@keyframes barAnimation3 {
0% {
transform: scaleY(0.2);
}
100% {
transform: scaleY(1);
}
}
.bar1,
.bar5 {
animation: 0.5s linear infinite alternate barAnimation3;
}
.bar2,
.bar4 {
animation: 1s linear infinite barAnimation2;
}
.bar3 {
animation: 0.5s linear infinite alternate barAnimation1;
}
.pattern2 {
background: #f5c6a5;
}
.loading2 {
position: relative;
width: 80px;
height: 80px;
border: 5px solid #852747;
border-radius: 50%;
&::before,
&::after {
content: "";
display: block;
width: 3px;
background: #852747;
position: absolute;
left: 0;
right: 0;
margin: auto;
transform-origin: center 100%;
}
&::before {
height: 32px;
top: 8px;
animation: clockHands 3s infinite linear;
}
&::after {
height: 20px;
top: 20px;
animation: clockHands 5s infinite linear;
}
}
@keyframes clockHands {
from {
transform: rotate(0deg);
}
to {
transform: rotate(359deg);
}
}
.pattern3 {
background: #1c0c5b;
}
.loading3 {
position: relative;
width: 80px;
height: 80px;
border: 1px solid #c996cc;
border-radius: 50%;
animation: clockHands 3s infinite linear;
&::before {
content: "";
display: block;
width: 12px;
height: 12px;
background: #c996cc;
border-radius: 50%;
position: absolute;
top: -6px;
right: 0;
left: 0;
margin: auto;
}
&::after {
content: "";
display: block;
width: 25px;
height: 25px;
border-radius: 50%;
background: #c996cc;
position: absolute;
top: 0;
bottom: 0;
right: 0;
left: 0;
margin: auto;
}
}
@keyframes pattern3 {
from {
transform: rotate(0deg);
}
to {
transform: rotate(359deg);
}
}
.pattern4 {
background: #f6eabe;
position: relative;
}
.loading4 {
width: 40px;
height: 40px;
background: #87aaaa;
border-radius: 50%;
position: relative;
top: -30px;
animation: pattern4 0.5s alternate infinite ease;
z-index: 2;
}
@keyframes pattern4 {
0% {
border-radius: 150px 150px 75px 75px;
transform: scaleX(1.5) scaleY(0.7) translateY(120px);
}
23% {
border-radius: 50%;
transform: scaleX(1) scaleY(1) translateY(56px);
}
100% {
transform: scaleX(1) scaleY(1) translateY(0);
}
}
.loading4-shadow {
width: 40px;
height: 5px;
border-radius: 50%;
background: rgba(0, 0, 0, 0.5);
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
margin: auto;
z-index: 1;
animation: pattern4Shadow 0.5s alternate infinite ease;
}
@keyframes pattern4Shadow {
0% {
transform: scaleX(1.5) translateY(64px);
}
23% {
transform: scaleX(1) translateY(64px);
opacity: 0.7;
}
100% {
transform: scaleX(0.4) translateY(64px);
opacity: 0.4;
}
}
.pattern5 {
background: #e7e6e1;
}
.loading5 {
position: relative;
width: 120px;
height: 80px;
border: 6px solid #f2a154;
border-bottom: 16px solid #f2a154;
perspective: 450px;
transform: rotateX(45deg);
transform-style: preserve-3d;
div {
position: absolute;
top: -6px;
left: -6px;
width: 60px;
height: 80px;
border: 6px solid #f2a154;
border-right: 3px solid #f2a154;
border-bottom: 16px solid #f2a154;
background: #e7e6e1;
transform-origin: right center;
animation: pattern5 1.8s cubic-bezier(0, 0.39, 1, 0.68) infinite;
transform-style: preserve-3d;
}
}
@keyframes pattern5 {
0% {
transform: rotateY(0deg);
}
30% {
transform: rotateY(170deg);
}
80% {
transform: rotateY(180deg);
}
100% {
transform: rotateY(180deg);
}
}
.pattern6 {
background: #A2D2FF;
}
.loading6 {
position: relative;
width: 80px;
height: 80px;
&::before,
&::after {
content: "";
}
&::before,
&::after,
span {
position: absolute;
top: 0;
bottom: 0;
right: 0;
left: 0;
margin: auto;
display: block;
width: 30px;
height: 30px;
border-radius: 50%;
background: #FF865E;
animation: pattern6 0.5s alternate infinite ease;
}
&::before {
transform: translate3d(0, -40px, 0);
}
&::after {
transform: translate3d(-40px, 40px, 0);
}
span {
transform: translate3d(40px, 40px, 0);
}
}
@keyframes pattern6 {
from {
transform: translate3d(0, 0, 0);
}
}
View Compiled
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.