@inkline/inkline
Version:
Inkline is the intuitive UI Components library that gives you a developer-friendly foundation for building high-quality, accessible, and customizable Vue.js 3 Design Systems.
90 lines (88 loc) • 1.84 kB
CSS
/**
* Loader
*/
.loader {
display: inline-block;
position: relative;
width: var(--loader--size);
height: var(--loader--size);
}
.loader::before {
content: "";
display: block;
padding-top: 100%;
}
.loader .loader-text,
.loader > svg {
position: absolute;
height: 100%;
width: 100%;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
}
.loader .loader-text {
display: flex;
justify-content: center;
align-items: center;
}
.loader > svg {
animation: loader-rotate var(--loader--animation-duration, 1.2s) linear infinite;
transform-origin: center center;
}
.loader > svg > circle {
stroke: var(--loader--background);
stroke-dasharray: 89, 200;
stroke-dashoffset: -35px;
animation: loader-dash var(--loader--animation-duration, 1.2s) ease-in-out infinite;
stroke-linecap: round;
}
.loader.-auto {
width: 100%;
height: 100%;
}
@keyframes loader-rotate {
100% {
transform: rotate(360deg);
}
}
@keyframes loader-dash {
0% {
stroke-dasharray: 1, 200;
stroke-dashoffset: 0;
}
50% {
stroke-dasharray: 89, 200;
stroke-dashoffset: -35px;
}
100% {
stroke-dasharray: 89, 200;
stroke-dashoffset: -124px;
}
}
/**
* Color variants
*/
.loader.-primary {
--loader--background: var(--loader--primary--background, var(--color-primary));
}
.loader.-light {
--loader--background: var(--loader--light--background, var(--color-dark));
}
.loader.-dark {
--loader--background: var(--loader--dark--background, var(--color-light));
}
/**
* Size variants
*/
.loader.-sm {
--loader--size: var(--loader--sm--size, calc(64px * var(--size-multiplier-sm)));
}
.loader.-md {
--loader--size: var(--loader--md--size, calc(64px * var(--size-multiplier-md)));
}
.loader.-lg {
--loader--size: var(--loader--lg--size, calc(64px * var(--size-multiplier-lg)));
}