wix-style-react
Version:
155 lines (125 loc) • 2.85 kB
CSS
/* st-namespace-reference="../../../src/Loader/Loader.st.css" */
:import {
-st-from: '../Foundation/stylable/colors.st.css';
-st-named: THEME-COLOR-00, R10, THEME-COLOR-30, D80;
}
:import {
-st-from: '../Foundation/stylable/easing.st.css';
-st-named: ease-8, ease-9;
}
@keyframes rotation {
100% {
transform: rotate(360deg);
}
}
@keyframes staggered-rotation {
50% {
transform: rotate(180deg);
}
100% {
transform: rotate(360deg);
}
}
.root {
display: inline-flex;
flex-direction: column;
align-items: center;
-st-states: size(enum(tiny, small, medium, large)), status(enum(success, error, loading)), color(enum(blue, white));
}
.statusIndicator {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.statusIndicator svg {
height: 14px;
width: 19px;
}
.root:size(tiny) .statusIndicator svg {
height: 8px;
width: 10px;
}
.root:size(small) .statusIndicator svg {
height: 8px;
width: 11px;
}
.arcsContainer {
position: relative;
}
.darkArc {
stroke: value(THEME-COLOR-00);
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
fill: none;
stroke-linecap: round;
}
.lightArc {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
fill: none;
stroke-linecap: round;
}
.text {
margin-top: 18px;
max-width: 150px;
word-wrap: break-word;
text-align: center;
}
.root:status(success) {
color: value(THEME-COLOR-00);
}
.root:status(success):size(tiny) {
color: value(D80);
}
.root:status(success):size(tiny) .darkArc {
fill: value(THEME-COLOR-00);
}
.root:status(error) {
color: value(R10);
}
.root:status(error) .darkArc {
stroke: value(R10);
}
.root:status(error):size(tiny) {
color: value(D80);
}
.root:status(error):size(tiny) .darkArc {
fill: value(R10);
}
.root:status(loading):size(tiny) .arcsContainer .lightArc {
animation: rotation 2s value(ease-9) infinite;
}
.root:status(loading):size(tiny) .arcsContainer .darkArc {
animation: rotation 666ms value(ease-9) infinite;
}
.root:status(loading):size(small) .arcsContainer .lightArc {
animation: rotation 2s value(ease-9) infinite;
}
.root:status(loading):size(small) .arcsContainer .darkArc {
animation: rotation 0.5s value(ease-9) infinite;
}
.root:status(loading):size(medium) .arcsContainer {
animation: rotation 2s value(ease-9) infinite;
}
.root:status(loading):size(medium) .arcsContainer .lightArc {
animation: rotation 666ms value(ease-8) infinite;
}
.root:status(loading):size(large) .arcsContainer {
animation: rotation 2s value(ease-9) infinite;
}
.root:status(loading):size(large) .arcsContainer .lightArc {
animation: staggered-rotation 2s value(ease-8) infinite;
}
.root:color(blue) .lightArc {
stroke: value(THEME-COLOR-30);
}
.root:color(white) .lightArc {
stroke: value(D80);
}