@patreon/studio
Version:
Patreon Studio Design System
132 lines (109 loc) • 3.34 kB
CSS
@keyframes rotator {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
@keyframes dash {
0% {
stroke-dashoffset: 162;
transform: rotate(0deg);
}
50% {
stroke-dashoffset: 90;
}
100% {
stroke-dashoffset: 162;
transform: rotate(360deg);
}
}
.root {
--LoadingSpinner-animation-speed: 1.8s;
--LoadingSpinner-animation-speed-rotator: calc(var(--LoadingSpinner-animation-speed) * 0.62);
--LoadingSpinner-animation-speed-dash: var(--LoadingSpinner-animation-speed);
--LoadingSpinner-stroke-opacity: var(--LoadingSpinner-stroke-opacity-light);
}
.root.colorModeDark {
--LoadingSpinner-stroke-opacity: var(--LoadingSpinner-stroke-opacity-dark);
}
.root {
animation: rotator var(--LoadingSpinner-animation-speed-rotator) linear infinite;
display: block;
height: var(--LoadingSpinner-size);
margin-left: auto;
margin-right: auto;
overflow: visible ; /* important is required to override the normalize.css rule */
padding: 1.5px;
width: var(--LoadingSpinner-size);
}
.circle {
fill: none;
stroke: var(--LoadingSpinner-background);
stroke-opacity: var(--LoadingSpinner-stroke-opacity);
stroke-width: var(--LoadingSpinner-stroke-width);
}
.arc {
animation: dash var(--LoadingSpinner-animation-speed-dash) cubic-bezier(0.445, 0.05, 0.55, 0.95) infinite;
fill: none;
stroke: var(--LoadingSpinner-foreground);
stroke-dasharray: 180;
stroke-width: var(--LoadingSpinner-stroke-width);
transform-origin: center;
}
.sizeXxs {
--LoadingSpinner-size: 10px;
--LoadingSpinner-stroke-width: 16px;
}
.sizeXs {
--LoadingSpinner-size: 16px;
--LoadingSpinner-stroke-width: 12px;
}
.sizeSm {
--LoadingSpinner-size: 24px;
--LoadingSpinner-stroke-width: 8px;
}
.sizeMd {
--LoadingSpinner-size: 32px;
--LoadingSpinner-stroke-width: 6px;
}
.sizeLg {
--LoadingSpinner-size: 48px;
--LoadingSpinner-stroke-width: 4px;
}
.colorPrimary {
--LoadingSpinner-background: var(--global-border-muted-default);
--LoadingSpinner-foreground: var(--global-content-regular-default);
--LoadingSpinner-stroke-opacity-dark: 1;
--LoadingSpinner-stroke-opacity-light: 1;
}
.colorLight {
--LoadingSpinner-background: var(--global-constant-white-default);
--LoadingSpinner-foreground: var(--global-constant-white-default);
--LoadingSpinner-stroke-opacity-dark: 0.19;
--LoadingSpinner-stroke-opacity-light: 0.19;
}
.colorDark {
--LoadingSpinner-background: var(--global-constant-black-default);
--LoadingSpinner-foreground: var(--global-constant-black-default);
--LoadingSpinner-stroke-opacity-dark: 0.09;
--LoadingSpinner-stroke-opacity-light: 0.09;
}
.colorInverted {
--LoadingSpinner-background: var(--global-inverted-regular-default);
--LoadingSpinner-foreground: var(--global-inverted-regular-default);
--LoadingSpinner-stroke-opacity-dark: 0.09;
--LoadingSpinner-stroke-opacity-light: 0.19;
}
.colorActionBase {
--LoadingSpinner-background: var(--global-rich-regular-default);
--LoadingSpinner-foreground: var(--global-rich-regular-default);
--LoadingSpinner-stroke-opacity-dark: 0.19;
--LoadingSpinner-stroke-opacity-light: 0.09;
}
@media (prefers-color-scheme: dark) {
.root.colorModeAuto {
--LoadingSpinner-stroke-opacity: var(--LoadingSpinner-stroke-opacity-dark);
}
}