$name: 'ivue-spin';

:root {
  --#{$name}-dot-size: 20px;

  // color
  --#{$name}-fix-bg: rgba(255, 255, 255, 0.9);
}

.#{$name} {
  display: inline-block;
  color: var(--ivue-primary-color);
  vertical-align: middle;
  text-align: center;

  // dot
  &-dot {
    position: relative;
    display: block;
    border-radius: 50%;
    background-color: var(--ivue-primary-color);
    width: var(--#{$name}-dot-size);
    height: var(--#{$name}-dot-size);
    animation: ivue-spin-dot 1s 0s ease-in-out infinite;

    @keyframes ivue-spin-dot {
      0% {
        -webkit-transform: scale(0);
        transform: scale(0);
      }

      100% {
        -webkit-transform: scale(1);
        transform: scale(1);
        opacity: 0;
      }
    }
  }

  // 文字
  &-text {
    display: block;
  }

  // 固定
  &-fix {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 20;
    width: 100%;
    height: 100%;
    background-color: var(--#{$name}-fix-bg);

    .#{$name}-content {
      display: flex;
      justify-content: center;
      align-items: center;
      height: 100%;
    }
  }

  // 全屏显示
  &-fullscreen {
    z-index: 2010;

    &--wrapper {
      position: fixed;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
    }
  }
}

.#{$name}-fade-enter-active,
.#{$name}-fade-leave-active {
  transition: opacity 0.3s ease-in-out;
}

.#{$name}-fade-enter-from,
.#{$name}-fade-leave-to {
  opacity: 0;
}
