JSFiddle - React, Tailwind, and code Playground
HTML
<link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.5.0/pure-min.css">
<script src="https://github.com/Krasnyanskiy/spinner-test-project/blob/master/src/main/webapp/WEB-INF/resources/img/spinner.gif"></script>
<body>
<div class="container">
<div id="morph-spinner"></div>
<div id="fade"></div>
<button id="fancy-button" class="pure-button pure-button-primary" onclick="sendFakeRequest()">Identify!</button>
<div id="name-container">You are <span id="name">...</span></div>
</div>
CSS
h1 {
font-size: 50px;
text-align: center;
font-family: OpenSansLight;
padding: 25px;
z-index: 1;
}
#name-container {
text-align: center;
font-size: 100px;
color: #FFFFFF;
margin: 25px 150px 150px 150px;
background: #ad9ea4;
font-family: OpenSansLight;
position: relative;
padding: 50px;
}
#fancy-button {
position: relative;
width: 250px;
height: 65px;
display: block;
margin-left: auto;
margin-right: auto;
}
#fade {
display: none;
position: absolute;
width: 100%;
height: 100%;
opacity: 0.5;
background: #4d8076;
z-index: 30;
}
.container {
margin: 100px;
border: 35px;
}
@font-face {
font-family: "OpenSansLight";
src: url(//d1tijy5l7mg5kk.cloudfront.net/assets/OpenSans-Light-webfont-b1f07c01ccc025cf3687a37c35d22f0a.eot);
src: url(//d1tijy5l7mg5kk.cloudfront.net/assets/OpenSans-Light-webfont.eot?#iefix) format("embedded-opentype"), url(//d1tijy5l7mg5kk.cloudfront.net/assets/OpenSans-Light-webfont-a37a4f195e6b8de664a2ac50e032aba7.woff) format("woff"), url(//d1tijy5l7mg5kk.cloudfront.net/assets/OpenSans-Light-webfont-10e42cd67610a6b34ae2b98db1ddf315.ttf) format("truetype"), url(//d1tijy5l7mg5kk.cloudfront.net/assets/OpenSans-Light-webfont.svg#OpenSansLight) format("svg");
font-weight: normal;
font-style: normal
}
@-webkit-keyframes morph {
0% {
-webkit-border-radius: 0px;
-webkit-transform: rotate(0deg);
width: 44px;
height: 44px;
margin-top: -22px;
margin-left: -22px;
}
25% {
-webkit-border-radius: 0px;
-webkit-transform: rotate(0deg);
width: 44px;
height: 44px;
margin-top: -22px;
margin-left: -22px;
}
50% {
-webkit-border-radius: 30px;
-webkit-transform: rotate(45deg);
width: 46px;
height: 46px;
margin-top: -23px;
margin-left: -23px;
}
75% {
...
JavaScript
function sendFakeRequest() {
$('#fade').fadeIn();
$('#fancy-spinner').show();
sleep(1500);
$('span#name').text('Bob');
$('#fancy-spinner').hide();
$('#fade').fadeOut();
}
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}