bootstrap 4.0.0.beta2.1 → 4.0.0.beta3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of bootstrap might be problematic. Click here for more details.

Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/README.md +1 -1
  4. data/assets/javascripts/bootstrap-sprockets.js +4 -4
  5. data/assets/javascripts/bootstrap.js +576 -534
  6. data/assets/javascripts/bootstrap.min.js +2 -2
  7. data/assets/javascripts/bootstrap/alert.js +3 -3
  8. data/assets/javascripts/bootstrap/button.js +3 -3
  9. data/assets/javascripts/bootstrap/carousel.js +10 -7
  10. data/assets/javascripts/bootstrap/collapse.js +7 -5
  11. data/assets/javascripts/bootstrap/dropdown.js +64 -37
  12. data/assets/javascripts/bootstrap/modal.js +8 -6
  13. data/assets/javascripts/bootstrap/popover.js +19 -7
  14. data/assets/javascripts/bootstrap/scrollspy.js +6 -4
  15. data/assets/javascripts/bootstrap/tab.js +8 -16
  16. data/assets/javascripts/bootstrap/tooltip.js +23 -17
  17. data/assets/javascripts/bootstrap/util.js +18 -21
  18. data/assets/stylesheets/_bootstrap-grid.scss +1 -1
  19. data/assets/stylesheets/_bootstrap-reboot.scss +1 -1
  20. data/assets/stylesheets/_bootstrap.scss +2 -2
  21. data/assets/stylesheets/bootstrap/_alert.scss +2 -0
  22. data/assets/stylesheets/bootstrap/_button-group.scss +31 -72
  23. data/assets/stylesheets/bootstrap/_buttons.scss +22 -11
  24. data/assets/stylesheets/bootstrap/_card.scss +23 -12
  25. data/assets/stylesheets/bootstrap/_carousel.scss +2 -2
  26. data/assets/stylesheets/bootstrap/_close.scss +6 -1
  27. data/assets/stylesheets/bootstrap/_code.scss +4 -12
  28. data/assets/stylesheets/bootstrap/_custom-forms.scss +110 -85
  29. data/assets/stylesheets/bootstrap/_dropdown.scss +30 -2
  30. data/assets/stylesheets/bootstrap/_forms.scss +46 -71
  31. data/assets/stylesheets/bootstrap/_functions.scss +4 -4
  32. data/assets/stylesheets/bootstrap/_images.scss +0 -1
  33. data/assets/stylesheets/bootstrap/_input-group.scss +96 -126
  34. data/assets/stylesheets/bootstrap/_list-group.scss +2 -1
  35. data/assets/stylesheets/bootstrap/_modal.scss +24 -9
  36. data/assets/stylesheets/bootstrap/_nav.scss +2 -2
  37. data/assets/stylesheets/bootstrap/_navbar.scss +6 -1
  38. data/assets/stylesheets/bootstrap/_pagination.scss +27 -19
  39. data/assets/stylesheets/bootstrap/_popover.scss +104 -115
  40. data/assets/stylesheets/bootstrap/_progress.scss +4 -1
  41. data/assets/stylesheets/bootstrap/_reboot.scss +3 -2
  42. data/assets/stylesheets/bootstrap/_tables.scss +1 -1
  43. data/assets/stylesheets/bootstrap/_tooltip.scss +63 -55
  44. data/assets/stylesheets/bootstrap/_type.scss +2 -2
  45. data/assets/stylesheets/bootstrap/_variables.scss +135 -91
  46. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +2 -1
  47. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +4 -2
  48. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +25 -18
  49. data/assets/stylesheets/bootstrap/mixins/_caret.scss +30 -0
  50. data/assets/stylesheets/bootstrap/mixins/_forms.scss +42 -17
  51. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +1 -1
  52. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +1 -0
  53. data/lib/bootstrap/version.rb +2 -2
  54. data/tasks/updater/js.rb +1 -1
  55. metadata +3 -3
@@ -27,7 +27,7 @@
27
27
  background-color: $dropdown-bg;
28
28
  background-clip: padding-box;
29
29
  border: $dropdown-border-width solid $dropdown-border-color;
30
- @include border-radius($border-radius);
30
+ @include border-radius($dropdown-border-radius);
31
31
  @include box-shadow($dropdown-box-shadow);
