diff options
Diffstat (limited to 'scss/mixins/_forms.scss')
| -rw-r--r-- | scss/mixins/_forms.scss | 57 |
1 files changed, 38 insertions, 19 deletions
diff --git a/scss/mixins/_forms.scss b/scss/mixins/_forms.scss index dc5bdb0b9..00b476413 100644 --- a/scss/mixins/_forms.scss +++ b/scss/mixins/_forms.scss @@ -21,7 +21,8 @@ $icon, $tooltip-color: color-contrast($color), $tooltip-bg-color: rgba($color, $form-feedback-tooltip-opacity), - $focus-box-shadow: 0 0 $input-btn-focus-blur $input-focus-width rgba($color, $input-btn-focus-color-opacity) + $focus-box-shadow: 0 0 $input-btn-focus-blur $input-focus-width rgba($color, $input-btn-focus-color-opacity), + $border-color: $color ) { .#{$state}-feedback { display: none; @@ -56,7 +57,7 @@ .form-control { @include form-validation-state-selector($state) { - border-color: $color; + border-color: $border-color; @if $enable-validation-icons { padding-right: $input-height-inner; @@ -67,8 +68,13 @@ } &:focus { - border-color: $color; - box-shadow: $focus-box-shadow; + border-color: $border-color; + @if $enable-shadows { + @include box-shadow($input-box-shadow, $focus-box-shadow); + } @else { + // Avoid using mixin so we can pass custom focus shadow properly + box-shadow: $focus-box-shadow; + } } } } @@ -85,28 +91,41 @@ .form-select { @include form-validation-state-selector($state) { - border-color: $color; + border-color: $border-color; @if $enable-validation-icons { &:not([multiple]):not([size]), &:not([multiple])[size="1"] { + --#{$prefix}form-select-bg-icon: #{escape-svg($icon)}; padding-right: $form-select-feedback-icon-padding-end; - background-image: escape-svg($form-select-indicator), escape-svg($icon); background-position: $form-select-bg-position, $form-select-feedback-icon-position; background-size: $form-select-bg-size, $form-select-feedback-icon-size; } } &:focus { - border-color: $color; - box-shadow: $focus-box-shadow; + border-color: $border-color; + @if $enable-shadows { + @include box-shadow($form-select-box-shadow, $focus-box-shadow); + } @else { + // Avoid using mixin so we can pass custom focus shadow properly + box-shadow: $focus-box-shadow; + } + } + } + } + + .form-control-color { + @include form-validation-state-selector($state) { + @if $enable-validation-icons { + width: add($form-color-width, $input-height-inner); } } } .form-check-input { @include form-validation-state-selector($state) { - border-color: $color; + border-color: $border-color; &:checked { background-color: $color; @@ -127,16 +146,16 @@ } } - .input-group .form-control, - .input-group .form-select { - @include form-validation-state-selector($state) { - @if $state == "valid" { - z-index: 1; - } @else if $state == "invalid" { - z-index: 2; - } - &:focus { - z-index: 3; + .input-group { + > .form-control:not(:focus), + > .form-select:not(:focus), + > .form-floating:not(:focus-within) { + @include form-validation-state-selector($state) { + @if $state == "valid" { + z-index: 3; + } @else if $state == "invalid" { + z-index: 4; + } } } } |
