.spinner-wrapper {
  transition: background-color 1200ms ease-out;

  &.is-block {
    width: auto;
    position: absolute;
    z-index: 99999;
    background-color: rgba(#fff, 1.0);
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    //left: 50%;
    //top: 50%;
    //transform: translate(-50%, -50%);
  }

  &.is-fixed {
    background-color: rgba(#fff, 1.0);
    z-index: 99999;
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
  }

  &.reverse,
  &.dismissed {
    background-color: rgba(#fff, 0.0);
  }

  &.dismissed {
    position: fixed;
    width: 0;
    height: 0;
    left: -10000px;
    top: -10000px;
    right: auto;
    bottom: auto;
    overflow: hidden;
  }
}

.spinner-wrapper,
.spinner {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
}

.spinner {
  padding: 10rpx;
  opacity: 1;
  transition: opacity 1200ms ease-out;

  &.reverse,
  &.dismissed {
    opacity: 0;
  }
}

.spinner-icon {
  width: 38px;
  height: 38px;
  animation: spinner-rotation 600ms linear infinite;
}

@keyframes spinner-rotation {
  from {
    transform: rotate(0);
  }

  to {
    transform: rotate(360deg);
  }
}
