You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
2.6 KiB
142 lines
2.6 KiB
// stylelint-disable selector-no-qualifying-type |
|
|
|
// |
|
// Base styles |
|
// |
|
|
|
.btn { |
|
display: inline-block; |
|
font-family: $btn-font-family; |
|
font-weight: $btn-font-weight; |
|
color: $body-color; |
|
text-align: center; |
|
text-decoration: if($link-decoration == none, null, none); |
|
white-space: $btn-white-space; |
|
vertical-align: middle; |
|
user-select: none; |
|
background-color: transparent; |
|
border: $btn-border-width solid transparent; |
|
@include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-line-height, $btn-border-radius); |
|
@include transition($btn-transition); |
|
|
|
@include hover() { |
|
color: $body-color; |
|
text-decoration: none; |
|
} |
|
|
|
&:focus, |
|
&.focus { |
|
outline: 0; |
|
box-shadow: $btn-focus-box-shadow; |
|
} |
|
|
|
// Disabled comes first so active can properly restyle |
|
&.disabled, |
|
&:disabled { |
|
opacity: $btn-disabled-opacity; |
|
@include box-shadow(none); |
|
} |
|
|
|
&:not(:disabled):not(.disabled) { |
|
cursor: if($enable-pointer-cursor-for-buttons, pointer, null); |
|
|
|
&:active, |
|
&.active { |
|
@include box-shadow($btn-active-box-shadow); |
|
|
|
&:focus { |
|
@include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow); |
|
} |
|
} |
|
} |
|
} |
|
|
|
// Future-proof disabling of clicks on `<a>` elements |
|
a.btn.disabled, |
|
fieldset:disabled a.btn { |
|
pointer-events: none; |
|
} |
|
|
|
|
|
// |
|
// Alternate buttons |
|
// |
|
|
|
@each $color, $value in $theme-colors { |
|
.btn-#{$color} { |
|
@include button-variant($value, $value); |
|
} |
|
} |
|
|
|
@each $color, $value in $theme-colors { |
|
.btn-outline-#{$color} { |
|
@include button-outline-variant($value); |
|
} |
|
} |
|
|
|
|
|
// |
|
// Link buttons |
|
// |
|
|
|
// Make a button look and behave like a link |
|
.btn-link { |
|
font-weight: $font-weight-normal; |
|
color: $link-color; |
|
text-decoration: $link-decoration; |
|
|
|
@include hover() { |
|
color: $link-hover-color; |
|
text-decoration: $link-hover-decoration; |
|
} |
|
|
|
&:focus, |
|
&.focus { |
|
text-decoration: $link-hover-decoration; |
|
} |
|
|
|
&:disabled, |
|
&.disabled { |
|
color: $btn-link-disabled-color; |
|
pointer-events: none; |
|
} |
|
|
|
// No need for an active state here |
|
} |
|
|
|
|
|
// |
|
// Button Sizes |
|
// |
|
|
|
.btn-lg { |
|
@include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-line-height-lg, $btn-border-radius-lg); |
|
} |
|
|
|
.btn-sm { |
|
@include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-line-height-sm, $btn-border-radius-sm); |
|
} |
|
|
|
|
|
// |
|
// Block button |
|
// |
|
|
|
.btn-block { |
|
display: block; |
|
width: 100%; |
|
|
|
// Vertically space out multiple block buttons |
|
+ .btn-block { |
|
margin-top: $btn-block-spacing-y; |
|
} |
|
} |
|
|
|
// Specificity overrides |
|
input[type="submit"], |
|
input[type="reset"], |
|
input[type="button"] { |
|
&.btn-block { |
|
width: 100%; |
|
} |
|
}
|
|
|