@mixin btn-comment-icon { border-radius: 50%; background: $white-light; padding: 1px; font-size: 12px; color: $blue-500; border: 1px solid $blue-500; width: 24px; height: 24px; &:hover, &.inverted { background: $blue-500; border-color: $blue-600; color: $white-light; } &:active { outline: 0; } } @mixin btn-default { border-radius: $border-radius-default; font-size: $gl-font-size; font-weight: $gl-font-weight-normal; padding: $gl-vert-padding $gl-btn-padding; &:focus, &:active { background-color: $btn-active-gray; box-shadow: none; } } @mixin btn-middle { @include btn-default; } @mixin btn-outline($background, $text, $border, $hover-background, $hover-text, $hover-border, $active-background, $active-border, $active-text) { background-color: $background; color: $text; border-color: $border; &.btn-border-color { border-color: $border-color; } > .icon { color: $text; } &:hover, &:focus { background-color: $hover-background; border-color: $hover-border; color: $hover-text; > .icon { color: $hover-text; } } &:focus { box-shadow: 0 0 4px 1px $blue-300; } &:active { background-color: $active-background; border-color: $active-border; box-shadow: inset 0 2px 4px 0 rgba($black, 0.2); color: $active-text; > .icon { color: $active-text; } &:focus { box-shadow: inset 0 2px 4px 0 rgba($black, 0.2); } } } @mixin btn-color($light, $border-light, $normal, $border-normal, $dark, $border-dark, $color) { background-color: $light; border-color: $border-light; color: $color; &:hover, &:focus { background-color: $normal; border-color: $border-normal; color: $color; } &:active, &.active { box-shadow: $gl-btn-active-background; background-color: $dark; border-color: $border-dark; color: $color; } } @mixin btn-green { @include btn-color($green-500, $green-600, $green-600, $green-700, $green-700, $green-800, $white-light); } @mixin btn-blue { @include btn-color($blue-500, $blue-600, $blue-600, $blue-700, $blue-700, $blue-800, $white-light); } @mixin btn-orange { @include btn-color($orange-500, $orange-600, $orange-600, $orange-700, $orange-700, $orange-800, $white-light); } @mixin btn-red { @include btn-color($red-500, $red-600, $red-600, $red-700, $red-700, $red-800, $white-light); } @mixin btn-white { @include btn-color($white-light, $border-color, $white-normal, $border-white-normal, $white-dark, $border-gray-dark, $gl-text-color); } @mixin btn-with-margin { margin-left: $btn-side-margin; float: left; &.inline { float: none; } &.btn-sm { margin-left: $btn-sm-side-margin; } } @mixin btn-svg { height: $gl-padding; width: $gl-padding; top: 0; vertical-align: text-top; } .btn { @include btn-default; @include btn-white; color: $gl-text-color; white-space: nowrap; &:focus:active { outline: 0; } &.btn-sm { padding: 4px 10px; font-size: $gl-btn-small-font-size; line-height: $gl-btn-small-line-height; } &.btn-xs { padding: 2px $gl-btn-padding; font-size: $gl-btn-xs-font-size; line-height: $gl-btn-xs-line-height; } &.btn-success, &.btn-register { @include btn-green; } &.btn-inverted { &.btn-success { @include btn-outline($white-light, $green-600, $green-500, $green-100, $green-700, $green-500, $green-200, $green-600, $green-800); } &.btn-remove, &.btn-danger { @include btn-outline($white-light, $red-500, $red-500, $red-100, $red-700, $red-500, $red-200, $red-600, $red-800); } &.btn-warning { @include btn-outline($white-light, $orange-500, $orange-500, $orange-100, $orange-700, $orange-500, $orange-200, $orange-600, $orange-800); } &.btn-primary, &.btn-info { @include btn-outline($white-light, $blue-500, $blue-500, $blue-100, $blue-700, $blue-500, $blue-200, $blue-600, $blue-800); } } &.btn-info, &.btn-primary { @include btn-blue; } &.btn-warning { @include btn-orange; } &.btn-close, &.btn-close-color { @include btn-outline($white-light, $orange-600, $orange-500, $orange-100, $orange-700, $orange-500, $orange-200, $orange-600, $orange-800); } &.btn-spam { @include btn-outline($white-light, $red-500, $red-500, $red-100, $red-700, $red-500, $red-200, $red-600, $red-800); } &.btn-danger, &.btn-remove, &.btn-red { @include btn-red; } &.btn-cancel { float: right; } &.btn-reopen, .btn-reopen-color { /* should be same as parent class for now */ } &.btn-grouped { @include btn-with-margin; } &.btn-icon { color: $gl-gray-700; } .fa-caret-down, .fa-chevron-down { margin-left: 5px; } &.dropdown-toggle { .fa-caret-down { margin-left: 3px; } } &.btn-text-field { width: 100%; text-align: left; padding: 6px 16px; border-color: $border-color; color: $gray-darkest; background-color: $white-light; &:hover, &:active, &:focus { cursor: text; box-shadow: none; border-color: lighten($blue-300, 20%); color: $gray-darkest; } } &.dot-highlight::after { content: ''; background-color: $blue-500; width: $gl-padding * 0.5; height: $gl-padding * 0.5; display: inline-block; border-radius: 50%; margin-left: 3px; } svg { height: 15px; width: 15px; position: relative; top: 2px; } svg, .fa { &:not(:last-child) { margin-right: 5px; } } } .btn-terminal { svg { height: 14px; width: $default-icon-size; } } .btn-lg { padding: 12px 20px; } .btn-transparent { color: $gl-text-color-secondary; background-color: transparent; border: 0; &:hover, &:active, &:focus { background-color: transparent; box-shadow: none; } } .btn-block { width: 100%; margin: 0; margin-bottom: 15px; &.btn { padding: 6px 0; } } .btn-align-content { display: flex; justify-content: center; align-items: center; } .btn-group { &.btn-grouped { @include btn-with-margin; } } .btn-clipboard { border: 0; padding: 0 5px; svg { top: auto; width: 16px; height: 16px; } } .input-group-prepend, .input-group-append { .btn { @include btn-middle; &:hover { outline: none; } &:active { outline: none; } &.btn-clipboard { padding-left: 15px; padding-right: 15px; } } .active { box-shadow: $gl-btn-active-background; border: 1px solid $border-gray-dark !important; background-color: $btn-active-gray-light !important; } } .btn-loading { &:not(.disabled) { .fa, .spinner { display: none; } } .fa { margin-right: 5px; } } .btn-build { margin-left: 10px; i { color: $gl-text-color-secondary; } svg { fill: $gl-text-color-secondary; } } .clone-dropdown-btn a { color: $gl-gray-700; &:hover { text-decoration: none; } } .btn-static { background-color: $gray-light !important; border: 1px solid $border-gray-normal; cursor: default; &:active { box-shadow: inset 0 0 0 $white-light; } } .btn-inverted { &-secondary { @include btn-outline($white-light, $blue-500, $blue-500, $blue-100, $blue-700, $blue-500, $blue-200, $blue-600, $blue-800); } } @include media-breakpoint-down(xs) { .btn-wide-on-xs { width: 100%; } } .btn-blank { padding: 0; background: transparent; border: 0; border-radius: 0; &:hover, &:active, &:focus { outline: 0; background: transparent; box-shadow: none; } } .btn-link { padding: 0; background-color: transparent; color: $blue-600; font-weight: normal; border-radius: 0; border-color: transparent; &:hover, &:active, &:focus { color: $blue-800; text-decoration: underline; background-color: transparent; border-color: transparent; } &.btn-secondary-hover-link, &.btn-default-hover-link { color: $gl-text-color-secondary; &:hover, &:active, &:focus { color: $blue-600; text-decoration: none; } } &.btn-primary-hover-link { color: inherit; &:hover, &:active, &:focus { color: $blue-600; text-decoration: none; } } } .btn-missing { color: $gl-text-color-secondary; border: 1px dashed $border-gray-normal-dashed; border-radius: $border-radius-default; &:hover, &:active, &:focus { color: $gl-text-color-secondary; background-color: $white-normal; } } .btn-svg svg { @include btn-svg; } // All disabled buttons, regardless of color, type, etc %disabled { background-color: $gray-light !important; border-color: $gray-200 !important; color: $gl-text-color-disabled !important; opacity: 1 !important; cursor: default !important; i { color: $gl-text-color-disabled !important; } } .btn.disabled, .btn[disabled], fieldset[disabled] .btn, .dropdown-toggle[disabled], [disabled].dropdown-menu-toggle { @extend %disabled; &:hover { @extend %disabled; } } [readonly] { cursor: default; } .btn-no-padding { padding: 0; }