@import "../base";
@import "./config";

%ripple {
  position: absolute;
  z-index: $z-index-high;
  pointer-events: none;
  background-color: currentColor;
  border-radius: 50%;
  transform-style: preserve-3d;
  transform: translate3d(-50%, -50%, 0);
  backface-visibility: hidden;
  will-change: width, height, opacity;
}

.wrapper {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: $z-index-normal;
  pointer-events: none;
}

.normal {
  @extend %ripple;
  width: 0;
  height: 0;
  opacity: $ripple-final-opacity;
  transition-timing-function: $animation-curve-linear-out-slow-in;
  transition-duration: $ripple-duration;
  transition-property: height, width;
  &:not(.active) {
    opacity: 0;
    transition-property: height, width, opacity;
    &.restarting {
      transition-property: none;
    }
  }
}

.loading {
  @extend %ripple;
  @include ripple-loading(ripple, $ripple-size, $ripple-size);
  top: 50%;
  left: 50%;
  width: $ripple-size;
  height: $ripple-size;
  opacity: $ripple-final-opacity;
  animation-name: ripple;
  animation-duration: $ripple-duration;
  animation-timing-function: $animation-curve-linear-out-slow-in;
  animation-iteration-count: infinite;
}
