@mixin spinbutton() {
  spinbutton {
    &.horizontal {
      border: 1px solid $borders;
      border-radius: $entry_radius;
      
      @if $variant != 'dark' {
        box-shadow: inset 0 1px gtkalpha($dark_shadow, 0.05), inset 1px 0 gtkalpha($dark_shadow, 0.035), inset -1px 0 gtkalpha($dark_shadow, 0.05), 0 1px gtkalpha($light_shadow, 0.3), -1px 0 gtkalpha($light_shadow, 0.3), 1px 0 gtkalpha($light_shadow, 0.3);
      }
      @else {
        box-shadow: inset 0 1px gtkalpha($dark_shadow, 0.05), inset 1px 0 gtkalpha($dark_shadow, 0.035), inset -1px 0 gtkalpha($dark_shadow, 0.05), 0 1px gtkalpha($light_shadow, 0.05), -1px 0 gtkalpha($light_shadow, 0.05), 1px 0 gtkalpha($light_shadow, 0.05);
      }
      
      &:backdrop, &:disabled { border-color: $unfocused_borders; }
      
      &:disabled { color: $disabled_fg_color;
        &:backdrop { color: $unfocused_disabled_fg_color; }
      }

      &:focus { border-color: $selected_bg_color; }
    
      entry {
        border: none;
        padding: 7px 15px;
        border-radius: $entry_radius 0 0 $entry_radius;
      }
      
      button {
        border: none;
        border-radius: 0;
        box-shadow: -1px 0 $borders;
        background-image: none;
        
        @if $variant != 'dark' {
          box-shadow: inset 0 1px gtkalpha($dark_shadow, 0.05), inset 1px 0 gtkalpha($dark_shadow, 0.035), inset -1px 0 gtkalpha($dark_shadow, 0.05), 0 1px gtkalpha($light_shadow, 0.3), -1px 0 gtkalpha($light_shadow, 0.3), 1px 0 gtkalpha($light_shadow, 0.3);
        }
        @else {
          box-shadow: inset 0 1px gtkalpha($dark_shadow, 0.05), inset 1px 0 gtkalpha($dark_shadow, 0.035), inset -1px 0 gtkalpha($dark_shadow, 0.05), 0 1px gtkalpha($light_shadow, 0.05), -1px 0 gtkalpha($light_shadow, 0.05), 1px 0 gtkalpha($light_shadow, 0.05);
        }

        &:disabled, &:backdrop { box-shadow: -1px 0 $unfocused_borders; }
        &.up { border-radius: 0 $entry_radius $entry_radius 0; }
      }
    }

    &.vertical {
      entry { border-radius: 0; }
      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;
        }
      }
    }
  }
}
