UNPKG

@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
/** * 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))); }