@mixin spinbutton() {
  spinbutton {
    &.horizontal {
      border-radius: $entry_radius;
      border: 1px solid $borders;
      border-top-color: gtkshade($borders, 1.1);
      border-left-color: gtkshade($borders, 1.05);
      border-right-color: gtkshade($borders, 1.05);
      background-color: $base_color;
      
      &:disabled {
        color: $disabled_fg_color;
        background-color: $disabled_base_color;

        &:backdrop {
          color: $unfocused_disabled_fg_color;
          background-color: $unfocused_disabled_base_color;
        }
      }
      
      &:backdrop {
        background-color: $unfocused_base_color;
      }

      &:focus { box-shadow: 0 0 0 4px $selected_base_color; }
    
      entry {
        padding: 7px 15px;
        border: none;
        background: none;
        border-radius: $entry_radius 0 0 $entry_radius;
        
        &:focus { box-shadow: none; }
        
        &:disabled { background: none; }
      }
      
      button {
        border: none;
        border-radius: 0;
        background: none;
        box-shadow: -1px 0 $borders;
        
        &:disabled { box-shadow: -1px 0 $unfocused_borders; background: none; }
        &.up { border-radius: 0 $entry_radius $entry_radius 0; }
      }
    }

    &.vertical {
      entry {
        border-radius: 0;
        
        &:focus { box-shadow: inset 0 0 0 4px $selected_base_color; }
      }
      button {
        &.up {
          border-bottom-left-radius: 0;
          border-bottom-right-radius: 0;
          border-bottom-width: 0;
        }

        &.down {
          border-top-width: 0;
          border-top-left-radius: 0;
          border-top-right-radius: 0;
        }
      }
    }
  }
}
