@mixin scale() {
  scale {
    min-height: 10px;
    min-width: 10px;
    padding: 12px;

    fill, highlight {
      margin: -1px;
    }

    trough, fill {
      border: 2px solid transparent;
      border-radius: 0;
      background-color: transparent;
      box-shadow: none;
      outline-offset: 11px;
      
      &:disabled {
        -gtk-outline-radius: 2px;
        border-color: transparent;
        background-color: transparent;
      }
    }
    
    row:selected & trough, & row:selected trough, row:selected & fill, & row:selected fill {
      box-shadow: none;

      &, &:disabled {
        border-color: #061f3e;
      }
    }

    &.horizontal {
      trough {
        border-image: url("assets/trough-horz.png");
        border-image-repeat: stretch;
        border-width: 1px 2px;
        border-image-slice: 1 2 1 2;
        background-image: linear-gradient(to bottom, rgba(236, 236, 231, 0.8) 1px, rgba(245, 244, 239, 0.8));
      }
      slider {
        border-style: none;
        border-radius: 0px;
        background-color: transparent;
        background-image: -gtk-scaled(url("assets/slider-horz.png"));
        background-repeat: no-repeat;
        background-position: center;
        box-shadow: none;
        min-height: 22px;
        min-width: 11px;
        margin-top: -10px;
        margin-bottom: -10px;
        
        &:hover {
          background-image: -gtk-scaled(url("assets/slider-horz-hover.png"));
        }

        &:active {
          background-image: -gtk-scaled(url("assets/slider-horz-active.png"));
        }

        &:disabled {
          background-image: -gtk-scaled(url("assets/slider-horz-insensitive.png"));
        }
      }
    }
    &.vertical {
      trough {
        border-image: url("assets/trough-vert.png");
        border-image-repeat: stretch;
        border-width: 2px 1px;
        border-image-slice: 2 1 2 1;
        background-image: linear-gradient(to right, rgba(236, 236, 231, 0.8) 1px, rgba(245, 244, 239, 0.8));
      }
      slider {
        border-style: none;
        border-radius: 0px;
        background-color: transparent;
        background-image: -gtk-scaled(url("assets/slider-vert.png"));
        background-repeat: no-repeat;
        background-position: center;
        box-shadow: none;
        min-height: 11px;
        min-width: 22px;
        margin-left: -10px;
        margin-right: -10px;
        
        &:hover {
          background-image: -gtk-scaled(url("assets/slider-vert-hover.png"));
        }

        &:active {
          background-image: -gtk-scaled(url("assets/slider-vert-active.png"));
        }

        &:disabled {
          background-image: -gtk-scaled(url("assets/slider-vert-insensitive.png"));
        }
      }
    }
    value {
      color: gtkalpha(currentColor, 0.4);
    }
    marks {
      color: gtkalpha(currentColor, 0.4);
      &.top {
        margin-bottom: 11px;
        margin-top: -15px;
      }
      &.bottom {
        margin-top: 11px;
        margin-bottom: -15px;
      }
      &.top {
        margin-right: 11px;
        margin-left: -15px;
      }
      &.bottom {
        margin-left: 11px;
        margin-right: -15px;
      }
    }
    &.fine-tune {
      fill, highlight, trough {
        outline-offset: 4px;
        -gtk-outline-radius: 1px;
      }
      marks {
        &.top {
          margin-bottom: 11px;
          margin-top: -12px;
        }
        &.bottom {
          margin-top: 11px;
          margin-bottom: -12px;
        }
        &.top {
          margin-right: 11px;
          margin-left: -12px;
        }
        &.bottom {
          margin-left: 11px;
          margin-right: -12px;
        }
      }
    }
    &.horizontal {
      indicator {
        min-height: 4px;
        min-width: 1px;
      }
      &.fine-tune indicator {
        min-height: 1px;
      }
    }
    &.vertical {
      indicator {
        min-height: 1px;
        min-width: 4px;
      }
      &.fine-tune indicator {
        min-width: 1px;
      }
    }
    &.color.horizontal slider, &.horizontal contents:last-child:not(:only-child) > trough > slider {
      background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above.png"));
      
      &:hover {
        background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-hover.png"));
      }
      &:active {
        background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-active.png"));
      }
      &:disabled {
        background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-above-insensitive.png"));
      }
    }

    &.horizontal contents {
      &:first-child:not(:only-child) > trough > slider {
        background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below.png"));

        &:hover {
          background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below-hover.png"));
        }
        &:active {
          background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below-active.png"));
        }
        &:disabled {
          background-image: -gtk-scaled(url("assets/slider-horz-scale-has-marks-below-insensitive.png"));
        }
      }
    }
    
    &.color.vertical:dir(rtl) slider, &.vertical contents:last-child:not(:only-child) > trough > slider {
      background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above.png"));
      &:hover {
        background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above-hover.png"));
      }
      &:active {
        background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above-active.png"));
      }
      &:disabled {
        background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-above-insensitive.png"));
      }
    }
    &.color.vertical:dir(ltr) slider, &.vertical contents:first-child:not(:only-child) > trough > slider {
      background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below.png"));

      &:hover {
        background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below-hover.png"));
      }
      &:active {
        background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below-active.png"));
      }
      &:disabled {
        background-image: -gtk-scaled(url("assets/slider-vert-scale-has-marks-below-insensitive.png"));
      }
    }
    
    &.color {
      min-height: 0;
      min-width: 0;

      trough {
        border: none;
        background-image: none;
        background-repeat: no-repeat;
      }

      &.horizontal {
        padding: 0 0 15px 0;

        trough {
          padding-bottom: 4px;
          background-position: 0 -3px;
          border-top-left-radius: 0;
          border-top-right-radius: 0;
        }

        slider {
          &:dir(ltr), &:dir(rtl) { // specificity bumb
            &:hover, & {
              margin-bottom: -10px;
              margin-top: 0;
            }
          }
        }
      }

      &.vertical {
        &:dir(ltr) {
          padding: 0 0 0 15px;

          trough {
            padding-left: 4px;
            background-position: 3px 0;
            border-bottom-right-radius: 0;
            border-top-right-radius: 0;
          }

          slider {
            &:hover, & {
              margin-left: -10px;
              margin-right: 0;
            }
          }
        }

        &:dir(rtl) {
          padding: 0 15px 0 0;

          trough {
            padding-right: 4px;
            background-position: -3px 0;
            border-bottom-left-radius: 0;
            border-top-left-radius: 0;
          }

          slider {
            &:hover, &:disabled {
              margin-right: -10px;
              margin-left: 0;
            }
            margin-right: -10px;
            margin-left: 0;
          }
        }
      }
    }
  }
}
