@use "mixins/shadow";
@use "variables";

// Sliders
// Credit: https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/
.slider {
  appearance: none;
  background: transparent;
  display: block;
  width: 100%;
  height: variables.$unit-6;

  &:focus {
    @include shadow.control-shadow();
    outline: none;
  }

  &.tooltip:not([data-tooltip]) {
    &::after {
      content: attr(value);
    }
  }

  // Slider Thumb
  &::-webkit-slider-thumb {
    -webkit-appearance: none;
    background: variables.$primary-color;
    border: 0;
    border-radius: 50%;
    height: variables.$unit-3;
    margin-top: -(variables.$unit-3 - variables.$unit-h) * 0.5;
    transition: transform .2s;
    width: variables.$unit-3;
  }
  &::-moz-range-thumb {
    background: variables.$primary-color;
    border: 0;
    border-radius: 50%;
    height: variables.$unit-3;
    transition: transform .2s;
    width: variables.$unit-3;
  }
  &::-ms-thumb {
    background: variables.$primary-color;
    border: 0;
    border-radius: 50%;
    height: variables.$unit-3;
    transition: transform .2s;
    width: variables.$unit-3;
  }

  &:active {
    &::-webkit-slider-thumb {
      transform: scale(1.25);
    }
    &::-moz-range-thumb {
      transform: scale(1.25);
    }
    &::-ms-thumb {
      transform: scale(1.25);
    }
  }

  &:disabled,
  &.disabled {
    &::-webkit-slider-thumb {
      background: variables.$gray-color-light;
      transform: scale(1);
    }
    &::-moz-range-thumb {
      background: variables.$gray-color-light;
      transform: scale(1);
    }
    &::-ms-thumb {
      background: variables.$gray-color-light;
      transform: scale(1);
    }
  }

  // Slider Track
  &::-webkit-slider-runnable-track {
    background: variables.$bg-color-dark;
    border-radius: variables.$border-radius;
    height: variables.$unit-h;
    width: 100%;
  }
  &::-moz-range-track {
    background: variables.$bg-color-dark;
    border-radius: variables.$border-radius;
    height: variables.$unit-h;
    width: 100%;
  }
  &::-ms-track {
    background: variables.$bg-color-dark;
    border-radius: variables.$border-radius;
    height: variables.$unit-h;
    width: 100%;
  }
  &::-ms-fill-lower {
    background: variables.$primary-color;
  }
}
