Skip to content

Instantly share code, notes, and snippets.

@neisdev
Created August 2, 2023 11:22
Show Gist options
  • Save neisdev/9973f66f584274dc54ddb95134d8255b to your computer and use it in GitHub Desktop.
Save neisdev/9973f66f584274dc54ddb95134d8255b to your computer and use it in GitHub Desktop.
Asana Style Loader
<div class="wdt-loading-screen">
<div class="wdt-loading-phrases">
<div class="wdt-loading-phrase-category" data-category="default">
<div class="wdt-loading-phrase">Establishing secure connection...</div>
<div class="wdt-loading-phrase">Connecting to database...</div>
<div class="wdt-loading-phrase">Validating integrity...</div>
<div class="wdt-loading-phrase">Creating database socket...</div>
<div class="wdt-loading-phrase">Ready for private search...</div>
</div>
</div>
<div class="wdt-loading-bar-wrap"><div class="wdt-loading-bar"><div class="progress"></div></div></div>
</div>
wdtLoading.start({ speed: 1200 });
setTimeout(function() {
wdtLoading.done();
}, 6500);
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/gsap/1.8.4/TweenMax.min.js"></script>
<script src="https://codepen.io/timdoes/pen/AXbNrZ.js"></script>
.wdt-loading-screen {
width: 100%;
height: 100%;
background-color: #fff;
position: fixed;
z-index: 999998;
top: 0;
left: 0;
overflow: hidden;
display: none;
}
.wdt-loading-bar-wrap {
width: 600px;
height: 30px;
background-color: #eee;
position: absolute;
top: 60%;
left: 50%;
transform: translateX(-50%);
}
.progress {
position: relative;
height: 30px;
width: 0;
background-color: #47b475;
}
.wdt-loading-phrases {
width: 300px;
margin: 0 auto;
height: 106px;
overflow: hidden;
position: relative;
padding: 10px 0;
text-align: center;
top: 50%;
transform: translateY(-50%);
}
.wdt-loading-phrase-category {
-webkit-transition: all 1s ease;
transition: all 1s ease;
}
.wdt-loading-phrases:before {
content: " ";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 999999;
background: rgba(255,255,255,1);
background: -moz-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 50%, rgba(255,255,255,1) 100%);
background: -webkit-gradient(left top, left bottom, color-stop(0%, rgba(255,255,255,1)), color-stop(50%, rgba(255,255,255,0)), color-stop(100%, rgba(255,255,255,1)));
background: -webkit-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 50%, rgba(255,255,255,1) 100%);
background: -o-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 50%, rgba(255,255,255,1) 100%);
background: -ms-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 50%, rgba(255,255,255,1) 100%);
background: linear-gradient(to bottom, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 50%, rgba(255,255,255,1) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#ffffff', GradientType=0 );
}
.wdt-loading-phrase {
padding-left: 30px;
position: relative;
transform: translateY(30px);
line-height: 30px;
height: 30px;
}
.wdt-loading-phrase:before {
content: " ";
width: 18px;
height: 18px;
position: absolute;
top: 6px;
left: 0;
border: 1px solid #ccc;
border-radius: 50%;
}
.wdt-loading-phrase:after {
opacity: 0;
height: 11px;
width: 7px;
-webkit-transform-origin: left top;
-moz-transform-origin: left top;
-ms-transform-origin: left top;
-o-transform-origin: left top;
transform-origin: left top;
border-right: 3px solid #2EB150;
border-top: 3px solid #2EB150;
border-radius: 2.5px !important;
content: '';
left: 3px;
top: 16px;
position: absolute;
-webkit-transform: scaleX(-1) rotate(135deg);
-moz-transform: scaleX(-1) rotate(135deg);
-ms-transform: scaleX(-1) rotate(135deg);
-o-transform: scaleX(-1) rotate(135deg);
transform: scaleX(-1) rotate(135deg);
}
.wdt-loading-phrase.wdt-checked:after {
-webkit-animation-delay: 100ms;
-moz-animation-delay: 100ms;
animation-delay: 100ms;
-webkit-animation-duration: 200ms;
-moz-animation-duration: 200ms;
animation-duration: 200ms;
-webkit-animation-timing-function: ease;
-moz-animation-timing-function: ease;
animation-timing-function: ease;
-webkit-animation-name: checkmark;
-moz-animation-name: checkmark;
animation-name: checkmark;
-webkit-transform: scaleX(-1) rotate(135deg);
-moz-transform: scaleX(-1) rotate(135deg);
-ms-transform: scaleX(-1) rotate(135deg);
-o-transform: scaleX(-1) rotate(135deg);
transform: scaleX(-1) rotate(135deg);
-webkit-animation-fill-mode: forwards;
-moz-animation-fill-mode: forwards;
animation-fill-mode: forwards;
}
@-webkit-keyframes checkmark {
0% {
height: 0;
width: 7px;
opacity: 1;
}
20% {
height: 2px;
width: 7px;
opacity: 1;
}
40% {
height: 5px;
width: 7px;
opacity: 1;
}
100% {
height: 11px;
width: 7px;
opacity: 1;
}
}
@-moz-keyframes checkmark {
0% {
height: 0;
width: 7px;
opacity: 1;
}
20% {
height: 2px;
width: 7px;
opacity: 1;
}
40% {
height: 5px;
width: 7px;
opacity: 1;
}
100% {
height: 11px;
width: 7px;
opacity: 1;
}
}
@keyframes checkmark {
0% {
height: 0;
width: 7px;
opacity: 1;
}
20% {
height: 2px;
width: 7px;
opacity: 1;
}
40% {
height: 5px;
width: 7px;
opacity: 1;
}
100% {
height: 11px;
width: 7px;
opacity: 1;
}
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment