@use 'theme-variables' as *;

@include export-module('spinner-layout') {
  .sf-spinner {
    position: relative;
    display: inline-flex;
    stroke: currentColor;
  }

  .sf-spinner-overlay {
    height: 100%;
    left: 0;
    position: absolute;
    text-align: center;
    top: 0;
    user-select: none;
    vertical-align: middle;
    width: 100%;
    z-index: $spinner-z-index;
    background: $spin-backdrop-color;
  }

  .sf-spinner-content {
    flex-direction: column;
    width: 100%;
    padding: $spinner-padding;
    gap: $spinner-gap;      
    position: relative;
    height: 100%;
  }

  .sf-spinner-primary {
    color: $spin-primary-color;
  }

  .sf-spinner-secondary {
    color: $spin-secondary-color;
  }

  .sf-spinner-success {
    color: $spin-success-color;
  }

  .sf-spinner-warning {
    color: $spin-warning-color;
  }

  .sf-spinner-error {
    color: $spin-error-color;
  }

  .sf-spinner-info {
    color: $spin-info-color;
  }

  .sf-spinner-circle-inner,
  .sf-spinner-singlecircle-inner {
    transform-origin: 50% 50%;
  }

  .sf-spinner-doublecircle-inner,
  .sf-spinner-doublecircle-second-inner {
    position: absolute;
    width: 100%;
  }

  .sf-spinner-doublecircle-second-inner {
    transform: rotate(180deg);
  }

  .sf-spinner-cupertino-dots,
  .sf-spinner-doublecircle {
    position: relative;
  }

  .sf-spinner-cupertino-dots-inner {
    border-radius: $spinner-radius-round;
    position: absolute;
  }
}

@keyframes spinner-rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
@keyframes spinner-dash {
  0% {
    stroke-dashoffset: 0;
  }
  50% {
    stroke-dashoffset: 40;
  }
  100% {
    stroke-dashoffset: 0;
  }
}