aboutsummaryrefslogtreecommitdiff
path: root/scss/mixins/_forms.scss
diff options
context:
space:
mode:
Diffstat (limited to 'scss/mixins/_forms.scss')
-rw-r--r--scss/mixins/_forms.scss40
1 files changed, 30 insertions, 10 deletions
diff --git a/scss/mixins/_forms.scss b/scss/mixins/_forms.scss
index 5e4cfd488..283462fd5 100644
--- a/scss/mixins/_forms.scss
+++ b/scss/mixins/_forms.scss
@@ -1,5 +1,7 @@
// This mixin uses an `if()` technique to be compatible with Dart Sass
// See https://github.com/sass/sass/issues/1873#issuecomment-152293725 for more details
+
+// scss-docs-start form-validation-mixins
@mixin form-validation-state-selector($state) {
@if ($state == "valid" or $state == "invalid") {
.was-validated #{if(&, "&", "")}:#{$state},
@@ -13,7 +15,14 @@
}
}
-@mixin form-validation-state($state, $color, $icon) {
+@mixin form-validation-state(
+ $state,
+ $color,
+ $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)
+) {
.#{$state}-feedback {
display: none;
width: 100%;
@@ -33,8 +42,8 @@
margin-top: .1rem;
@include font-size($form-feedback-tooltip-font-size);
line-height: $form-feedback-tooltip-line-height;
- color: color-contrast($color);
- background-color: rgba($color, $form-feedback-tooltip-opacity);
+ color: $tooltip-color;
+ background-color: $tooltip-bg-color;
@include border-radius($form-feedback-tooltip-border-radius);
}
@@ -59,7 +68,7 @@
&:focus {
border-color: $color;
- box-shadow: 0 0 0 $input-focus-width rgba($color, $input-btn-focus-color-opacity);
+ box-shadow: $focus-box-shadow;
}
}
}
@@ -79,15 +88,18 @@
border-color: $color;
@if $enable-validation-icons {
- 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;
+ &:not([multiple]):not([size]),
+ &:not([multiple])[size="1"] {
+ 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: 0 0 0 $input-focus-width rgba($color, .25);
+ box-shadow: $focus-box-shadow;
}
}
}
@@ -101,7 +113,7 @@
}
&:focus {
- box-shadow: 0 0 0 $input-focus-width rgba($color, .25);
+ box-shadow: $focus-box-shadow;
}
~ .form-check-label {
@@ -114,4 +126,12 @@
margin-left: .5em;
}
}
+
+ .input-group .form-control,
+ .input-group .form-select {
+ @include form-validation-state-selector($state) {
+ z-index: 3;
+ }
+ }
}
+// scss-docs-end form-validation-mixins