@layer components{[is-=spinner]{--spinner-steps: 4;--spinner-chars: "/-\\|";--spinner-duration: 1s;width:1ch;height:1lh;overflow:hidden;position:relative;display:inline-block;vertical-align:top}[is-=spinner][variant-=dots]{--spinner-steps: 8;--spinner-chars: "⣷⣯⣟⡿⢿⣻⣽⣾"}[is-=spinner][variant-=arrows]{--spinner-steps: 8;--spinner-chars: "←↖↑↗→↘↓↙"}[is-=spinner][variant-=cross]{--spinner-steps: 2;--spinner-chars: "+x"}[is-=spinner][variant-=square]{--spinner-steps: 4;--spinner-chars: "◰◳◲◱"}[is-=spinner][variant-=pie]{--spinner-steps: 4;--spinner-chars: "◴◷◶◵"}[is-=spinner][variant-=half]{--spinner-steps: 4;--spinner-chars: "◐◓◑◒"}[is-=spinner][variant-=bar-vertical]{--spinner-steps: 12;--spinner-chars: "▁▃▄▅▆▇█▇▆▅▄▃"}[is-=spinner][variant-=bar-horizontal]{--spinner-steps: 13;--spinner-chars: "▉▊▋▌▍▎▏▎▍▌▋▊▉"}[is-=spinner][speed-=slow]{--spinner-duration: 2s}[is-=spinner][speed-=medium],[is-=spinner][speed-=default],[is-=spinner]:not([speed-]){--spinner-duration: 1s}[is-=spinner][speed-=fast]{--spinner-duration: .5s}[is-=spinner]:before{content:var(--spinner-chars);position:absolute;top:0;left:0;color:inherit;white-space:nowrap;height:1lh;animation:spinner-pan var(--spinner-duration) steps(var(--spinner-steps)) infinite}[is-=spinner][direction-=reverse]:before{animation-direction:reverse}@keyframes spinner-pan{0%{translate:0ch}to{translate:-100%}}}
