bootstrap 5.0.0.alpha2 → 5.0.0.alpha3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -2
  3. data/assets/javascripts/bootstrap-sprockets.js +6 -7
  4. data/assets/javascripts/bootstrap.js +220 -267
  5. data/assets/javascripts/bootstrap.min.js +2 -2
  6. data/assets/javascripts/bootstrap/alert.js +25 -15
  7. data/assets/javascripts/bootstrap/button.js +25 -15
  8. data/assets/javascripts/bootstrap/carousel.js +46 -24
  9. data/assets/javascripts/bootstrap/collapse.js +25 -15
  10. data/assets/javascripts/bootstrap/dom/data.js +2 -2
  11. data/assets/javascripts/bootstrap/dom/event-handler.js +8 -16
  12. data/assets/javascripts/bootstrap/dom/manipulator.js +2 -13
  13. data/assets/javascripts/bootstrap/dom/selector-engine.js +9 -9
  14. data/assets/javascripts/bootstrap/dropdown.js +34 -24
  15. data/assets/javascripts/bootstrap/modal.js +25 -15
  16. data/assets/javascripts/bootstrap/popover.js +26 -15
  17. data/assets/javascripts/bootstrap/scrollspy.js +25 -14
  18. data/assets/javascripts/bootstrap/tab.js +25 -15
  19. data/assets/javascripts/bootstrap/toast.js +26 -16
  20. data/assets/javascripts/bootstrap/tooltip.js +27 -17
  21. data/assets/stylesheets/_bootstrap-grid.scss +1 -1
  22. data/assets/stylesheets/_bootstrap-reboot.scss +1 -1
  23. data/assets/stylesheets/_bootstrap.scss +2 -1
  24. data/assets/stylesheets/bootstrap/_accordion.scss +125 -0
  25. data/assets/stylesheets/bootstrap/_alert.scss +10 -3
  26. data/assets/stylesheets/bootstrap/_breadcrumb.scss +1 -3
  27. data/assets/stylesheets/bootstrap/_button-group.scss +0 -2
  28. data/assets/stylesheets/bootstrap/_buttons.scss +0 -15
  29. data/assets/stylesheets/bootstrap/_card.scss +0 -27
  30. data/assets/stylesheets/bootstrap/_close.scss +1 -2
  31. data/assets/stylesheets/bootstrap/_forms.scss +1 -1
  32. data/assets/stylesheets/bootstrap/_functions.scss +12 -12
  33. data/assets/stylesheets/bootstrap/_list-group.scss +8 -2
  34. data/assets/stylesheets/bootstrap/_popover.scss +1 -1
  35. data/assets/stylesheets/bootstrap/_progress.scss +1 -1
  36. data/assets/stylesheets/bootstrap/_reboot.scss +19 -17
  37. data/assets/stylesheets/bootstrap/_root.scss +5 -5
  38. data/assets/stylesheets/bootstrap/_spinners.scss +11 -2
  39. data/assets/stylesheets/bootstrap/_tables.scss +16 -16
  40. data/assets/stylesheets/bootstrap/_utilities.scss +27 -13
  41. data/assets/stylesheets/bootstrap/_variables.scss +183 -160
  42. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +1 -1
  43. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +61 -0
  44. data/assets/stylesheets/bootstrap/forms/_form-check.scss +15 -6
  45. data/assets/stylesheets/bootstrap/forms/_form-control.scss +115 -8
  46. data/assets/stylesheets/bootstrap/forms/_form-range.scss +0 -45
  47. data/assets/stylesheets/bootstrap/forms/_form-select.scss +0 -14
  48. data/assets/stylesheets/bootstrap/forms/_input-group.scss +20 -39
  49. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +2 -2
  50. data/assets/stylesheets/bootstrap/mixins/_alert.scss +1 -1
  51. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +4 -4
  52. data/assets/stylesheets/bootstrap/mixins/_forms.scss +0 -16
  53. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +1 -1
  54. data/assets/stylesheets/bootstrap/mixins/_grid.scss +10 -10
  55. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +1 -1
  56. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +7 -7
  57. data/lib/bootstrap/version.rb +2 -2
  58. metadata +4 -4
  59. data/assets/javascripts/bootstrap/dom/polyfill.js +0 -110
  60. data/assets/stylesheets/bootstrap/forms/_form-file.scss +0 -91
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap Utilities v5.0.0-alpha2 (https://getbootstrap.com/)
2
+ * Bootstrap Utilities v5.0.0-alpha3 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2020 The Bootstrap Authors
4
4
  * Copyright 2011-2020 Twitter, Inc.
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
@@ -0,0 +1,61 @@
1
+ .form-floating {
2
+ position: relative;
3
+
4
+ > .form-control,
5
+ > .form-select {
6
+ height: $form-floating-height;
7
+ padding: $form-floating-padding-y $form-floating-padding-x;
8
+ }
9
+
10
+ > label {
11
+ position: absolute;
12
+ top: 0;
13
+ left: 0;
14
+ height: 100%; // allow textareas
15
+ padding: $form-floating-padding-y $form-floating-padding-x;
16
+ pointer-events: none;
17
+ border: $input-border-width solid transparent; // Required for aligning label's text with the input as it affects inner box model
18
+ transform-origin: 0 0;
19
+ @include transition($form-floating-transition);
20
+ }
21
+
22
+ // stylelint-disable no-duplicate-selectors
23
+ > .form-control {
24
+ &::placeholder {
25
+ color: transparent;
26
+ }
27
+
28
+ &:focus,
29
+ &:not(:placeholder-shown) {
30
+ padding-top: $form-floating-input-padding-t;
31
+ padding-bottom: $form-floating-input-padding-b;
32
+ }
33
+ // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
34
+ &:-webkit-autofill {
35
+ padding-top: $form-floating-input-padding-t;
36
+ padding-bottom: $form-floating-input-padding-b;
37
+ }
38
+ }
39
+
40
+ > .form-select {
41
+ padding-top: $form-floating-input-padding-t;
42
+ padding-bottom: $form-floating-input-padding-b;
43
+ }
44
+
45
+ > .form-control:focus,
46
+ > .form-control:not(:placeholder-shown),
47
+ > .form-select {
48
+ ~ label {
49
+ opacity: $form-floating-label-opacity;
50
+ transform: $form-floating-label-transform;
51
+ }
52
+ }
53
+ // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
54
+ > .form-control:-webkit-autofill {
55
+ ~ label {
56
+ opacity: $form-floating-label-opacity;
57
+ transform: $form-floating-label-transform;
58
+ }
59
+ }
60
+ // stylelint-enable no-duplicate-selectors
61
+ }
@@ -53,7 +53,7 @@
53
53
 
54
54
  &[type="checkbox"] {
55
55
  @if $enable-gradients {
56
- background-image: escape-svg($form-check-input-checked-bg-image), var(--bs-gradient);
56
+ background-image: escape-svg($form-check-input-checked-bg-image), var(--#{$variable-prefix}gradient);
57
57
  } @else {
58
58
  background-image: escape-svg($form-check-input-checked-bg-image);
59
59
  }
@@ -61,7 +61,7 @@
61
61
 
62
62
  &[type="radio"] {
63
63
  @if $enable-gradients {
64
- background-image: escape-svg($form-check-radio-checked-bg-image), var(--bs-gradient);
64
+ background-image: escape-svg($form-check-radio-checked-bg-image), var(--#{$variable-prefix}gradient);
65
65
  } @else {
66
66
  background-image: escape-svg($form-check-radio-checked-bg-image);
67
67
  }
@@ -73,7 +73,7 @@
73
73
  border-color: $form-check-input-indeterminate-border-color;
74
74
 
75
75
  @if $enable-gradients {
76
- background-image: escape-svg($form-check-input-indeterminate-bg-image), var(--bs-gradient);
76
+ background-image: escape-svg($form-check-input-indeterminate-bg-image), var(--#{$variable-prefix}gradient);
77
77
  } @else {
78
78
  background-image: escape-svg($form-check-input-indeterminate-bg-image);
79
79
  }
@@ -82,7 +82,7 @@
82
82
  &:disabled {
83
83
  pointer-events: none;
84
84
  filter: none;
85
- opacity: .5;
85
+ opacity: $form-check-input-disabled-opacity;
86
86
  }
87
87
 
88
88
  // Use disabled attribute in addition of :disabled pseudo-class
@@ -90,7 +90,7 @@
90
90
  &[disabled],
91
91
  &:disabled {
92
92
  ~ .form-check-label {
93
- opacity: .5;
93
+ opacity: $form-check-label-disabled-opacity;
94
94
  }
95
95
  }
96
96
  }
@@ -122,7 +122,7 @@
122
122
  background-position: $form-switch-checked-bg-position;
123
123
 
124
124
  @if $enable-gradients {
125
- background-image: escape-svg($form-switch-checked-bg-image), var(--bs-gradient);
125
+ background-image: escape-svg($form-switch-checked-bg-image), var(--#{$variable-prefix}gradient);
126
126
  } @else {
127
127
  background-image: escape-svg($form-switch-checked-bg-image);
128
128
  }
@@ -139,4 +139,13 @@
139
139
  position: absolute;
140
140
  clip: rect(0, 0, 0, 0);
141
141
  pointer-events: none;
142
+
143
+ &[disabled],
144
+ &:disabled {
145
+ + .btn {
146
+ pointer-events: none;
147
+ filter: none;
148
+ opacity: $form-check-btn-check-disabled-opacity;
149
+ }
150
+ }
142
151
  }
@@ -1,11 +1,10 @@
1
1
  //
2
- // Textual form controls
2
+ // General form controls (plus a few specific high-level interventions)
3
3
  //
4
4
 
5
5
  .form-control {
6
6
  display: block;
7
7
  width: 100%;
8
- min-height: $input-height;
9
8
  padding: $input-padding-y $input-padding-x;
10
9
  font-family: $input-font-family;
11
10
  @include font-size($input-font-size);
@@ -23,6 +22,14 @@
23
22
  @include box-shadow($input-box-shadow);
24
23
  @include transition($input-transition);
25
24
 
25
+ &[type="file"] {
26
+ overflow: hidden; // prevent pseudo element button overlap
27
+
28
+ &:not(:disabled):not([readonly]) {
29
+ cursor: pointer;
30
+ }
31
+ }
32
+
26
33
  // Customize the `:focus` state to imitate native WebKit styles.
27
34
  &:focus {
28
35
  color: $input-focus-color;
@@ -37,6 +44,14 @@
37
44
  }
38
45
  }
39
46
 
47
+ // Add some height to date inputs on iOS
48
+ // https://github.com/twbs/bootstrap/issues/23307
49
+ // TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved
50
+ &::-webkit-date-and-time-value {
51
+ // Multiply line-height by 1em if it has no unit
52
+ height: if(unit($input-line-height) == "", $input-line-height * 1em, $input-line-height);
53
+ }
54
+
40
55
  // Placeholder
41
56
  &::placeholder {
42
57
  color: $input-placeholder-color;
@@ -56,6 +71,47 @@
56
71
  // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.
57
72
  opacity: 1;
58
73
  }
74
+
75
+ // File input buttons theming
76
+ // stylelint-disable-next-line selector-pseudo-element-no-unknown
77
+ &::file-selector-button {
78
+ padding: $input-padding-y $input-padding-x;
79
+ margin: (-$input-padding-y) (-$input-padding-x);
80
+ margin-inline-end: $input-padding-x;
81
+ color: $form-file-button-color;
82
+ @include gradient-bg($form-file-button-bg);
83
+ pointer-events: none;
84
+ border-color: inherit;
85
+ border-style: solid;
86
+ border-width: 0;
87
+ border-inline-end-width: $input-border-width;
88
+ border-radius: 0; // stylelint-disable-line property-disallowed-list
89
+ @include transition($btn-transition);
90
+ }
91
+
92
+ // stylelint-disable-next-line selector-pseudo-element-no-unknown
93
+ &:hover:not(:disabled):not([readonly])::file-selector-button {
94
+ background-color: $form-file-button-hover-bg;
95
+ }
96
+
97
+ &::-webkit-file-upload-button {
98
+ padding: $input-padding-y $input-padding-x;
99
+ margin: (-$input-padding-y) (-$input-padding-x);
100
+ margin-inline-end: $input-padding-x;
101
+ color: $form-file-button-color;
102
+ @include gradient-bg($form-file-button-bg);
103
+ pointer-events: none;
104
+ border-color: inherit;
105
+ border-style: solid;
106
+ border-width: 0;
107
+ border-inline-end-width: $input-border-width;
108
+ border-radius: 0; // stylelint-disable-line property-disallowed-list
109
+ @include transition($btn-transition);
110
+ }
111
+
112
+ &:hover:not(:disabled):not([readonly])::-webkit-file-upload-button {
113
+ background-color: $form-file-button-hover-bg;
114
+ }
59
115
  }
60
116
 
61
117
  // Readonly controls as plain text
@@ -93,6 +149,19 @@
93
149
  padding: $input-padding-y-sm $input-padding-x-sm;
94
150
  @include font-size($input-font-size-sm);
95
151
  @include border-radius($input-border-radius-sm);
152
+
153
+ // stylelint-disable-next-line selector-pseudo-element-no-unknown
154
+ &::file-selector-button {
155
+ padding: $input-padding-y-sm $input-padding-x-sm;
156
+ margin: (-$input-padding-y-sm) (-$input-padding-x-sm);
157
+ margin-inline-end: $input-padding-x-sm;
158
+ }
159
+
160
+ &::-webkit-file-upload-button {
161
+ padding: $input-padding-y-sm $input-padding-x-sm;
162
+ margin: (-$input-padding-y-sm) (-$input-padding-x-sm);
163
+ margin-inline-end: $input-padding-x-sm;
164
+ }
96
165
  }
97
166
 
98
167
  .form-control-lg {
@@ -100,17 +169,55 @@
100
169
  padding: $input-padding-y-lg $input-padding-x-lg;
101
170
  @include font-size($input-font-size-lg);
102
171
  @include border-radius($input-border-radius-lg);
172
+
173
+ // stylelint-disable-next-line selector-pseudo-element-no-unknown
174
+ &::file-selector-button {
175
+ padding: $input-padding-y-lg $input-padding-x-lg;
176
+ margin: (-$input-padding-y-lg) (-$input-padding-x-lg);
177
+ margin-inline-end: $input-padding-x-lg;
178
+ }
179
+
180
+ &::-webkit-file-upload-button {
181
+ padding: $input-padding-y-lg $input-padding-x-lg;
182
+ margin: (-$input-padding-y-lg) (-$input-padding-x-lg);
183
+ margin-inline-end: $input-padding-x-lg;
184
+ }
185
+ }
186
+
187
+ // Make sure textareas don't shrink too much when resized
188
+ // https://github.com/twbs/bootstrap/pull/29124
189
+ // stylelint-disable selector-no-qualifying-type
190
+ textarea {
191
+ &.form-control {
192
+ min-height: $input-height;
193
+ }
194
+
195
+ &.form-control-sm {
196
+ min-height: $input-height-sm;
197
+ }
198
+
199
+ &.form-control-lg {
200
+ min-height: $input-height-lg;
201
+ }
103
202
  }
203
+ // stylelint-enable selector-no-qualifying-type
104
204
 
105
205
  .form-control-color {
106
206
  max-width: 3rem;
207
+ height: auto; // Override fixed browser height
107
208
  padding: $input-padding-y;
108
- }
109
209
 
110
- .form-control-color::-moz-color-swatch {
111
- @include border-radius($input-border-radius);
112
- }
210
+ &:not(:disabled):not([readonly]) {
211
+ cursor: pointer;
212
+ }
213
+
214
+ &::-moz-color-swatch {
215
+ height: if(unit($input-line-height) == "", $input-line-height * 1em, $input-line-height);
216
+ @include border-radius($input-border-radius);
217
+ }
113
218
 
114
- .form-control-color::-webkit-color-swatch {
115
- @include border-radius($input-border-radius);
219
+ &::-webkit-color-swatch {
220
+ height: if(unit($input-line-height) == "", $input-line-height * 1em, $input-line-height);
221
+ @include border-radius($input-border-radius);
222
+ }
116
223
  }
@@ -18,7 +18,6 @@
18
18
  // No box-shadow() mixin for focus accessibility.
19
19
  &::-webkit-slider-thumb { box-shadow: $form-range-thumb-focus-box-shadow; }
20
20
  &::-moz-range-thumb { box-shadow: $form-range-thumb-focus-box-shadow; }
21
- &::-ms-thumb { box-shadow: $form-range-thumb-focus-box-shadow; }
22
21
  }
23
22
 
24
23
  &::-moz-focus-outer {
@@ -78,46 +77,6 @@
78
77
  @include box-shadow($form-range-track-box-shadow);
79
78
  }
80
79
 
81
- &::-ms-thumb {
82
- width: $form-range-thumb-width;
83
- height: $form-range-thumb-height;
84
- margin-top: 0; // Edge specific
85
- margin-right: $form-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.
86
- margin-left: $form-range-thumb-focus-box-shadow-width; // Workaround that overflowed box-shadow is hidden.
87
- @include gradient-bg($form-range-thumb-bg);
88
- border: $form-range-thumb-border;
89
- @include border-radius($form-range-thumb-border-radius);
90
- @include box-shadow($form-range-thumb-box-shadow);
91
- @include transition($form-range-thumb-transition);
92
- appearance: none;
93
-
94
- &:active {
95
- @include gradient-bg($form-range-thumb-active-bg);
96
- }
97
- }
98
-
99
- &::-ms-track {
100
- width: $form-range-track-width;
101
- height: $form-range-track-height;
102
- color: transparent;
103
- cursor: $form-range-track-cursor;
104
- background-color: transparent;
105
- border-color: transparent;
106
- border-width: $form-range-thumb-height / 2;
107
- @include box-shadow($form-range-track-box-shadow);
108
- }
109
-
110
- &::-ms-fill-lower {
111
- background-color: $form-range-track-bg;
112
- @include border-radius($form-range-track-border-radius);
113
- }
114
-
115
- &::-ms-fill-upper {
116
- margin-right: 15px; // arbitrary?
117
- background-color: $form-range-track-bg;
118
- @include border-radius($form-range-track-border-radius);
119
- }
120
-
121
80
  &:disabled {
122
81
  pointer-events: none;
123
82
 
@@ -128,9 +87,5 @@
128
87
  &::-moz-range-thumb {
129
88
  background-color: $form-range-thumb-disabled-bg;
130
89
  }
131
-
132
- &::-ms-thumb {
133
- background-color: $form-range-thumb-disabled-bg;
134
- }
135
90
  }
136
91
  }
@@ -6,7 +6,6 @@
6
6
  .form-select {
7
7
  display: block;
8
8
  width: 100%;
9
- height: $form-select-height;
10
9
  padding: $form-select-padding-y ($form-select-padding-x + $form-select-indicator-padding) $form-select-padding-y $form-select-padding-x;
11
10
  font-family: $form-select-font-family;
12
11
  @include font-size($form-select-font-size);
@@ -33,21 +32,10 @@
33
32
  // Avoid using mixin so we can pass custom focus shadow properly
34
33
  box-shadow: $form-select-focus-box-shadow;
35
34
  }
36
-
37
- &::-ms-value {
38
- // For visual consistency with other platforms/browsers,
39
- // suppress the default white text on blue background highlight given to
40
- // the selected option text when the (still closed) <select> receives focus
41
- // in Edge.
42
- // See https://github.com/twbs/bootstrap/issues/19398.
43
- color: $input-color;
44
- background-color: $input-bg;
45
- }
46
35
  }
