@mixin gl-tmp-spinner-color($color) {
  border-color: rgba($color, 0.25);
  border-top-color: $color;
}

@mixin gl-tmp-spinner-size($size, $border-width) {
  width: $size;
  height: $size;
  border-width: $border-width;
  transform-origin: 50% 50% calc((#{$size} / 2) + #{$border-width});
}

.gl-spinner-container {
  @include gl-line-height-0;
  @include gl-text-center;
}

.gl-spinner {
  @include gl-relative;
  @include gl-display-inline-flex;
  @include gl-rounded-full;
  @include gl-border-solid;
  @include gl-mx-auto;
  @include gl-my-0;
  @include gl-font-base;

  animation-name: gl-spinner-rotate;
  animation-duration: 0.6s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;

  // default size
  @include gl-tmp-spinner-size($gl-spacing-scale-5, $gl-border-size-2);
  // default colour
  @include gl-tmp-spinner-color($gray-700);

  &.gl-spinner-md {
    @include gl-tmp-spinner-size($gl-spacing-scale-6, $gl-border-size-3);
  }

  &.gl-spinner-lg {
    @include gl-tmp-spinner-size($gl-spacing-scale-7, $gl-border-size-3);
  }

  &.gl-spinner-xl {
    @include gl-tmp-spinner-size($gl-spacing-scale-11, $gl-border-size-4);
  }

  &.gl-spinner-dark {
    @include gl-tmp-spinner-color($gray-700);
  }

  &.gl-spinner-light {
    @include gl-tmp-spinner-color($white);
  }
}
