* { margin:0; padding:0; } body,html { background-color:#333; position:relative; width:100%; height:100%; } .loader { position:absolute; width:80px; height:100px; left:50%; top:50%; margin-left:-40px; margin-top:-50px; } .loader .dot { left:35%; position:absolute; width:10px; height:10px; background:#ffffff; -webkit-border-radius:50%; -moz-border-radius:50%; border-radius:50%; transform-origin:10px 40px; animation:dotrotate 2s cubic-bezier(0.775,0.005,0.310,1.000) infinite; } .loader .dot .first { position:absolute; width:8px; height:8px; top:50%; left:50%; margin-left:-4px; margin-top:-4px; border-radius:50%; background:#ffffff; animation-delay:0.2s; animation:1.7s dotscale cubic-bezier(0.775,0.005,0.310,1.000) infinite; } .loader .dot:nth-of-type(2) { animation-delay:0.2s; } .loader .dot:nth-of-type(3) { animation-delay:0.3s; } .loader .dot:last-of-type { animation-delay:0.4s; } @keyframes dotrotate { 0% { transform:rotate(0deg); } 100% { transform:rotate(360deg); } }@keyframes dotscale { 0%,10% { width:16px; height:16px; margin-left:-8px; margin-top:-8px; } 50% { width:8px; height:8px; margin-left:-4px; margin-top:-4px; } 90%,100% { width:16px; height:16px; margin-left:-8px; margin-top:-8px; } }.loader p { font-size:12px; font-weight:bold; color:#fff; margin:0; position:absolute; bottom:0; text-align:center; width:100%; } .loader p span { animation:1.7s fontMove cubic-bezier(0.775,0.005,0.310,1.000) infinite; } .loader p span:nth-of-type(2) { animation-delay:0.2s; } .loader p span:nth-of-type(3) { animation-delay:0.3s; } .loader p span:last-of-type { animation-delay:0.4s; } @keyframes fontMove { 0% { font-size:12px; } 50% { font-size:14px; } 100% { font-size:12px; } }