47
36
 
48
37
  &[multiple],
49
38
  &[size]:not([size="1"]) {
50
- height: auto;
51
39
  padding-right: $form-select-padding-x;
52
40
  background-image: none;
53
41
  }
@@ -66,7 +54,6 @@
66
54
  }
67
55
 
68
56
  .form-select-sm {
69
- height: $form-select-height-sm;
70
57
  padding-top: $form-select-padding-y-sm;
71
58
  padding-bottom: $form-select-padding-y-sm;
72
59
  padding-left: $form-select-padding-x-sm;
@@ -74,7 +61,6 @@
74
61
  }
75
62
 
76
63
  .form-select-lg {
77
- height: $form-select-height-lg;
78
64
  padding-top: $form-select-padding-y-lg;
79
65
  padding-bottom: $form-select-padding-y-lg;
80
66
  padding-left: $form-select-padding-x-lg;
@@ -10,8 +10,7 @@
10
10
  width: 100%;
11
11
 
12
12
  > .form-control,
13
- > .form-select,
14
- > .form-file {
13
+ > .form-select {
15
14
  position: relative; // For focus state's z-index
16
15
  flex: 1 1 auto;
17
16
  width: 1%;
@@ -20,26 +19,10 @@
20
19
 
21
20
  // Bring the "active" form control to the top of surrounding elements
22
21
  > .form-control:focus,
23
- > .form-select:focus,
24
- > .form-file .form-file-input:focus ~ .form-file-label {
22
+ > .form-select:focus {
25
23
  z-index: 3;
26
24
  }
27
25
 
28
- // Bring the custom file input above the label
29
- > .form-file {
30
- > .form-file-input:focus {
31
- z-index: 4;
32
- }
33
-
34
- &:not(:last-child) > .form-file-label {
35
- @include border-right-radius(0);
36
- }
37
-
38
- &:not(:first-child) > .form-file-label {
39
- @include border-left-radius(0);
40
- }
41
- }
42
-
43
26
  // Ensure buttons are always above inputs for more visually pleasing borders.
44
27
  // This isn't needed for `.input-group-text` since it shares the same border-color
45
28
  // as our inputs.
@@ -80,14 +63,6 @@
80
63
  // Remix the default form control sizing classes into new ones for easier
81
64
  // manipulation.
82
65
 
83
- .input-group-lg > .form-control {
84
- min-height: $input-height-lg;
85
- }
86
-
87
- .input-group-lg > .form-select {
88
- height: $input-height-lg;
89
- }
90
-
91
66
  .input-group-lg > .form-control,
92
67
  .input-group-lg > .form-select,
93
68
  .input-group-lg > .input-group-text,
@@ -97,14 +72,6 @@
97
72
  @include border-radius($input-border-radius-lg);
98
73
  }
99
74
 
100
- .input-group-sm > .form-control {
101
- min-height: $input-height-sm;
102
- }
103
-
104
- .input-group-sm > .form-select {
105
- height: $input-height-sm;
106
- }
107
-
108
75
  .input-group-sm > .form-control,
109
76
  .input-group-sm > .form-select,
110
77
  .input-group-sm > .input-group-text,
@@ -128,12 +95,26 @@
128
95
 
129
96
  // stylelint-disable-next-line no-duplicate-selectors
130
97
  .input-group {
131
- > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu),
132
- > .dropdown-toggle:nth-last-child(n + 3) {
133
- @include border-right-radius(0);
98
+ &:not(.has-validation) {
99
+ > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu),
100
+ > .dropdown-toggle:nth-last-child(n + 3) {
101
+ @include border-right-radius(0);
102
+ }
103
+ }
104
+
105
+ &.has-validation {
106
+ > :nth-last-child(n + 3):not(.dropdown-toggle):not(.dropdown-menu),
107
+ > .dropdown-toggle:nth-last-child(n + 4) {
108
+ @include border-right-radius(0);
109
+ }
110
+ }
111
+
112
+ $validation-messages: "";
113
+ @each $state in map-keys($form-validation-states) {
114
+ $validation-messages: $validation-messages + ":not(." + unquote($state) + "-tooltip)" + ":not(." + unquote($state) + "-feedback)";
134
115
  }
135
116
 
136
- > :not(:first-child):not(.dropdown-menu) {
117
+ > :not(:first-child):not(.dropdown-menu)#{$validation-messages} {
137
118
  margin-left: -$input-border-width;
138
119
  @include border-left-radius(0);
139
120
  }