Files
webawesome/source/css/loaders.css
2017-08-26 13:05:28 -04:00

187 lines
5.1 KiB
CSS

/*! Loaders */
.loader {
width: var(--loader-size);
height: var(--loader-size);
border-radius: 50%;
border-style: solid;
border-width: var(--loader-thickness);
border-color: var(--loader-bg-color);
border-top-color: var(--loader-color);
border-left-color: var(--loader-color);
display: inline-block;
animation: loader var(--loader-speed) linear infinite;
margin: var(--loader-margin-y) var(--loader-margin-x);
vertical-align: middle;
/* Sizes */
&.loader-xs {
width: var(--loader-size-xs);
height: var(--loader-size-xs);
border-width: var(--loader-thickness-xs);
}
&.loader-sm {
width: var(--loader-size-sm);
height: var(--loader-size-sm);
border-width: var(--loader-thickness-sm);
}
&.loader-lg {
width: var(--loader-size-lg);
height: var(--loader-size-lg);
border-width: var(--loader-thickness-lg);
}
&.loader-xl {
width: var(--loader-size-xl);
height: var(--loader-size-xl);
border-width: var(--loader-thickness-xl);
}
/* Variations */
&.loader-secondary {
border-color: var(--loader-bg-color-secondary);
border-top-color: var(--loader-color-secondary);
border-left-color: var(--loader-color-secondary);
}
&.loader-success {
border-color: var(--loader-bg-color-success);
border-top-color: var(--loader-color-success);
border-left-color: var(--loader-color-success);
}
&.loader-info {
border-color: var(--loader-bg-color-info);
border-top-color: var(--loader-color-info);
border-left-color: var(--loader-color-info);
}
&.loader-warning {
border-color: var(--loader-bg-color-warning);
border-top-color: var(--loader-color-warning);
border-left-color: var(--loader-color-warning);
}
&.loader-danger {
border-color: var(--loader-bg-color-danger);
border-top-color: var(--loader-color-danger);
border-left-color: var(--loader-color-danger);
}
&.loader-light {
border-color: var(--loader-bg-color-light);
border-top-color: var(--loader-color-light);
border-left-color: var(--loader-color-light);
}
&.loader-dark {
border-color: var(--loader-bg-color-dark);
border-top-color: var(--loader-color-dark);
border-left-color: var(--loader-color-dark);
}
}
/* Background loaders */
.loader-bg {
position: relative;
&::after {
content: '';
position: absolute;
top: calc(50% - var(--loader-size) / 2);
left: calc(50% - var(--loader-size) / 2);
width: var(--loader-size);
height: var(--loader-size);
border-radius: 50%;
border-style: solid;
border-width: var(--loader-thickness);
border-color: var(--loader-bg-color);
border-top-color: var(--loader-color);
border-left-color: var(--loader-color);
animation: loader var(--loader-speed) linear infinite;
}
/* Sizes */
&.loader-bg-xs::after {
top: calc(50% - var(--loader-size-xs) / 2);
left: calc(50% - var(--loader-size-xs) / 2);
width: var(--loader-size-xs);
height: var(--loader-size-xs);
border-width: var(--loader-thickness-xs);
}
&.loader-bg-sm::after {
top: calc(50% - var(--loader-size-sm) / 2);
left: calc(50% - var(--loader-size-sm) / 2);
width: var(--loader-size-sm);
height: var(--loader-size-sm);
border-width: var(--loader-thickness-sm);
}
&.loader-bg-lg::after {
top: calc(50% - var(--loader-size-lg) / 2);
left: calc(50% - var(--loader-size-lg) / 2);
width: var(--loader-size-lg);
height: var(--loader-size-lg);
border-width: var(--loader-thickness-lg);
}
&.loader-bg-xl::after {
top: calc(50% - var(--loader-size-xl) / 2);
left: calc(50% - var(--loader-size-xl) / 2);
width: var(--loader-size-xl);
height: var(--loader-size-xl);
border-width: var(--loader-thickness-xl);
}
/* Variations */
&.loader-bg-secondary::after {
border-color: var(--loader-bg-color-secondary);
border-top-color: var(--loader-color-secondary);
border-left-color: var(--loader-color-secondary);
}
&.loader-bg-success::after {
border-color: var(--loader-bg-color-success);
border-top-color: var(--loader-color-success);
border-left-color: var(--loader-color-success);
}
&.loader-bg-info::after {
border-color: var(--loader-bg-color-info);
border-top-color: var(--loader-color-info);
border-left-color: var(--loader-color-info);
}
&.loader-bg-warning::after {
border-color: var(--loader-bg-color-warning);
border-top-color: var(--loader-color-warning);
border-left-color: var(--loader-color-warning);
}
&.loader-bg-danger::after {
border-color: var(--loader-bg-color-danger);
border-top-color: var(--loader-color-danger);
border-left-color: var(--loader-color-danger);
}
&.loader-bg-light::after {
border-color: var(--loader-bg-color-light);
border-top-color: var(--loader-color-light);
border-left-color: var(--loader-color-light);
}
&.loader-bg-dark::after {
border-color: var(--loader-bg-color-dark);
border-top-color: var(--loader-color-dark);
border-left-color: var(--loader-color-dark);
}
}
@keyframes loader {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}