.vue-skeletor {
  position: relative;
  overflow: hidden;
  background-color: rgba(#000, 0.12);
  
  &:not(&--shimmerless) {
    &:after {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      transform: translateX(-100%);
      background-image: linear-gradient(
        90deg, 
        rgba(255, 255, 255, 0), 
        rgba(255, 255, 255, .3), 
        rgba(37, 22, 22, 0)
      );
      animation: shimmer 1.5s infinite;
      content: '';
    }
  }

  &--rect, &--circle {
    display: block;
  }

  &--circle {
    border-radius: 50%;
  }

  &--pill, &--text {
    border-radius: 9999px;
  }

  &--text {
    line-height: 1;
    display: inline-block;
    width: 100%;
    height: inherit;
    vertical-align: middle;
    top: -1px;
  }
}

@keyframes shimmer {
  100% {
    transform: translateX(100%);
  }
}