// Button variants // // Easily pump out default styles, as well as :hover, :focus, :active, // and disabled options for all buttons // scss-docs-start btn-variant-mixin @mixin button-variant( $background, $border, $color: color-contrast($background), $hover-background: if($color == $color-contrast-light, shade-color($background, $btn-hover-bg-shade-amount), tint-color($background, $btn-hover-bg-tint-amount)), $hover-border: if($color == $color-contrast-light, shade-color($border, $btn-hover-border-shade-amount), tint-color($border, $btn-hover-border-tint-amount)), $hover-color: color-contrast($hover-background), $active-background: if($color == $color-contrast-light, shade-color($background, $btn-active-bg-shade-amount), tint-color($background, $btn-active-bg-tint-amount)), $active-border: if($color == $color-contrast-light, shade-color($border, $btn-active-border-shade-amount), tint-color($border, $btn-active-border-tint-amount)), $active-color: color-contrast($active-background), $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: #{to-rgb(mix($color, $border, 15%))}; --#{$prefix}btn-active-color: #{$active-color}; --#{$prefix}btn-active-bg: #{$active-background}; --#{$prefix}btn-active-border-color: #{$active-border}; --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow}; --#{$prefix}btn-disabled-color: #{$disabled-color}; --#{$prefix}btn-disabled-bg: #{$disabled-background}; --#{$prefix}btn-disabled-border-color: #{$disabled-border}; } // scss-docs-end btn-variant-mixin // Tinted "outline" button variant. // The resting state uses a translucent tint of the color plus a slightly // darker border of the same hue. Hover deepens both the tint and the border; // active fills solid. // scss-docs-start btn-outline-variant-mixin @mixin button-outline-variant( $color, $color-hover: $color, $active-background: $color, $active-color: color-contrast($active-background), $tint-amount: .1, $hover-tint-amount: .2, $disabled-tint-amount: .1, $border-tint-amount: .15, $hover-border-tint-amount: .3 ) { --#{$prefix}btn-color: #{$color}; --#{$prefix}btn-bg: #{rgba($color, $tint-amount)}; --#{$prefix}btn-border-color: #{rgba($color, $border-tint-amount)}; --#{$prefix}btn-hover-color: #{$color-hover}; --#{$prefix}btn-hover-bg: #{rgba($color, $hover-tint-amount)}; --#{$prefix}btn-hover-border-color: #{rgba($color, $hover-border-tint-amount)}; --#{$prefix}btn-focus-shadow-rgb: #{to-rgb($color)}; --#{$prefix}btn-active-color: #{$active-color}; --#{$prefix}btn-active-bg: #{$active-background}; --#{$prefix}btn-active-border-color: #{$active-background}; --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow}; --#{$prefix}btn-disabled-color: #{$color}; --#{$prefix}btn-disabled-bg: #{rgba($color, $disabled-tint-amount)}; --#{$prefix}btn-disabled-border-color: #{rgba($color, $border-tint-amount)}; --#{$prefix}gradient: none; } // scss-docs-end btn-outline-variant-mixin // Borderless, tinted button variant (`.btn-tint-*`). // Same tinted fill as the outline variant but with no border at all — every // border variable is left as its `.btn` default of transparent. // scss-docs-start btn-tint-variant-mixin @mixin button-tint-variant( $color, $color-hover: $color, $active-background: $color, $active-color: color-contrast($active-background), $tint-amount: .1, $hover-tint-amount: .2, $disabled-tint-amount: .1 ) { --#{$prefix}btn-color: #{$color}; --#{$prefix}btn-bg: #{rgba($color, $tint-amount)}; --#{$prefix}btn-hover-color: #{$color-hover}; --#{$prefix}btn-hover-bg: #{rgba($color, $hover-tint-amount)}; --#{$prefix}btn-focus-shadow-rgb: #{to-rgb($color)}; --#{$prefix}btn-active-color: #{$active-color}; --#{$prefix}btn-active-bg: #{$active-background}; --#{$prefix}btn-active-shadow: #{$btn-active-box-shadow}; --#{$prefix}btn-disabled-color: #{$color}; --#{$prefix}btn-disabled-bg: #{rgba($color, $disabled-tint-amount)}; --#{$prefix}gradient: none; } // scss-docs-end btn-tint-variant-mixin // scss-docs-start btn-size-mixin @mixin button-size($padding-y, $padding-x, $font-size, $border-radius) { --#{$prefix}btn-padding-y: #{$padding-y}; --#{$prefix}btn-padding-x: #{$padding-x}; @include rfs($font-size, --#{$prefix}btn-font-size); --#{$prefix}btn-border-radius: #{$border-radius}; } // scss-docs-end btn-size-mixin