2 $animation-duration: 3s !default;
3 $second-circle-time-offset: 0.125s !default;
5 // We need to adjust animation for each size.
13 // We need a different duration than each circle for the whole loader
14 // to have an animation that seems visually "random", so here, duration +20% and ease.
15 animation: anime-loader-rotation #{$animation-duration * 1.2} ease-in-out infinite;
16 will-change: transform;
18 @keyframes anime-loader-rotation {
24 transform: rotate(360deg);
29 transform-origin: 50%;
32 stroke-width: map-get($stroke-map, default);
33 will-change: transform;
34 animation: $animation-duration linear infinite;
37 animation-name: anime-loader-orbit-x;
41 animation-name: anime-loader-orbit-y;
42 animation-delay: $second-circle-time-offset;
46 @each $name, $value in $stroke-map {
47 @if $name != 'default' {
48 &.is-#{$name} &-circle {
52 animation-name: #{'anime-loader-orbit-x-' + $name};
56 animation-name: #{'anime-loader-orbit-y-' + $name};
61 @each $axis in (x, y) {
62 @keyframes #{'anime-loader-orbit-' + $axis + if($name == 'default', '', '-' + $name)} {
64 transform: #{'rotate' + $axis + '(0)'};
69 stroke-width: $value * 2;
77 stroke-width: $value * 2;
81 transform: #{'rotate' + $axis + '(360deg)'};