// // Buttons // -------------------------------------------------- // // Base styles // .btn { display: inline-block; font-weight: $btn-font-weight; text-align: center; white-space: nowrap; vertical-align: middle; touch-action: manipulation; cursor: pointer; user-select: none; border: $border-width solid transparent; @include button-size($padding-y, $padding-x, $font-size-base, $line-height, $btn-border-radius); transition: all .2s ease-in-out; &, &:active, &.active { &:focus, &.focus { @include tab-focus(); } } @include hover-focus { text-decoration: none; } &.focus { text-decoration: none; } &:active, &.active { background-image: none; outline: 0; @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); } &.disabled, &:disabled, fieldset[disabled] & { cursor: $cursor-disabled; opacity: .65; @include box-shadow(none); } } // Future-proof disabling of clicks on `` elements a.btn.disaabled, fieldset[disabled] a.btn { pointer-events: none; } // // Alternate buttons // .btn-primary { @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border); } .btn-secondary { @include button-variant($btn-secondary-color, $btn-secondary-bg, $btn-secondary-border); } .btn-info { @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border); } .btn-success { @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border); } .btn-warning { @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border); } .btn-danger { @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border); } // Remove all backgrounds .btn-primary-outline { @include button-outline-variant($btn-primary-bg); } .btn-secondary-outline { @include button-outline-variant($btn-secondary-border); } .btn-info-outline { @include button-outline-variant($btn-info-bg); } .btn-success-outline { @include button-outline-variant($btn-success-bg); } .btn-warning-outline { @include button-outline-variant($btn-warning-bg); } .btn-danger-outline { @include button-outline-variant($btn-danger-bg); } // // Link buttons // // Make a button look and behave like a link .btn-link { font-weight: normal; color: $link-color; border-radius: 0; &, &:active, &.active, &:disabled, fieldset[disabled] & { background-color: transparent; @include box-shadow(none); } &, &:focus, &:active { border-color: transparent; } @include hover { border-color: transparent; } @include hover-focus { color: $link-hover-color; text-decoration: $link-hover-decoration; background-color: transparent; } &:disabled, fieldset[disabled] & { @include hover-focus { color: $btn-link-disabled-color; text-decoration: none; } } } // // Button Sizes // .btn-lg { // line-height: ensure even-numbered height of button next to large input @include button-size($padding-lg-y, $padding-lg-x, $font-size-lg, $line-height-lg, $btn-border-radius-lg); } .btn-sm { // line-height: ensure proper height of button next to small input @include button-size($padding-sm-y, $padding-sm-x, $font-size-sm, $line-height-sm, $btn-border-radius-sm); } .btn-xs { @include button-size($padding-xs-y, $padding-xs-x, $font-size-xs, $line-height-sm, $btn-border-radius-sm); } // // Block button // .btn-block { display: block; width: 100%; } // Vertically space out multiple block buttons .btn-block + .btn-block { margin-top: 5px; } // Specificity overrides input[type="submit"], input[type="reset"], input[type="button"] { &.btn-block { width: 100%; } }