| // |
| // Rotating border |
| // |
| |
| .spinner-grow, |
| .spinner-border { |
| display: inline-block; |
| width: var(--#{$prefix}spinner-width); |
| height: var(--#{$prefix}spinner-height); |
| vertical-align: var(--#{$prefix}spinner-vertical-align); |
| // stylelint-disable-next-line property-disallowed-list |
| border-radius: 50%; |
| animation: var(--#{$prefix}spinner-animation-speed) linear infinite var(--#{$prefix}spinner-animation-name); |
| } |
| |
| // scss-docs-start spinner-border-keyframes |
| @keyframes spinner-border { |
| to { transform: rotate(360deg) #{"/* rtl:ignore */"}; } |
| } |
| // scss-docs-end spinner-border-keyframes |
| |
| .spinner-border { |
| // scss-docs-start spinner-border-css-vars |
| --#{$prefix}spinner-width: #{$spinner-width}; |
| --#{$prefix}spinner-height: #{$spinner-height}; |
| --#{$prefix}spinner-vertical-align: #{$spinner-vertical-align}; |
| --#{$prefix}spinner-border-width: #{$spinner-border-width}; |
| --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed}; |
| --#{$prefix}spinner-animation-name: spinner-border; |
| // scss-docs-end spinner-border-css-vars |
| |
| border: var(--#{$prefix}spinner-border-width) solid currentcolor; |
| border-right-color: transparent; |
| } |
| |
| .spinner-border-sm { |
| // scss-docs-start spinner-border-sm-css-vars |
| --#{$prefix}spinner-width: #{$spinner-width-sm}; |
| --#{$prefix}spinner-height: #{$spinner-height-sm}; |
| --#{$prefix}spinner-border-width: #{$spinner-border-width-sm}; |
| // scss-docs-end spinner-border-sm-css-vars |
| } |
| |
| // |
| // Growing circle |
| // |
| |
| // scss-docs-start spinner-grow-keyframes |
| @keyframes spinner-grow { |
| 0% { |
| transform: scale(0); |
| } |
| 50% { |
| opacity: 1; |
| transform: none; |
| } |
| } |
| // scss-docs-end spinner-grow-keyframes |
| |
| .spinner-grow { |
| // scss-docs-start spinner-grow-css-vars |
| --#{$prefix}spinner-width: #{$spinner-width}; |
| --#{$prefix}spinner-height: #{$spinner-height}; |
| --#{$prefix}spinner-vertical-align: #{$spinner-vertical-align}; |
| --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed}; |
| --#{$prefix}spinner-animation-name: spinner-grow; |
| // scss-docs-end spinner-grow-css-vars |
| |
| background-color: currentcolor; |
| opacity: 0; |
| } |
| |
| .spinner-grow-sm { |
| --#{$prefix}spinner-width: #{$spinner-width-sm}; |
| --#{$prefix}spinner-height: #{$spinner-height-sm}; |
| } |
| |
| @if $enable-reduced-motion { |
| @media (prefers-reduced-motion: reduce) { |
| .spinner-border, |
| .spinner-grow { |
| --#{$prefix}spinner-animation-speed: #{$spinner-animation-speed * 2}; |
| } |
| } |
| } |