react-js-loading-progress-bar
Version:
React JS loading progress (bar and throbber) component that shows estimated time left (if several requests need to be made) and progress bar with percentage.
82 lines (65 loc) • 2.24 kB
CSS
progress {
height: 14px;
/* Important Thing */
-webkit-appearance: none;
border: none;
margin-right: 5px;
background-image:
-webkit-linear-gradient(-45deg,
transparent 33%, rgba(0, 0, 0, .1) 33%,
rgba(0,0, 0, .1) 66%, transparent 66%),
-webkit-linear-gradient(top,
rgba(255, 255, 255, .25),
rgba(0, 0, 0, .25)),
-webkit-linear-gradient(left, #38bcc3, #38bcc3);
}
progress::-webkit-progress-bar {
background-color: #eee;
border-radius: 2px;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25) inset;
}
progress[value]::-webkit-progress-bar {
background-color: #eee;
border-radius: 2px;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25) inset;
}
progress[value]::-webkit-progress-value {
background-image:
-webkit-linear-gradient(-45deg,
transparent 33%, rgba(0, 0, 0, .1) 33%,
rgba(0,0, 0, .1) 66%, transparent 66%),
-webkit-linear-gradient(top,
rgba(255, 255, 255, .25),
rgba(0, 0, 0, .25)),
-webkit-linear-gradient(left, #38bcc3, #38bcc3);
border-radius: 2px;
background-size: 35px 20px, 100% 100%, 100% 100%;
}
/* Now the value part */
progress::-webkit-progress-value {
background-image:
-webkit-linear-gradient(-45deg,
transparent 33%, rgba(0, 0, 0, .1) 33%,
rgba(0,0, 0, .1) 66%, transparent 66%),
-webkit-linear-gradient(top,
rgba(255, 255, 255, .25),
rgba(0, 0, 0, .25)),
-webkit-linear-gradient(left, #38bcc3, #38bcc3);
border-radius: 2px;
background-size: 35px 20px, 100% 100%, 100% 100%;
}
.loader {
border: 3px solid #f3f3f3;
border-top: 3px solid #3498db;
border-radius: 50%;
width: 20px;
height: 20px;
-webkit-animation: spin 1s linear infinite;
animation: spin 1s linear infinite;
margin: 0 5px;
display: inline-flex;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}