32
32
  }
33
33
 
@@ -44,6 +44,34 @@
44
44
  }
45
45
  }
46
46
 
47
+ .dropright {
48
+ .dropdown-menu {
49
+ margin-top: 0;
50
+ margin-left: $dropdown-spacer;
51
+ }
52
+
53
+ .dropdown-toggle {
54
+ @include caret(right);
55
+ &::after {
56
+ vertical-align: 0;
57
+ }
58
+ }
59
+ }
60
+
61
+ .dropleft {
62
+ .dropdown-menu {
63
+ margin-top: 0;
64
+ margin-right: $dropdown-spacer;
65
+ }
66
+
67
+ .dropdown-toggle {
68
+ @include caret(left);
69
+ &::before {
70
+ vertical-align: 0;
71
+ }
72
+ }
73
+ }
74
+
47
75
  // Dividers (basically an `<hr>`) within the dropdown
48
76
  .dropdown-divider {
49
77
  @include nav-divider($dropdown-divider-bg);
@@ -61,7 +89,7 @@
61
89
  color: $dropdown-link-color;
62
90
  text-align: inherit; // For `<button>`s
63
91
  white-space: nowrap; // prevent links from randomly breaking onto new lines
64
- background: none; // For `<button>`s
92
+ background-color: transparent; // For `<button>`s
65
93
  border: 0; // For `<button>`s
66
94
 
67
95
  @include hover-focus {
@@ -7,15 +7,13 @@
7
7
  .form-control {
8
8
  display: block;
9
9
  width: 100%;
10
- padding: $input-btn-padding-y $input-btn-padding-x;
10
+ padding: $input-padding-y $input-padding-x;
11
11
  font-size: $font-size-base;
12
- line-height: $input-btn-line-height;
12
+ line-height: $input-line-height;
13
13
  color: $input-color;
14
14
  background-color: $input-bg;
15
- // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214.
16
- background-image: none;
17
15
  background-clip: padding-box;
18
- border: $input-btn-border-width solid $input-border-color;
16
+ border: $input-border-width solid $input-border-color;
19
17
 
20
18
  // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.
21
19
  @if $enable-rounded {
@@ -78,6 +76,7 @@ select.form-control {
78
76
  .form-control-file,
79
77
  .form-control-range {
80
78
  display: block;
79
+ width: 100%;
81
80
  }
82
81
 
83
82
 
@@ -85,41 +84,28 @@ select.form-control {
85
84
  // Labels
86
85
  //
87
86
 
88
- // For use with horizontal and inline forms, when you need the label text to
89
- // align with the form controls.
87
+ // For use with horizontal and inline forms, when you need the label (or legend)
88
+ // text to align with the form controls.
90
89
  .col-form-label {
91
- padding-top: calc(#{$input-btn-padding-y} + #{$input-btn-border-width});
92
- padding-bottom: calc(#{$input-btn-padding-y} + #{$input-btn-border-width});
93
- margin-bottom: 0; // Override the `<label>` default
94
- line-height: $input-btn-line-height;
90
+ padding-top: calc(#{$input-padding-y} + #{$input-border-width});
91
+ padding-bottom: calc(#{$input-padding-y} + #{$input-border-width});
92
+ margin-bottom: 0; // Override the `<label>/<legend>` default
93
+ font-size: inherit; // Override the `<legend>` default
94
+ line-height: $input-line-height;
95
95
  }
96
96
 
97
97
  .col-form-label-lg {
98
- padding-top: calc(#{$input-btn-padding-y-lg} + #{$input-btn-border-width});
99
- padding-bottom: calc(#{$input-btn-padding-y-lg} + #{$input-btn-border-width});
98
+ padding-top: calc(#{$input-padding-y-lg} + #{$input-border-width});
99
+ padding-bottom: calc(#{$input-padding-y-lg} + #{$input-border-width});
100
100
  font-size: $font-size-lg;
101
- line-height: $input-btn-line-height-lg;
101
+ line-height: $input-line-height-lg;
102
102
  }
103
103
 
104
104
  .col-form-label-sm {
105
- padding-top: calc(#{$input-btn-padding-y-sm} + #{$input-btn-border-width});
106
- padding-bottom: calc(#{$input-btn-padding-y-sm} + #{$input-btn-border-width});
105
+ padding-top: calc(#{$input-padding-y-sm} + #{$input-border-width});
106
+ padding-bottom: calc(#{$input-padding-y-sm} + #{$input-border-width});
107
107
  font-size: $font-size-sm;
108
- line-height: $input-btn-line-height-sm;
109
- }
110
-
111
-
112
- //
113
- // Legends
114
- //
115
-
116
- // For use with horizontal and inline forms, when you need the legend text to
117
- // be the same size as regular labels, and to align with the form controls.
118
- .col-form-legend {
119
- padding-top: $input-btn-padding-y;
120
- padding-bottom: $input-btn-padding-y;
121
- margin-bottom: 0;
122
- font-size: $font-size-base;
108
+ line-height: $input-line-height-sm;
123
109
  }
124
110
 
125
111
 
@@ -129,13 +115,15 @@ select.form-control {
129
115
  // text (without any border, background color, focus indicator)
130
116
 
131
117
  .form-control-plaintext {
132
- padding-top: $input-btn-padding-y;
133
- padding-bottom: $input-btn-padding-y;
118
+ display: block;
119
+ width: 100%;
120
+ padding-top: $input-padding-y;
121
+ padding-bottom: $input-padding-y;
134
122
  margin-bottom: 0; // match inputs if this class comes on inputs with default margins
135
- line-height: $input-btn-line-height;
123
+ line-height: $input-line-height;
136
124
  background-color: transparent;
137
125
  border: solid transparent;
138
- border-width: $input-btn-border-width 0;
126
+ border-width: $input-border-width 0;
139
127
 
140
128
  &.form-control-sm,
141
129
  &.form-control-lg {
@@ -154,9 +142,9 @@ select.form-control {
154
142
  // issue documented in https://github.com/twbs/bootstrap/issues/15074.
155
143
 
156
144
  .form-control-sm {
157
- padding: $input-btn-padding-y-sm $input-btn-padding-x-sm;
145
+ padding: $input-padding-y-sm $input-padding-x-sm;
158
146
  font-size: $font-size-sm;
159
- line-height: $input-btn-line-height-sm;
147
+ line-height: $input-line-height-sm;
160
148
  @include border-radius($input-border-radius-sm);
161
149
  }
162
150
 
@@ -167,9 +155,9 @@ select.form-control-sm {
167
155
  }
168
156
 
169
157
  .form-control-lg {
170
- padding: $input-btn-padding-y-lg $input-btn-padding-x-lg;
158
+ padding: $input-padding-y-lg $input-padding-x-lg;
171
159
  font-size: $font-size-lg;
172
- line-height: $input-btn-line-height-lg;
160
+ line-height: $input-line-height-lg;
173
161
  @include border-radius($input-border-radius-lg);
174
162
  }
175
163
 
@@ -220,33 +208,35 @@ select.form-control-lg {
220
208
  .form-check {
221
209
  position: relative;
222
210
  display: block;
223
- margin-bottom: $form-check-margin-bottom;
224
-
225
- &.disabled {
226
- .form-check-label {
227
- color: $text-muted;
228
- }
229
- }
230
- }
231
-
232
- .form-check-label {
233
211
  padding-left: $form-check-input-gutter;
234
- margin-bottom: 0; // Override default `<label>` bottom margin
235
212
  }
236
213
 
237
214
  .form-check-input {
238
215
  position: absolute;
239
216
  margin-top: $form-check-input-margin-y;
240
217
  margin-left: -$form-check-input-gutter;
218
+
219
+ &:disabled ~ .form-check-label {
220
+ color: $text-muted;
221
+ }
222
+ }
223
+
224
+ .form-check-label {
225
+ margin-bottom: 0; // Override default `<label>` bottom margin
241
226
  }
242
227
 
243
- // Radios and checkboxes on same line
244
228
  .form-check-inline {
245
- display: inline-block;
229
+ display: inline-flex;
230
+ align-items: center;
231
+ padding-left: 0; // Override base .form-check
246
232
  margin-right: $form-check-inline-margin-x;
247
233
 
248
- .form-check-label {
249
- vertical-align: middle;
234
+ // Undo .form-check-input defaults and add some `margin-right`.
235
+ .form-check-input {
236
+ position: static;
237
+ margin-top: 0;
238
+ margin-right: $form-check-inline-input-margin-x;
239
+ margin-left: 0;
250
240
  }
251
241
  }
252
242
 
@@ -323,10 +313,6 @@ select.form-control-lg {
323
313
  align-items: center;
324
314
  justify-content: center;
325
315
  width: auto;
326
- margin-top: 0;
327
- margin-bottom: 0;
328
- }
329
- .form-check-label {
330
316
  padding-left: 0;
331
317
  }
332
318
  .form-check-input {
@@ -336,23 +322,12 @@ select.form-control-lg {
336
322
  margin-left: 0;
337
323
  }
338
324
 
339
- // Custom form controls
340
325
  .custom-control {
341
- display: flex;
342
326
  align-items: center;
343
327
  justify-content: center;
344
- padding-left: 0;
345
328
  }
346
- .custom-control-indicator {
347
- position: static;
348
- display: inline-block;
349
- margin-right: $form-check-input-margin-x; // Flexbox alignment means we lose our HTML space here, so we compensate.
350
- vertical-align: text-bottom;
351
- }
352
-
353
- // Re-override the feedback icon.
354
- .has-feedback .form-control-feedback {
355
- top: 0;
329
+ .custom-control-label {
330
+ margin-bottom: 0;
356
331
  }
357
332
  }
358
333
  }
@@ -56,14 +56,14 @@
56
56
 
57
57
  $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;
58
58
 
59
- @if ($yiq >= 150) {
60
- @return #111;
59
+ @if ($yiq >= $yiq-contrasted-threshold) {
60
+ @return $yiq-text-dark;
61
61
  } @else {
62
- @return #fff;
62
+ @return $yiq-text-light;
63
63
  }
64
64
  }
65
65
 
66
- // Retreive color Sass maps
66
+ // Retrieve color Sass maps
67
67
  @function color($key: "blue") {
68
68
  @return map-get($colors, $key);
69
69
  }
@@ -16,7 +16,6 @@
16
16
  background-color: $thumbnail-bg;
17
17
  border: $thumbnail-border-width solid $thumbnail-border-color;
18
18
  @include border-radius($thumbnail-border-radius);
19
- @include transition($thumbnail-transition);
20
19
  @include box-shadow($thumbnail-box-shadow);
21
20
 
22
21
  // Keep them at most 100% wide
@@ -7,89 +7,99 @@
7
7
  .input-group {
8
8
  position: relative;
9
9
  display: flex;
10
+ flex-wrap: wrap; // For form validation feedback
10
11
  align-items: stretch;
11
12
  width: 100%;
12
13
 
13
- .form-control {
14
- // Ensure that the input is always above the *appended* addon button for
15
- // proper border colors.
16
- position: relative;
17
- z-index: 2;
14
+ .form-control,
15
+ .custom-select,
16
+ .custom-file {
17
+ position: relative; // For focus state's z-index
18
18
  flex: 1 1 auto;
19
19
  // Add width 1% and flex-basis auto to ensure that button will not wrap out
20
20
  // the column. Applies to IE Edge+ and Firefox. Chrome does not require this.
21
21
  width: 1%;
22
22
  margin-bottom: 0;
23
23
 
24
- // Bring the "active" form control to the front
25
- @include hover-focus-active {
24
+ // Bring the "active" form control to the top of surrounding elements
25
+ &:focus {
26
26
  z-index: 3;
27
27
  }
28
+
29
+ + .form-control {
30
+ margin-left: -$input-border-width;
31
+ }
28
32
  }
29
- }
30
33
 
31
- .input-group-addon,
32
- .input-group-btn,
33
- .input-group .form-control {
34
- display: flex;
35
- align-items: center;
36
- &:not(:first-child):not(:last-child) {
37
- @include border-radius(0);
34
+ .form-control,
35
+ .custom-select {
36
+ &:not(:last-child) { @include border-right-radius(0); }
37
+ &:not(:first-child) { @include border-left-radius(0); }
38
38
  }
39
- }
40
39
 
41
- .input-group-addon,
42
- .input-group-btn {
43
- white-space: nowrap;
40
+ // Custom file inputs have more complex markup, thus requiring different
41
+ // border-radius overrides.
42
+ .custom-file {
43
+ display: flex;
44
+ align-items: center;
45
+
46
+ &:not(:last-child) .custom-file-control,
47
+ &:not(:last-child) .custom-file-control::before { @include border-right-radius(0); }
48
+ &:not(:first-child) .custom-file-control,
49
+ &:not(:first-child) .custom-file-control::before { @include border-left-radius(0); }
50
+ }
44
51
  }
45
52
 
46
53
 
47
- // Sizing options
54
+ // Prepend and append
48
55
  //
49
- // Remix the default form control sizing classes into new ones for easier
50
- // manipulation.
56
+ // While it requires one extra layer of HTML for each, dedicated prepend and
57
+ // append elements allow us to 1) be less clever, 2) simplify our selectors, and
58
+ // 3) support HTML5 form validation.
51
59
 
52
- .input-group-lg > .form-control,
53
- .input-group-lg > .input-group-addon,
54
- .input-group-lg > .input-group-btn > .btn {
55
- @extend .form-control-lg;
56
- }
57
- .input-group-sm > .form-control,
58
- .input-group-sm > .input-group-addon,
59
- .input-group-sm > .input-group-btn > .btn {
60
- @extend .form-control-sm;
60
+ .input-group-prepend,
61
+ .input-group-append {
62
+ display: flex;
63
+ align-items: center;
64
+
65
+ // Ensure buttons are always above inputs for more visually pleasing borders.
66
+ // This isn't needed for `.input-group-text` since it shares the same border-color
67
+ // as our inputs.
68
+ .btn {
69
+ position: relative;
70
+ z-index: 2;
71
+ }
72
+
73
+ .btn + .btn,
74
+ .btn + .input-group-text,
75
+ .input-group-text + .input-group-text,
76
+ .input-group-text + .btn {
77
+ margin-left: -$input-border-width;
78
+ }
61
79
  }
62
80
 
81
+ .input-group-prepend { margin-right: -$input-border-width; }
82
+ .input-group-append { margin-left: -$input-border-width; }
63
83
 
84
+
85
+ // Textual addons
64
86
  //
65
- // Text input groups
66
- //
87
+ // Serves as a catch-all element for any text or radio/checkbox input you wish
88
+ // to prepend or append to an input.
67
89
 
68
- .input-group-addon {
69
- padding: $input-btn-padding-y $input-btn-padding-x;
90
+ .input-group-text {
91
+ padding: $input-padding-y $input-padding-x;
70
92
  margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom
71
93
  font-size: $font-size-base; // Match inputs
72
94
  font-weight: $font-weight-normal;
73
- line-height: $input-btn-line-height;
95
+ line-height: $input-line-height;
74
96
  color: $input-group-addon-color;
75
97
  text-align: center;
98
+ white-space: nowrap;
76
99
  background-color: $input-group-addon-bg;
77
- border: $input-btn-border-width solid $input-group-addon-border-color;
100
+ border: $input-border-width solid $input-group-addon-border-color;
78
101
  @include border-radius($input-border-radius);
79
102
 
80
- // Sizing
81
- &.form-control-sm {
82
- padding: $input-btn-padding-y-sm $input-btn-padding-x-sm;
83
- font-size: $font-size-sm;
84
- @include border-radius($input-border-radius-sm);
85
- }
86
-
87
- &.form-control-lg {
88
- padding: $input-btn-padding-y-lg $input-btn-padding-x-lg;
89
- font-size: $font-size-lg;
90
- @include border-radius($input-border-radius-lg);
91
- }
92
-
93
103
  // Nuke default margins from checkboxes and radios to vertically center within.
94
104
  input[type="radio"],
95
105
  input[type="checkbox"] {
@@ -98,89 +108,49 @@
98
108
  }
99
109
 
100
110
 
111
+ // Sizing
101
112
  //
102
- // Reset rounded corners
103
- //
113
+ // Remix the default form control sizing classes into new ones for easier
114
+ // manipulation.
104
115
 
105
- .input-group .form-control:not(:last-child),
106
- .input-group-addon:not(:last-child),
107
- .input-group-btn:not(:last-child) > .btn,
108
- .input-group-btn:not(:last-child) > .btn-group > .btn,
109
- .input-group-btn:not(:last-child) > .dropdown-toggle,
110
- .input-group-btn:not(:first-child) > .btn:not(:last-child):not(.dropdown-toggle),
111
- .input-group-btn:not(:first-child) > .btn-group:not(:last-child) > .btn {
112
- @include border-right-radius(0);
113
- }
114
- .input-group-addon:not(:last-child) {
115
- border-right: 0;
116
- }
117
- .input-group .form-control:not(:first-child),
118
- .input-group-addon:not(:first-child),
119
- .input-group-btn:not(:first-child) > .btn,
120
- .input-group-btn:not(:first-child) > .btn-group > .btn,
121
- .input-group-btn:not(:first-child) > .dropdown-toggle,
122
- .input-group-btn:not(:last-child) > .btn:not(:first-child),
123
- .input-group-btn:not(:last-child) > .btn-group:not(:first-child) > .btn {
124
- @include border-left-radius(0);
125
- }
126
- .form-control + .input-group-addon:not(:first-child) {
127
- border-left: 0;
116
+ .input-group-lg > .form-control,
117
+ .input-group-lg > .input-group-prepend > .input-group-text,
118
+ .input-group-lg > .input-group-append > .input-group-text,
119
+ .input-group-lg > .input-group-prepend > .btn,
120
+ .input-group-lg > .input-group-append > .btn {
121
+ @extend .form-control-lg;
128
122
  }
129
123
 
130
- //
131
- // Button input groups
132
- //
133
-
134
- .input-group-btn {
135
- position: relative;
136
- align-items: stretch;
137
- // Jankily prevent input button groups from wrapping with `white-space` and
138
- // `font-size` in combination with `inline-block` on buttons.
139
- font-size: 0;
140
- white-space: nowrap;
124
+ .input-group-sm > .form-control,
125
+ .input-group-sm > .input-group-prepend > .input-group-text,
126
+ .input-group-sm > .input-group-append > .input-group-text,
127
+ .input-group-sm > .input-group-prepend > .btn,
128
+ .input-group-sm > .input-group-append > .btn {
129
+ @extend .form-control-sm;
130
+ }
141
131
 
142
- // Negative margin for spacing, position for bringing hovered/focused/actived
143
- // element above the siblings.
144
- > .btn {
145
- position: relative;
146
132
 
147
- + .btn {
148
- margin-left: (-$input-btn-border-width);
149
- }
133
+ // Prepend and append rounded corners
134
+ //
135
+ // These rulesets must come after the sizing ones to properly override sm and lg
136
+ // border-radius values when extending. They're more specific than we'd like
137
+ // with the `.input-group >` part, but without it, we cannot override the sizing.
150
138
 
151
- // Bring the "active" button to the front
152
- @include hover-focus-active {
153
- z-index: 3;
154
- }
155
- }
156
139
 
157
- &:first-child > .btn + .btn {
158
- margin-left: 0;
159
- }
140
+ .input-group > .input-group-prepend > .btn,
141
+ .input-group > .input-group-prepend > .input-group-text,
142
+ .input-group > .input-group-append:not(:last-child) > .btn,
143
+ .input-group > .input-group-append:not(:last-child) > .input-group-text,
144
+ .input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
145
+ .input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {
146
+ @include border-right-radius(0);
147
+ }
160
148
 
161
- // Negative margin to only have a single, shared border between the two
162
- &:not(:last-child) {
163
- > .btn,
164
- > .btn-group {
165
- margin-right: (-$input-btn-border-width);
166
- }
167
- }
168
- &:not(:first-child) {
169
- > .btn,
170
- > .btn-group {
171
- z-index: 2;
172
- // remove nagative margin ($input-btn-border-width) to solve overlapping issue with button.
173
- margin-left: 0;
174
-
175
- // When input is first, overlap the right side of it with the button(-group)
176
- &:first-child {
177
- margin-left: (-$input-btn-border-width);
178
- }
179
-
180
- // Because specificity
181
- @include hover-focus-active {
182
- z-index: 3;
183
- }
184
- }
185
- }
149
+ .input-group > .input-group-append > .btn,
150
+ .input-group > .input-group-append > .input-group-text,
151
+ .input-group > .input-group-prepend:not(:first-child) > .btn,
152
+ .input-group > .input-group-prepend:not(:first-child) > .input-group-text,
153
+ .input-group > .input-group-prepend:first-child > .btn:not(:first-child),
154
+ .input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {
155
+ @include border-left-radius(0);
186
156
  }