nishant-design-system
Version:
Sense UI components library
82 lines (69 loc) • 1.74 kB
CSS
@value (colorFillPrimary, colorBackgroundTertiary, colorFillNone) from '../../styles/variables/_color.css';
@value (
spaceNone
) from '../../styles/variables/_space.css';
@value (
size5,
size60
) from '../../styles/variables/_size.css';
@value (
motionDurationSlowest
) from '../../styles/variables/_motion.css';
@value spinnerSize: size60;
@value spinnerThickness: size5;
@value innerCircleSize: calc(spinnerSize - 2 * spinnerThickness);
@value innerMaskGradient: radial-gradient(farthest-side, colorFillNone calc(99% - spinnerThickness), colorFillPrimary calc(100% - spinnerThickness));
.container {
display: flex;
justify-content: flex-start;
align-items: flex-start;
}
.mediumContainer {
transform: scale(0.5);
}
.smallContainer {
transform: scale(0.36);
}
.spinLoader {
height: spinnerSize;
width: spinnerSize;
display: block;
position: relative;
animation: spin motionDurationSlowest linear 0s infinite normal;
background: transparent;
}
.outerCircle {
--color: colorFillPrimary;
display: block;
position: absolute;
border-radius: calc(spinnerSize/2);
height: spinnerSize;
width: spinnerSize;
top: spaceNone;
right: spaceNone;
background: conic-gradient(
from 90deg at 50% 50%,
colorFillNone 1deg,
var(--color) 360deg
);
-webkit-mask: innerMaskGradient;
mask: innerMaskGradient;
}
.ellipse {
--color: colorFillPrimary;
position: absolute;
left: calc(spinnerSize - spinnerThickness);
right: spaceNone;
top: spaceNone;
bottom: spaceNone;
border-radius: calc(spinnerThickness/2);
height: spinnerThickness;
width: spinnerThickness;
margin: auto;
background: var(--color);
}
@keyframes spin {
to {
transform: rotate(360deg);
}
}