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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +1 -1
- data/assets/javascripts/bootstrap-sprockets.js +4 -4
- data/assets/javascripts/bootstrap.js +576 -534
- data/assets/javascripts/bootstrap.min.js +2 -2
- data/assets/javascripts/bootstrap/alert.js +3 -3
- data/assets/javascripts/bootstrap/button.js +3 -3
- data/assets/javascripts/bootstrap/carousel.js +10 -7
- data/assets/javascripts/bootstrap/collapse.js +7 -5
- data/assets/javascripts/bootstrap/dropdown.js +64 -37
- data/assets/javascripts/bootstrap/modal.js +8 -6
- data/assets/javascripts/bootstrap/popover.js +19 -7
- data/assets/javascripts/bootstrap/scrollspy.js +6 -4
- data/assets/javascripts/bootstrap/tab.js +8 -16
- data/assets/javascripts/bootstrap/tooltip.js +23 -17
- data/assets/javascripts/bootstrap/util.js +18 -21
- data/assets/stylesheets/_bootstrap-grid.scss +1 -1
- data/assets/stylesheets/_bootstrap-reboot.scss +1 -1
- data/assets/stylesheets/_bootstrap.scss +2 -2
- data/assets/stylesheets/bootstrap/_alert.scss +2 -0
- data/assets/stylesheets/bootstrap/_button-group.scss +31 -72
- data/assets/stylesheets/bootstrap/_buttons.scss +22 -11
- data/assets/stylesheets/bootstrap/_card.scss +23 -12
- data/assets/stylesheets/bootstrap/_carousel.scss +2 -2
- data/assets/stylesheets/bootstrap/_close.scss +6 -1
- data/assets/stylesheets/bootstrap/_code.scss +4 -12
- data/assets/stylesheets/bootstrap/_custom-forms.scss +110 -85
- data/assets/stylesheets/bootstrap/_dropdown.scss +30 -2
- data/assets/stylesheets/bootstrap/_forms.scss +46 -71
- data/assets/stylesheets/bootstrap/_functions.scss +4 -4
- data/assets/stylesheets/bootstrap/_images.scss +0 -1
- data/assets/stylesheets/bootstrap/_input-group.scss +96 -126
- data/assets/stylesheets/bootstrap/_list-group.scss +2 -1
- data/assets/stylesheets/bootstrap/_modal.scss +24 -9
- data/assets/stylesheets/bootstrap/_nav.scss +2 -2
- data/assets/stylesheets/bootstrap/_navbar.scss +6 -1
- data/assets/stylesheets/bootstrap/_pagination.scss +27 -19
- data/assets/stylesheets/bootstrap/_popover.scss +104 -115
- data/assets/stylesheets/bootstrap/_progress.scss +4 -1
- data/assets/stylesheets/bootstrap/_reboot.scss +3 -2
- data/assets/stylesheets/bootstrap/_tables.scss +1 -1
- data/assets/stylesheets/bootstrap/_tooltip.scss +63 -55
- data/assets/stylesheets/bootstrap/_type.scss +2 -2
- data/assets/stylesheets/bootstrap/_variables.scss +135 -91
- data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +2 -1
- data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +4 -2
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +25 -18
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +30 -0
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +42 -17
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +1 -0
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +1 -1
- 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:
|
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-
|
10
|
+
padding: $input-padding-y $input-padding-x;
|
11
11
|
font-size: $font-size-base;
|
12
|
-
line-height: $input-
|
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-
|
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
|
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-
|
92
|
-
padding-bottom: calc(#{$input-
|
93
|
-
margin-bottom: 0; // Override the `<label>` default
|
94
|
-
|
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-
|
99
|
-
padding-bottom: calc(#{$input-
|
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-
|
101
|
+
line-height: $input-line-height-lg;
|
102
102
|
}
|
103
103
|
|
104
104
|
.col-form-label-sm {
|
105
|
-
padding-top: calc(#{$input-
|
106
|
-
padding-bottom: calc(#{$input-
|
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-
|
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
|
-
|
133
|
-
|
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-
|
123
|
+
line-height: $input-line-height;
|
136
124
|
background-color: transparent;
|
137
125
|
border: solid transparent;
|
138
|
-
border-width: $input-
|
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-
|
145
|
+
padding: $input-padding-y-sm $input-padding-x-sm;
|
158
146
|
font-size: $font-size-sm;
|
159
|
-
line-height: $input-
|
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-
|
158
|
+
padding: $input-padding-y-lg $input-padding-x-lg;
|
171
159
|
font-size: $font-size-lg;
|
172
|
-
line-height: $input-
|
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-
|
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-
|
249
|
-
|
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-
|
347
|
-
|
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 >=
|
60
|
-
@return
|
59
|
+
@if ($yiq >= $yiq-contrasted-threshold) {
|
60
|
+
@return $yiq-text-dark;
|
61
61
|
} @else {
|
62
|
-
@return
|
62
|
+
@return $yiq-text-light;
|
63
63
|
}
|
64
64
|
}
|
65
65
|
|
66
|
-
//
|
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
|
-
|
15
|
-
|
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
|
25
|
-
|
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
|
-
.
|
32
|
-
.
|
33
|
-
|
34
|
-
|
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
|
-
|
42
|
-
|
43
|
-
|
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
|
-
//
|
54
|
+
// Prepend and append
|
48
55
|
//
|
49
|
-
//
|
50
|
-
//
|
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-
|
53
|
-
.input-group-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
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
|
-
//
|
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-
|
69
|
-
padding: $input-
|
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-
|
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-
|
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
|
-
//
|
103
|
-
//
|
113
|
+
// Remix the default form control sizing classes into new ones for easier
|
114
|
+
// manipulation.
|
104
115
|
|
105
|
-
.input-group .form-control
|
106
|
-
.input-group-
|
107
|
-
.input-group-
|
108
|
-
.input-group-
|
109
|
-
.input-group-
|
110
|
-
|
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
|
-
|
132
|
-
|
133
|
-
|
134
|
-
.input-group-btn {
|
135
|
-
|
136
|
-
|
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
|
-
|
148
|
-
|
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
|
-
|
158
|
-
|
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
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
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
|
}
|