@mixin button-variant(
  $background,
  $border,
  $color: $white,
  $hover-background: shade-color($background, $btn-hover-bg-shade-amount),
  $hover-border: shade-color($border, $btn-hover-border-shade-amount),
  $hover-color: $color  ,
  $active-background: $background,
  $active-border: $border,
  $active-color: $color,
  $disabled-background: $background,
  $disabled-border: $border,
  $disabled-color: color-contrast($disabled-background)
) {
  --#{$prefix}btn-color: #{$color};
  --#{$prefix}btn-bg: #{$background};
  --#{$prefix}btn-border-color: #{$border};
  --#{$prefix}btn-hover-color: #{$hover-color};
  --#{$prefix}btn-hover-bg: #{$hover-background};
  --#{$prefix}btn-hover-border-color: #{$hover-border};
  --#{$prefix}btn-focus-shadow-rgb: transparent;
  --#{$prefix}btn-active-color: #{$active-color};
  --#{$prefix}btn-active-bg: #{$active-background};
  --#{$prefix}btn-active-border-color: #{$active-border};
  --#{$prefix}btn-active-shadow: none;
  --#{$prefix}btn-disabled-color: #{$disabled-color};
  --#{$prefix}btn-disabled-bg: #{$disabled-background};
  --#{$prefix}btn-disabled-border-color: #{$disabled-border};
}

@mixin button-outline-variant(
  $color,
  $color-hover: $color,
  $active-background: rgba($black, 0.1),
  $active-border: $active-background,
  $active-color: $color
) {
  $hover-background: rgba($black, 0.2);

  --#{$prefix}btn-color: #{$color};
  --#{$prefix}btn-bg: #{$active-background};
  --#{$prefix}btn-border-color: #{$active-background};
  --#{$prefix}btn-hover-color: #{$color-hover};
  --#{$prefix}btn-hover-bg: #{$hover-background};
  --#{$prefix}btn-hover-border-color: #{$hover-background};
  --#{$prefix}btn-focus-shadow-rgb: transparent;
  --#{$prefix}btn-active-color: #{$active-color};
  --#{$prefix}btn-active-bg: #{$active-background};
  --#{$prefix}btn-active-border-color: #{$active-border};
  --#{$prefix}btn-active-shadow: none;
  --#{$prefix}btn-disabled-color: #{$color};
  --#{$prefix}btn-disabled-bg: #{$active-background};
  --#{$prefix}btn-disabled-border-color: #{$active-border};
  --#{$prefix}gradient: none;

  border: none;
}
