CSS dot loaders used to show a loading state when retrieving data from a server or performing time-consuming calculations. They are usually animated to indicate that something is happening.
<div class="loaders-container-03">
<div>
<div class="dot-loader-1">
<span></span>
<span></span>
<span></span>
</div>
</div>
<div>
<span class="dot-loader-2"> </span>
</div>
<div>
<span class="dot-loader-3"> </span>
</div>
<div>
<span class="dot-loader-4"> </span>
</div>
<div>
<span class="dot-loader-5"> </span>
</div>
<div>
<span class="dot-loader-6"> </span>
</div>
</div>
.dot-loader-1 {
display: flex;
justify-content: center;
flex-direction: row;
}
.dot-loader-1 span {
width: 16px;
height: 16px;
margin: 1rem 0.3rem;
background: #fff;
border-radius: 50%;
-webkit-animation: 0.9s bounce infinite alternate;
animation: 0.9s bounce infinite alternate;
}
.dot-loader-1 span:nth-child(2) {
-webkit-animation-delay: 0.3s;
animation-delay: 0.3s;
}
.dot-loader-1 span:nth-child(3) {
-webkit-animation-delay: 0.6s;
animation-delay: 0.6s;
}
.dot-loader-2 {
width: 12px;
height: 12px;
border-radius: 50%;
display: inline-block;
position: relative;
color: #fff;
-webkit-animation: animloader42 1s linear infinite alternate;
animation: animloader42 1s linear infinite alternate;
}
.dot-loader-3 {
width: 16px;
height: 16px;
border-radius: 50%;
display: inline-block;
position: relative;
background: #fff;
box-shadow: -24px 0 #fff, 24px 0 #fff;
-webkit-animation: shadowPulse 2s linear infinite;
animation: shadowPulse 2s linear infinite;
}
.dot-loader-4 {
width: 10px;
height: 10px;
border-radius: 50%;
display: inline-block;
position: relative;
color: #fff;
left: -100px;
-webkit-animation: shadowRolling 2s linear infinite;
animation: shadowRolling 2s linear infinite;
}
.dot-loader-5 {
width: 12px;
height: 12px;
border-radius: 50%;
display: inline-block;
position: relative;
color: #fff;
-webkit-animation: animloader44 2s linear infinite;
animation: animloader44 2s linear infinite;
}
.dot-loader-6 {
width: 12px;
height: 12px;
border-radius: 50%;
display: inline-block;
position: relative;
color: #fff;
-webkit-animation: animloader45 1s linear infinite alternate;
animation: animloader45 1s linear infinite alternate;
}
@-webkit-keyframes bounce {
to {
opacity: 0.3;
transform: translate3d(0, -1rem, 0);
}
}
@keyframes bounce {
to {
opacity: 0.3;
transform: translate3d(0, -1rem, 0);
}
}
@-webkit-keyframes animloader45 {
0% {
box-shadow: -38px -12px, -14px 0, 14px 0, 38px 0;
}
33% {
box-shadow: -38px 0px, -14px -12px, 14px 0, 38px 0;
}
66% {
box-shadow: -38px 0px, -14px 0, 14px -12px, 38px 0;
}
100% {
box-shadow: -38px 0, -14px 0, 14px 0, 38px -12px;
}
}
@keyframes animloader45 {
0% {
box-shadow: -38px -12px, -14px 0, 14px 0, 38px 0;
}
33% {
box-shadow: -38px 0px, -14px -12px, 14px 0, 38px 0;
}
66% {
box-shadow: -38px 0px, -14px 0, 14px -12px, 38px 0;
}
100% {
box-shadow: -38px 0, -14px 0, 14px 0, 38px -12px;
}
}
@-webkit-keyframes animloader44 {
0% {
box-shadow: 14px 0 0 -2px, 38px 0 0 -2px, -14px 0 0 -2px, -38px 0 0 -2px;
}
25% {
box-shadow: 14px 0 0 -2px, 38px 0 0 -2px, -14px 0 0 -2px, -38px 0 0 2px;
}
50% {
box-shadow: 14px 0 0 -2px, 38px 0 0 -2px, -14px 0 0 2px, -38px 0 0 -2px;
}
75% {
box-shadow: 14px 0 0 2px, 38px 0 0 -2px, -14px 0 0 -2px, -38px 0 0 -2px;
}
100% {
box-shadow: 14px 0 0 -2px, 38px 0 0 2px, -14px 0 0 -2px, -38px 0 0 -2px;
}
}
@keyframes animloader44 {
0% {
box-shadow: 14px 0 0 -2px, 38px 0 0 -2px, -14px 0 0 -2px, -38px 0 0 -2px;
}
25% {
box-shadow: 14px 0 0 -2px, 38px 0 0 -2px, -14px 0 0 -2px, -38px 0 0 2px;
}
50% {
box-shadow: 14px 0 0 -2px, 38px 0 0 -2px, -14px 0 0 2px, -38px 0 0 -2px;
}
75% {
box-shadow: 14px 0 0 2px, 38px 0 0 -2px, -14px 0 0 -2px, -38px 0 0 -2px;
}
100% {
box-shadow: 14px 0 0 -2px, 38px 0 0 2px, -14px 0 0 -2px, -38px 0 0 -2px;
}
}
@-webkit-keyframes shadowRolling {
0% {
box-shadow: 0px 0 rgba(255, 255, 255, 0), 0px 0 rgba(255, 255, 255, 0),
0px 0 rgba(255, 255, 255, 0), 0px 0 rgba(255, 255, 255, 0);
}
12% {
box-shadow: 100px 0 white, 0px 0 rgba(255, 255, 255, 0),
0px 0 rgba(255, 255, 255, 0), 0px 0 rgba(255, 255, 255, 0);
}
25% {
box-shadow: 110px 0 white, 100px 0 white, 0px 0 rgba(255, 255, 255, 0),
0px 0 rgba(255, 255, 255, 0);
}
36% {
box-shadow: 120px 0 white, 110px 0 white, 100px 0 white,
0px 0 rgba(255, 255, 255, 0);
}
50% {
box-shadow: 130px 0 white, 120px 0 white, 110px 0 white, 100px 0 white;
}
62% {
box-shadow: 200px 0 rgba(255, 255, 255, 0), 130px 0 white, 120px 0 white,
110px 0 white;
}
75% {
box-shadow: 200px 0 rgba(255, 255, 255, 0), 200px 0 rgba(255, 255, 255, 0),
130px 0 white, 120px 0 white;
}
87% {
box-shadow: 200px 0 rgba(255, 255, 255, 0), 200px 0 rgba(255, 255, 255, 0),
200px 0 rgba(255, 255, 255, 0), 130px 0 white;
}
100% {
box-shadow: 200px 0 rgba(255, 255, 255, 0), 200px 0 rgba(255, 255, 255, 0),
200px 0 rgba(255, 255, 255, 0), 200px 0 rgba(255, 255, 255, 0);
}
}
@keyframes shadowRolling {
0% {
box-shadow: 0px 0 rgba(255, 255, 255, 0), 0px 0 rgba(255, 255, 255, 0),
0px 0 rgba(255, 255, 255, 0), 0px 0 rgba(255, 255, 255, 0);
}
12% {
box-shadow: 100px 0 white, 0px 0 rgba(255, 255, 255, 0),
0px 0 rgba(255, 255, 255, 0), 0px 0 rgba(255, 255, 255, 0);
}
25% {
box-shadow: 110px 0 white, 100px 0 white, 0px 0 rgba(255, 255, 255, 0),
0px 0 rgba(255, 255, 255, 0);
}
36% {
box-shadow: 120px 0 white, 110px 0 white, 100px 0 white,
0px 0 rgba(255, 255, 255, 0);
}
50% {
box-shadow: 130px 0 white, 120px 0 white, 110px 0 white, 100px 0 white;
}
62% {
box-shadow: 200px 0 rgba(255, 255, 255, 0), 130px 0 white, 120px 0 white,
110px 0 white;
}
75% {
box-shadow: 200px 0 rgba(255, 255, 255, 0), 200px 0 rgba(255, 255, 255, 0),
130px 0 white, 120px 0 white;
}
87% {
box-shadow: 200px 0 rgba(255, 255, 255, 0), 200px 0 rgba(255, 255, 255, 0),
200px 0 rgba(255, 255, 255, 0), 130px 0 white;
}
100% {
box-shadow: 200px 0 rgba(255, 255, 255, 0), 200px 0 rgba(255, 255, 255, 0),
200px 0 rgba(255, 255, 255, 0), 200px 0 rgba(255, 255, 255, 0);
}
}
@-webkit-keyframes shadowPulse {
33% {
background: #fff;
box-shadow: -24px 0 #1da1f2, 24px 0 #fff;
}
66% {
background: #1da1f2;
box-shadow: -24px 0 #fff, 24px 0 #fff;
}
100% {
background: #fff;
box-shadow: -24px 0 #fff, 24px 0 #1da1f2;
}
}
@keyframes shadowPulse {
33% {
background: #fff;
box-shadow: -24px 0 #1da1f2, 24px 0 #fff;
}
66% {
background: #1da1f2;
box-shadow: -24px 0 #fff, 24px 0 #fff;
}
100% {
background: #fff;
box-shadow: -24px 0 #fff, 24px 0 #1da1f2;
}
}
@-webkit-keyframes animloader42 {
0% {
box-shadow: -38px -6px, -14px 6px, 14px -6px;
}
33% {
box-shadow: -38px 6px, -14px -6px, 14px 6px;
}
66% {
box-shadow: -38px -6px, -14px 6px, 14px -6px;
}
100% {
box-shadow: -38px 6px, -14px -6px, 14px 6px;
}
}
@keyframes animloader42 {
0% {
box-shadow: -38px -6px, -14px 6px, 14px -6px;
}
33% {
box-shadow: -38px 6px, -14px -6px, 14px 6px;
}
66% {
box-shadow: -38px -6px, -14px 6px, 14px -6px;
}
100% {
box-shadow: -38px 6px, -14px -6px, 14px 6px;
}
}
.dot-loader-1 {
display: flex;
justify-content: center;
flex-direction: row;
span {
width: 16px;
height: 16px;
margin: 1rem 0.3rem;
background: #fff;
border-radius: 50%;
-webkit-animation: 0.9s bounce infinite alternate;
animation: 0.9s bounce infinite alternate;
&:nth-child(2) {
-webkit-animation-delay: 0.3s;
animation-delay: 0.3s;
}
&:nth-child(3) {
-webkit-animation-delay: 0.6s;
animation-delay: 0.6s;
}
}
}
.dot-loader-2 {
width: 12px;
height: 12px;
border-radius: 50%;
display: inline-block;
position: relative;
color: #fff;
-webkit-animation: animloader42 1s linear infinite alternate;
animation: animloader42 1s linear infinite alternate;
}
.dot-loader-3 {
width: 16px;
height: 16px;
border-radius: 50%;
display: inline-block;
position: relative;
background: #fff;
box-shadow: -24px 0 #fff, 24px 0 #fff;
-webkit-animation: shadowPulse 2s linear infinite;
animation: shadowPulse 2s linear infinite;
}
.dot-loader-4 {
width: 10px;
height: 10px;
border-radius: 50%;
display: inline-block;
position: relative;
color: #fff;
left: -100px;
-webkit-animation: shadowRolling 2s linear infinite;
animation: shadowRolling 2s linear infinite;
}
.dot-loader-5 {
width: 12px;
height: 12px;
border-radius: 50%;
display: inline-block;
position: relative;
color: #fff;
-webkit-animation: animloader44 2s linear infinite;
animation: animloader44 2s linear infinite;
}
.dot-loader-6 {
width: 12px;
height: 12px;
border-radius: 50%;
display: inline-block;
position: relative;
color: #fff;
-webkit-animation: animloader45 1s linear infinite alternate;
animation: animloader45 1s linear infinite alternate;
}
@-webkit-keyframes bounce {
to {
opacity: 0.3;
transform: translate3d(0, -1rem, 0);
}
}
@keyframes bounce {
to {
opacity: 0.3;
transform: translate3d(0, -1rem, 0);
}
}
@-webkit-keyframes animloader45 {
0% {
box-shadow: -38px -12px, -14px 0, 14px 0, 38px 0;
}
33% {
box-shadow: -38px 0px, -14px -12px, 14px 0, 38px 0;
}
66% {
box-shadow: -38px 0px, -14px 0, 14px -12px, 38px 0;
}
100% {
box-shadow: -38px 0, -14px 0, 14px 0, 38px -12px;
}
}
@keyframes animloader45 {
0% {
box-shadow: -38px -12px, -14px 0, 14px 0, 38px 0;
}
33% {
box-shadow: -38px 0px, -14px -12px, 14px 0, 38px 0;
}
66% {
box-shadow: -38px 0px, -14px 0, 14px -12px, 38px 0;
}
100% {
box-shadow: -38px 0, -14px 0, 14px 0, 38px -12px;
}
}
@-webkit-keyframes animloader44 {
0% {
box-shadow: 14px 0 0 -2px, 38px 0 0 -2px, -14px 0 0 -2px, -38px 0 0 -2px;
}
25% {
box-shadow: 14px 0 0 -2px, 38px 0 0 -2px, -14px 0 0 -2px, -38px 0 0 2px;
}
50% {
box-shadow: 14px 0 0 -2px, 38px 0 0 -2px, -14px 0 0 2px, -38px 0 0 -2px;
}
75% {
box-shadow: 14px 0 0 2px, 38px 0 0 -2px, -14px 0 0 -2px, -38px 0 0 -2px;
}
100% {
box-shadow: 14px 0 0 -2px, 38px 0 0 2px, -14px 0 0 -2px, -38px 0 0 -2px;
}
}
@keyframes animloader44 {
0% {
box-shadow: 14px 0 0 -2px, 38px 0 0 -2px, -14px 0 0 -2px, -38px 0 0 -2px;
}
25% {
box-shadow: 14px 0 0 -2px, 38px 0 0 -2px, -14px 0 0 -2px, -38px 0 0 2px;
}
50% {
box-shadow: 14px 0 0 -2px, 38px 0 0 -2px, -14px 0 0 2px, -38px 0 0 -2px;
}
75% {
box-shadow: 14px 0 0 2px, 38px 0 0 -2px, -14px 0 0 -2px, -38px 0 0 -2px;
}
100% {
box-shadow: 14px 0 0 -2px, 38px 0 0 2px, -14px 0 0 -2px, -38px 0 0 -2px;
}
}
@-webkit-keyframes shadowRolling {
0% {
box-shadow: 0px 0 rgba(255, 255, 255, 0), 0px 0 rgba(255, 255, 255, 0),
0px 0 rgba(255, 255, 255, 0), 0px 0 rgba(255, 255, 255, 0);
}
12% {
box-shadow: 100px 0 white, 0px 0 rgba(255, 255, 255, 0),
0px 0 rgba(255, 255, 255, 0), 0px 0 rgba(255, 255, 255, 0);
}
25% {
box-shadow: 110px 0 white, 100px 0 white, 0px 0 rgba(255, 255, 255, 0),
0px 0 rgba(255, 255, 255, 0);
}
36% {
box-shadow: 120px 0 white, 110px 0 white, 100px 0 white,
0px 0 rgba(255, 255, 255, 0);
}
50% {
box-shadow: 130px 0 white, 120px 0 white, 110px 0 white, 100px 0 white;
}
62% {
box-shadow: 200px 0 rgba(255, 255, 255, 0), 130px 0 white, 120px 0 white,
110px 0 white;
}
75% {
box-shadow: 200px 0 rgba(255, 255, 255, 0), 200px 0 rgba(255, 255, 255, 0),
130px 0 white, 120px 0 white;
}
87% {
box-shadow: 200px 0 rgba(255, 255, 255, 0), 200px 0 rgba(255, 255, 255, 0),
200px 0 rgba(255, 255, 255, 0), 130px 0 white;
}
100% {
box-shadow: 200px 0 rgba(255, 255, 255, 0), 200px 0 rgba(255, 255, 255, 0),
200px 0 rgba(255, 255, 255, 0), 200px 0 rgba(255, 255, 255, 0);
}
}
@keyframes shadowRolling {
0% {
box-shadow: 0px 0 rgba(255, 255, 255, 0), 0px 0 rgba(255, 255, 255, 0),
0px 0 rgba(255, 255, 255, 0), 0px 0 rgba(255, 255, 255, 0);
}
12% {
box-shadow: 100px 0 white, 0px 0 rgba(255, 255, 255, 0),
0px 0 rgba(255, 255, 255, 0), 0px 0 rgba(255, 255, 255, 0);
}
25% {
box-shadow: 110px 0 white, 100px 0 white, 0px 0 rgba(255, 255, 255, 0),
0px 0 rgba(255, 255, 255, 0);
}
36% {
box-shadow: 120px 0 white, 110px 0 white, 100px 0 white,
0px 0 rgba(255, 255, 255, 0);
}
50% {
box-shadow: 130px 0 white, 120px 0 white, 110px 0 white, 100px 0 white;
}
62% {
box-shadow: 200px 0 rgba(255, 255, 255, 0), 130px 0 white, 120px 0 white,
110px 0 white;
}
75% {
box-shadow: 200px 0 rgba(255, 255, 255, 0), 200px 0 rgba(255, 255, 255, 0),
130px 0 white, 120px 0 white;
}
87% {
box-shadow: 200px 0 rgba(255, 255, 255, 0), 200px 0 rgba(255, 255, 255, 0),
200px 0 rgba(255, 255, 255, 0), 130px 0 white;
}
100% {
box-shadow: 200px 0 rgba(255, 255, 255, 0), 200px 0 rgba(255, 255, 255, 0),
200px 0 rgba(255, 255, 255, 0), 200px 0 rgba(255, 255, 255, 0);
}
}
@-webkit-keyframes shadowPulse {
33% {
background: #fff;
box-shadow: -24px 0 #1da1f2, 24px 0 #fff;
}
66% {
background: #1da1f2;
box-shadow: -24px 0 #fff, 24px 0 #fff;
}
100% {
background: #fff;
box-shadow: -24px 0 #fff, 24px 0 #1da1f2;
}
}
@keyframes shadowPulse {
33% {
background: #fff;
box-shadow: -24px 0 #1da1f2, 24px 0 #fff;
}
66% {
background: #1da1f2;
box-shadow: -24px 0 #fff, 24px 0 #fff;
}
100% {
background: #fff;
box-shadow: -24px 0 #fff, 24px 0 #1da1f2;
}
}
@-webkit-keyframes animloader42 {
0% {
box-shadow: -38px -6px, -14px 6px, 14px -6px;
}
33% {
box-shadow: -38px 6px, -14px -6px, 14px 6px;
}
66% {
box-shadow: -38px -6px, -14px 6px, 14px -6px;
}
100% {
box-shadow: -38px 6px, -14px -6px, 14px 6px;
}
}
@keyframes animloader42 {
0% {
box-shadow: -38px -6px, -14px 6px, 14px -6px;
}
33% {
box-shadow: -38px 6px, -14px -6px, 14px 6px;
}
66% {
box-shadow: -38px -6px, -14px 6px, 14px -6px;
}
100% {
box-shadow: -38px 6px, -14px -6px, 14px 6px;
}
}