bootstrap 4.3.1 → 4.6.0
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/.travis.yml +15 -1
- data/CHANGELOG.md +2 -14
- data/README.md +1 -1
- data/assets/javascripts/bootstrap-sprockets.js +7 -7
- data/assets/javascripts/bootstrap.js +1073 -1076
- data/assets/javascripts/bootstrap.min.js +4 -4
- data/assets/javascripts/bootstrap/alert.js +42 -49
- data/assets/javascripts/bootstrap/button.js +111 -64
- data/assets/javascripts/bootstrap/carousel.js +162 -177
- data/assets/javascripts/bootstrap/collapse.js +97 -122
- data/assets/javascripts/bootstrap/dropdown.js +163 -189
- data/assets/javascripts/bootstrap/modal.js +213 -194
- data/assets/javascripts/bootstrap/popover.js +51 -72
- data/assets/javascripts/bootstrap/scrollspy.js +80 -109
- data/assets/javascripts/bootstrap/tab.js +72 -79
- data/assets/javascripts/bootstrap/toast.js +96 -107
- data/assets/javascripts/bootstrap/tooltip.js +186 -201
- data/assets/javascripts/bootstrap/util.js +41 -20
- data/assets/stylesheets/_bootstrap-grid.scss +5 -4
- data/assets/stylesheets/_bootstrap-reboot.scss +4 -4
- data/assets/stylesheets/_bootstrap.scss +4 -4
- data/assets/stylesheets/bootstrap/_alert.scss +1 -0
- data/assets/stylesheets/bootstrap/_badge.scss +1 -1
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +3 -2
- data/assets/stylesheets/bootstrap/_button-group.scss +1 -1
- data/assets/stylesheets/bootstrap/_buttons.scss +13 -8
- data/assets/stylesheets/bootstrap/_card.scss +42 -45
- data/assets/stylesheets/bootstrap/_carousel.scss +7 -7
- data/assets/stylesheets/bootstrap/_close.scss +2 -3
- data/assets/stylesheets/bootstrap/_code.scss +1 -1
- data/assets/stylesheets/bootstrap/_custom-forms.scss +38 -19
- data/assets/stylesheets/bootstrap/_dropdown.scss +7 -6
- data/assets/stylesheets/bootstrap/_forms.scss +26 -9
- data/assets/stylesheets/bootstrap/_functions.scss +63 -5
- data/assets/stylesheets/bootstrap/_grid.scss +32 -11
- data/assets/stylesheets/bootstrap/_images.scss +2 -2
- data/assets/stylesheets/bootstrap/_input-group.scss +21 -6
- data/assets/stylesheets/bootstrap/_list-group.scss +36 -31
- data/assets/stylesheets/bootstrap/_mixins.scss +3 -3
- data/assets/stylesheets/bootstrap/_modal.scss +26 -15
- data/assets/stylesheets/bootstrap/_nav.scss +7 -7
- data/assets/stylesheets/bootstrap/_navbar.scss +55 -17
- data/assets/stylesheets/bootstrap/_pagination.scss +5 -4
- data/assets/stylesheets/bootstrap/_popover.scss +8 -9
- data/assets/stylesheets/bootstrap/_print.scss +2 -2
- data/assets/stylesheets/bootstrap/_progress.scss +7 -3
- data/assets/stylesheets/bootstrap/_reboot.scss +39 -38
- data/assets/stylesheets/bootstrap/_spinners.scss +14 -4
- data/assets/stylesheets/bootstrap/_tables.scss +3 -3
- data/assets/stylesheets/bootstrap/_toasts.scss +4 -2
- data/assets/stylesheets/bootstrap/_type.scss +3 -3
- data/assets/stylesheets/bootstrap/_utilities.scss +2 -1
- data/assets/stylesheets/bootstrap/_variables.scss +58 -35
- data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +5 -3
- data/assets/stylesheets/bootstrap/mixins/_badge.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +27 -14
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +11 -8
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +8 -8
- data/assets/stylesheets/bootstrap/mixins/_float.scss +3 -3
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +42 -49
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +29 -15
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +25 -7
- data/assets/stylesheets/bootstrap/mixins/_hover.scss +4 -4
- data/assets/stylesheets/bootstrap/mixins/_image.scss +2 -2
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +2 -1
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +4 -3
- data/assets/stylesheets/bootstrap/mixins/_table-row.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +3 -2
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +18 -8
- data/assets/stylesheets/bootstrap/utilities/_background.scss +2 -2
- data/assets/stylesheets/bootstrap/utilities/_borders.scss +1 -1
- data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
- data/assets/stylesheets/bootstrap/utilities/_text.scss +4 -4
- data/bootstrap.gemspec +1 -1
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/network.rb +2 -2
- data/test/dummy_rails/app/assets/config/manifest.js +3 -0
- data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
- data/test/gemfiles/rails_6_0.gemfile +7 -0
- data/test/support/dummy_rails_integration.rb +3 -1
- data/test/test_helper.rb +18 -13
- metadata +11 -5
@@ -3,26 +3,47 @@
|
|
3
3
|
// Set the container width, and override it for fixed navbars in media queries.
|
4
4
|
|
5
5
|
@if $enable-grid-classes {
|
6
|
-
|
6
|
+
// Single container class with breakpoint max-widths
|
7
|
+
.container,
|
8
|
+
// 100% wide container at all breakpoints
|
9
|
+
.container-fluid {
|
7
10
|
@include make-container();
|
8
|
-
@include make-container-max-widths();
|
9
11
|
}
|
10
|
-
}
|
11
12
|
|
12
|
-
//
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
// Responsive containers that are 100% wide until a breakpoint
|
14
|
+
@each $breakpoint, $container-max-width in $container-max-widths {
|
15
|
+
.container-#{$breakpoint} {
|
16
|
+
@extend .container-fluid;
|
17
|
+
}
|
16
18
|
|
17
|
-
@
|
18
|
-
|
19
|
-
|
19
|
+
@include media-breakpoint-up($breakpoint, $grid-breakpoints) {
|
20
|
+
%responsive-container-#{$breakpoint} {
|
21
|
+
max-width: $container-max-width;
|
22
|
+
}
|
23
|
+
|
24
|
+
// Extend each breakpoint which is smaller or equal to the current breakpoint
|
25
|
+
$extend-breakpoint: true;
|
26
|
+
|
27
|
+
@each $name, $width in $grid-breakpoints {
|
28
|
+
@if ($extend-breakpoint) {
|
29
|
+
.container#{breakpoint-infix($name, $grid-breakpoints)} {
|
30
|
+
@extend %responsive-container-#{$breakpoint};
|
31
|
+
}
|
32
|
+
|
33
|
+
// Once the current breakpoint is reached, stop extending
|
34
|
+
@if ($breakpoint == $name) {
|
35
|
+
$extend-breakpoint: false;
|
36
|
+
}
|
37
|
+
}
|
38
|
+
}
|
39
|
+
}
|
20
40
|
}
|
21
41
|
}
|
22
42
|
|
43
|
+
|
23
44
|
// Row
|
24
45
|
//
|
25
|
-
// Rows contain
|
46
|
+
// Rows contain your columns.
|
26
47
|
|
27
48
|
@if $enable-grid-classes {
|
28
49
|
.row {
|
@@ -6,7 +6,7 @@
|
|
6
6
|
// which weren't expecting the images within themselves to be involuntarily resized.
|
7
7
|
// See also https://github.com/twbs/bootstrap/issues/18178
|
8
8
|
.img-fluid {
|
9
|
-
@include img-fluid;
|
9
|
+
@include img-fluid();
|
10
10
|
}
|
11
11
|
|
12
12
|
|
@@ -19,7 +19,7 @@
|
|
19
19
|
@include box-shadow($thumbnail-box-shadow);
|
20
20
|
|
21
21
|
// Keep them at most 100% wide
|
22
|
-
@include img-fluid;
|
22
|
+
@include img-fluid();
|
23
23
|
}
|
24
24
|
|
25
25
|
//
|
@@ -17,9 +17,8 @@
|
|
17
17
|
> .custom-file {
|
18
18
|
position: relative; // For focus state's z-index
|
19
19
|
flex: 1 1 auto;
|
20
|
-
// Add width 1% and flex-basis auto to ensure that button will not wrap out
|
21
|
-
// the column. Applies to IE Edge+ and Firefox. Chrome does not require this.
|
22
20
|
width: 1%;
|
21
|
+
min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size
|
23
22
|
margin-bottom: 0;
|
24
23
|
|
25
24
|
+ .form-control,
|
@@ -43,7 +42,6 @@
|
|
43
42
|
|
44
43
|
> .form-control,
|
45
44
|
> .custom-select {
|
46
|
-
&:not(:last-child) { @include border-right-radius(0); }
|
47
45
|
&:not(:first-child) { @include border-left-radius(0); }
|
48
46
|
}
|
49
47
|
|
@@ -54,9 +52,24 @@
|
|
54
52
|
align-items: center;
|
55
53
|
|
56
54
|
&:not(:last-child) .custom-file-label,
|
57
|
-
&:not(:last-child) .custom-file-label::after { @include border-right-radius(0); }
|
58
55
|
&:not(:first-child) .custom-file-label { @include border-left-radius(0); }
|
59
56
|
}
|
57
|
+
|
58
|
+
&:not(.has-validation) {
|
59
|
+
> .form-control:not(:last-child),
|
60
|
+
> .custom-select:not(:last-child),
|
61
|
+
> .custom-file:not(:last-child) .custom-file-label::after {
|
62
|
+
@include border-right-radius(0);
|
63
|
+
}
|
64
|
+
}
|
65
|
+
|
66
|
+
&.has-validation {
|
67
|
+
> .form-control:nth-last-child(n + 3),
|
68
|
+
> .custom-select:nth-last-child(n + 3),
|
69
|
+
> .custom-file:nth-last-child(n + 3) .custom-file-label::after {
|
70
|
+
@include border-right-radius(0);
|
71
|
+
}
|
72
|
+
}
|
60
73
|
}
|
61
74
|
|
62
75
|
|
@@ -176,8 +189,10 @@
|
|
176
189
|
|
177
190
|
.input-group > .input-group-prepend > .btn,
|
178
191
|
.input-group > .input-group-prepend > .input-group-text,
|
179
|
-
.input-group > .input-group-append:not(:last-child) > .btn,
|
180
|
-
.input-group > .input-group-append:not(:last-child) > .input-group-text,
|
192
|
+
.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,
|
193
|
+
.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,
|
194
|
+
.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn,
|
195
|
+
.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text,
|
181
196
|
.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
|
182
197
|
.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {
|
183
198
|
@include border-right-radius(0);
|
@@ -9,6 +9,7 @@
|
|
9
9
|
// No need to set list-style: none; since .list-group-item is block level
|
10
10
|
padding-left: 0; // reset padding because ul and ol
|
11
11
|
margin-bottom: 0;
|
12
|
+
@include border-radius($list-group-border-radius);
|
12
13
|
}
|
13
14
|
|
14
15
|
|
@@ -23,7 +24,7 @@
|
|
23
24
|
text-align: inherit; // For `<button>`s (anchors inherit)
|
24
25
|
|
25
26
|
// Hover state
|
26
|
-
@include hover-focus {
|
27
|
+
@include hover-focus() {
|
27
28
|
z-index: 1; // Place hover/focus items above their siblings for proper border styling
|
28
29
|
color: $list-group-action-hover-color;
|
29
30
|
text-decoration: none;
|
@@ -45,19 +46,17 @@
|
|
45
46
|
position: relative;
|
46
47
|
display: block;
|
47
48
|
padding: $list-group-item-padding-y $list-group-item-padding-x;
|
48
|
-
// Place the border on the list items and negative margin up for better styling
|
49
|
-
margin-bottom: -$list-group-border-width;
|
50
49
|
color: $list-group-color;
|
50
|
+
text-decoration: if($link-decoration == none, null, none);
|
51
51
|
background-color: $list-group-bg;
|
52
52
|
border: $list-group-border-width solid $list-group-border-color;
|
53
53
|
|
54
54
|
&:first-child {
|
55
|
-
@include border-top-radius(
|
55
|
+
@include border-top-radius(inherit);
|
56
56
|
}
|
57
57
|
|
58
58
|
&:last-child {
|
59
|
-
|
60
|
-
@include border-bottom-radius($list-group-border-radius);
|
59
|
+
@include border-bottom-radius(inherit);
|
61
60
|
}
|
62
61
|
|
63
62
|
&.disabled,
|
@@ -74,6 +73,15 @@
|
|
74
73
|
background-color: $list-group-active-bg;
|
75
74
|
border-color: $list-group-active-border-color;
|
76
75
|
}
|
76
|
+
|
77
|
+
& + & {
|
78
|
+
border-top-width: 0;
|
79
|
+
|
80
|
+
&.active {
|
81
|
+
margin-top: -$list-group-border-width;
|
82
|
+
border-top-width: $list-group-border-width;
|
83
|
+
}
|
84
|
+
}
|
77
85
|
}
|
78
86
|
|
79
87
|
|
@@ -88,20 +96,30 @@
|
|
88
96
|
.list-group-horizontal#{$infix} {
|
89
97
|
flex-direction: row;
|
90
98
|
|
91
|
-
.list-group-item {
|
92
|
-
margin-right: -$list-group-border-width;
|
93
|
-
margin-bottom: 0;
|
94
|
-
|
99
|
+
> .list-group-item {
|
95
100
|
&:first-child {
|
96
|
-
@include border-left-radius($list-group-border-radius);
|
101
|
+
@include border-bottom-left-radius($list-group-border-radius);
|
97
102
|
@include border-top-right-radius(0);
|
98
103
|
}
|
99
104
|
|
100
105
|
&:last-child {
|
101
|
-
|
102
|
-
@include border-right-radius($list-group-border-radius);
|
106
|
+
@include border-top-right-radius($list-group-border-radius);
|
103
107
|
@include border-bottom-left-radius(0);
|
104
108
|
}
|
109
|
+
|
110
|
+
&.active {
|
111
|
+
margin-top: 0;
|
112
|
+
}
|
113
|
+
|
114
|
+
+ .list-group-item {
|
115
|
+
border-top-width: $list-group-border-width;
|
116
|
+
border-left-width: 0;
|
117
|
+
|
118
|
+
&.active {
|
119
|
+
margin-left: -$list-group-border-width;
|
120
|
+
border-left-width: $list-group-border-width;
|
121
|
+
}
|
122
|
+
}
|
105
123
|
}
|
106
124
|
}
|
107
125
|
}
|
@@ -114,26 +132,13 @@
|
|
114
132
|
// useful within other components (e.g., cards).
|
115
133
|
|
116
134
|
.list-group-flush {
|
117
|
-
|
118
|
-
border-right: 0;
|
119
|
-
border-left: 0;
|
120
|
-
@include border-radius(0);
|
135
|
+
@include border-radius(0);
|
121
136
|
|
122
|
-
|
123
|
-
|
124
|
-
}
|
125
|
-
}
|
137
|
+
> .list-group-item {
|
138
|
+
border-width: 0 0 $list-group-border-width;
|
126
139
|
|
127
|
-
|
128
|
-
|
129
|
-
border-top: 0;
|
130
|
-
}
|
131
|
-
}
|
132
|
-
|
133
|
-
&:last-child {
|
134
|
-
.list-group-item:last-child {
|
135
|
-
margin-bottom: 0;
|
136
|
-
border-bottom: 0;
|
140
|
+
&:last-child {
|
141
|
+
border-bottom-width: 0;
|
137
142
|
}
|
138
143
|
}
|
139
144
|
}
|
@@ -22,7 +22,7 @@
|
|
22
22
|
@import "mixins/text-truncate";
|
23
23
|
@import "mixins/visibility";
|
24
24
|
|
25
|
-
//
|
25
|
+
// Components
|
26
26
|
@import "mixins/alert";
|
27
27
|
@import "mixins/buttons";
|
28
28
|
@import "mixins/caret";
|
@@ -33,14 +33,14 @@
|
|
33
33
|
@import "mixins/forms";
|
34
34
|
@import "mixins/table-row";
|
35
35
|
|
36
|
-
//
|
36
|
+
// Skins
|
37
37
|
@import "mixins/background-variant";
|
38
38
|
@import "mixins/border-radius";
|
39
39
|
@import "mixins/box-shadow";
|
40
40
|
@import "mixins/gradients";
|
41
41
|
@import "mixins/transition";
|
42
42
|
|
43
|
-
//
|
43
|
+
// Layout
|
44
44
|
@import "mixins/clearfix";
|
45
45
|
@import "mixins/grid-framework";
|
46
46
|
@import "mixins/grid";
|
@@ -48,14 +48,19 @@
|
|
48
48
|
.modal.show & {
|
49
49
|
transform: $modal-show-transform;
|
50
50
|
}
|
51
|
+
|
52
|
+
// When trying to close, animate focus to scale
|
53
|
+
.modal.modal-static & {
|
54
|
+
transform: $modal-scale-transform;
|
55
|
+
}
|
51
56
|
}
|
52
57
|
|
53
58
|
.modal-dialog-scrollable {
|
54
59
|
display: flex; // IE10/11
|
55
|
-
max-height:
|
60
|
+
max-height: subtract(100%, $modal-dialog-margin * 2);
|
56
61
|
|
57
62
|
.modal-content {
|
58
|
-
max-height:
|
63
|
+
max-height: subtract(100vh, $modal-dialog-margin * 2); // IE10/11
|
59
64
|
overflow: hidden;
|
60
65
|
}
|
61
66
|
|
@@ -72,12 +77,13 @@
|
|
72
77
|
.modal-dialog-centered {
|
73
78
|
display: flex;
|
74
79
|
align-items: center;
|
75
|
-
min-height:
|
80
|
+
min-height: subtract(100%, $modal-dialog-margin * 2);
|
76
81
|
|
77
82
|
// Ensure `modal-dialog-centered` extends the full height of the view (IE10/11)
|
78
83
|
&::before {
|
79
84
|
display: block; // IE10
|
80
|
-
height:
|
85
|
+
height: subtract(100vh, $modal-dialog-margin * 2);
|
86
|
+
height: min-content; // Reset height to 0 except on IE
|
81
87
|
content: "";
|
82
88
|
}
|
83
89
|
|
@@ -138,7 +144,7 @@
|
|
138
144
|
justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends
|
139
145
|
padding: $modal-header-padding;
|
140
146
|
border-bottom: $modal-header-border-width solid $modal-header-border-color;
|
141
|
-
@include border-top-radius($modal-content-border-radius);
|
147
|
+
@include border-top-radius($modal-content-inner-border-radius);
|
142
148
|
|
143
149
|
.close {
|
144
150
|
padding: $modal-header-padding;
|
@@ -158,7 +164,7 @@
|
|
158
164
|
.modal-body {
|
159
165
|
position: relative;
|
160
166
|
// Enable `flex-grow: 1` so that the body take up as much space as possible
|
161
|
-
// when should
|
167
|
+
// when there should be a fixed height on `.modal-dialog`.
|
162
168
|
flex: 1 1 auto;
|
163
169
|
padding: $modal-inner-padding;
|
164
170
|
}
|
@@ -166,15 +172,19 @@
|
|
166
172
|
// Footer (for actions)
|
167
173
|
.modal-footer {
|
168
174
|
display: flex;
|
175
|
+
flex-wrap: wrap;
|
169
176
|
align-items: center; // vertically center
|
170
177
|
justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items
|
171
|
-
padding: $modal-inner-padding;
|
178
|
+
padding: $modal-inner-padding - $modal-footer-margin-between / 2;
|
172
179
|
border-top: $modal-footer-border-width solid $modal-footer-border-color;
|
173
|
-
@include border-bottom-radius($modal-content-border-radius);
|
180
|
+
@include border-bottom-radius($modal-content-inner-border-radius);
|
174
181
|
|
175
|
-
//
|
176
|
-
|
177
|
-
|
182
|
+
// Place margin between footer elements
|
183
|
+
// This solution is far from ideal because of the universal selector usage,
|
184
|
+
// but is needed to fix https://github.com/twbs/bootstrap/issues/24800
|
185
|
+
> * {
|
186
|
+
margin: $modal-footer-margin-between / 2;
|
187
|
+
}
|
178
188
|
}
|
179
189
|
|
180
190
|
// Measure scrollbar width for padding body during modal show/hide
|
@@ -195,18 +205,19 @@
|
|
195
205
|
}
|
196
206
|
|
197
207
|
.modal-dialog-scrollable {
|
198
|
-
max-height:
|
208
|
+
max-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);
|
199
209
|
|
200
210
|
.modal-content {
|
201
|
-
max-height:
|
211
|
+
max-height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);
|
202
212
|
}
|
203
213
|
}
|
204
214
|
|
205
215
|
.modal-dialog-centered {
|
206
|
-
min-height:
|
216
|
+
min-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);
|
207
217
|
|
208
218
|
&::before {
|
209
|
-
height:
|
219
|
+
height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);
|
220
|
+
height: min-content;
|
210
221
|
}
|
211
222
|
}
|
212
223
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// Base class
|
2
2
|
//
|
3
3
|
// Kickstart any navigation component with a set of style resets. Works with
|
4
|
-
// `<nav>`s or `<
|
4
|
+
// `<nav>`s, `<ul>`s or `<ol>`s.
|
5
5
|
|
6
6
|
.nav {
|
7
7
|
display: flex;
|
@@ -14,8 +14,9 @@
|
|
14
14
|
.nav-link {
|
15
15
|
display: block;
|
16
16
|
padding: $nav-link-padding-y $nav-link-padding-x;
|
17
|
+
text-decoration: if($link-decoration == none, null, none);
|
17
18
|
|
18
|
-
@include hover-focus {
|
19
|
+
@include hover-focus() {
|
19
20
|
text-decoration: none;
|
20
21
|
}
|
21
22
|
|
@@ -34,15 +35,12 @@
|
|
34
35
|
.nav-tabs {
|
35
36
|
border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;
|
36
37
|
|
37
|
-
.nav-item {
|
38
|
-
margin-bottom: -$nav-tabs-border-width;
|
39
|
-
}
|
40
|
-
|
41
38
|
.nav-link {
|
39
|
+
margin-bottom: -$nav-tabs-border-width;
|
42
40
|
border: $nav-tabs-border-width solid transparent;
|
43
41
|
@include border-top-radius($nav-tabs-border-radius);
|
44
42
|
|
45
|
-
@include hover-focus {
|
43
|
+
@include hover-focus() {
|
46
44
|
border-color: $nav-tabs-link-hover-border-color;
|
47
45
|
}
|
48
46
|
|
@@ -91,6 +89,7 @@
|
|
91
89
|
//
|
92
90
|
|
93
91
|
.nav-fill {
|
92
|
+
> .nav-link,
|
94
93
|
.nav-item {
|
95
94
|
flex: 1 1 auto;
|
96
95
|
text-align: center;
|
@@ -98,6 +97,7 @@
|
|
98
97
|
}
|
99
98
|
|
100
99
|
.nav-justified {
|
100
|
+
> .nav-link,
|
101
101
|
.nav-item {
|
102
102
|
flex-basis: 0;
|
103
103
|
flex-grow: 1;
|
@@ -25,13 +25,23 @@
|
|
25
25
|
|
26
26
|
// Because flex properties aren't inherited, we need to redeclare these first
|
27
27
|
// few properties so that content nested within behave properly.
|
28
|
-
|
29
|
-
> .container-fluid {
|
28
|
+
%container-flex-properties {
|
30
29
|
display: flex;
|
31
30
|
flex-wrap: wrap;
|
32
31
|
align-items: center;
|
33
32
|
justify-content: space-between;
|
34
33
|
}
|
34
|
+
|
35
|
+
.container,
|
36
|
+
.container-fluid {
|
37
|
+
@extend %container-flex-properties;
|
38
|
+
}
|
39
|
+
|
40
|
+
@each $breakpoint, $container-max-width in $container-max-widths {
|
41
|
+
> .container#{breakpoint-infix($breakpoint, $container-max-widths)} {
|
42
|
+
@extend %container-flex-properties;
|
43
|
+
}
|
44
|
+
}
|
35
45
|
}
|
36
46
|
|
37
47
|
|
@@ -48,7 +58,7 @@
|
|
48
58
|
line-height: inherit;
|
49
59
|
white-space: nowrap;
|
50
60
|
|
51
|
-
@include hover-focus {
|
61
|
+
@include hover-focus() {
|
52
62
|
text-decoration: none;
|
53
63
|
}
|
54
64
|
}
|
@@ -113,7 +123,7 @@
|
|
113
123
|
border: $border-width solid transparent; // remove default button style
|
114
124
|
@include border-radius($navbar-toggler-border-radius);
|
115
125
|
|
116
|
-
@include hover-focus {
|
126
|
+
@include hover-focus() {
|
117
127
|
text-decoration: none;
|
118
128
|
}
|
119
129
|
}
|
@@ -126,8 +136,12 @@
|
|
126
136
|
height: 1.5em;
|
127
137
|
vertical-align: middle;
|
128
138
|
content: "";
|
129
|
-
background: no-repeat
|
130
|
-
|
139
|
+
background: 50% / 100% 100% no-repeat;
|
140
|
+
}
|
141
|
+
|
142
|
+
.navbar-nav-scroll {
|
143
|
+
max-height: $navbar-nav-scroll-max-height;
|
144
|
+
overflow-y: auto;
|
131
145
|
}
|
132
146
|
|
133
147
|
// Generate series of `.navbar-expand-*` responsive classes for configuring
|
@@ -139,11 +153,21 @@
|
|
139
153
|
|
140
154
|
&#{$infix} {
|
141
155
|
@include media-breakpoint-down($breakpoint) {
|
142
|
-
|
143
|
-
> .container-fluid {
|
156
|
+
%container-navbar-expand-#{$breakpoint} {
|
144
157
|
padding-right: 0;
|
145
158
|
padding-left: 0;
|
146
159
|
}
|
160
|
+
|
161
|
+
> .container,
|
162
|
+
> .container-fluid {
|
163
|
+
@extend %container-navbar-expand-#{$breakpoint};
|
164
|
+
}
|
165
|
+
|
166
|
+
@each $size, $container-max-width in $container-max-widths {
|
167
|
+
> .container#{breakpoint-infix($size, $container-max-widths)} {
|
168
|
+
@extend %container-navbar-expand-#{$breakpoint};
|
169
|
+
}
|
170
|
+
}
|
147
171
|
}
|
148
172
|
|
149
173
|
@include media-breakpoint-up($next) {
|
@@ -164,9 +188,23 @@
|
|
164
188
|
}
|
165
189
|
|
166
190
|
// For nesting containers, have to redeclare for alignment purposes
|
191
|
+
%container-nesting-#{$breakpoint} {
|
192
|
+
flex-wrap: nowrap;
|
193
|
+
}
|
194
|
+
|
167
195
|
> .container,
|
168
196
|
> .container-fluid {
|
169
|
-
|
197
|
+
@extend %container-nesting-#{$breakpoint};
|
198
|
+
}
|
199
|
+
|
200
|
+
@each $size, $container-max-width in $container-max-widths {
|
201
|
+
> .container#{breakpoint-infix($size, $container-max-widths)} {
|
202
|
+
@extend %container-nesting-#{$breakpoint};
|
203
|
+
}
|
204
|
+
}
|
205
|
+
|
206
|
+
.navbar-nav-scroll {
|
207
|
+
overflow: visible;
|
170
208
|
}
|
171
209
|
|
172
210
|
.navbar-collapse {
|
@@ -194,7 +232,7 @@
|
|
194
232
|
.navbar-brand {
|
195
233
|
color: $navbar-light-brand-color;
|
196
234
|
|
197
|
-
@include hover-focus {
|
235
|
+
@include hover-focus() {
|
198
236
|
color: $navbar-light-brand-hover-color;
|
199
237
|
}
|
200
238
|
}
|
@@ -203,7 +241,7 @@
|
|
203
241
|
.nav-link {
|
204
242
|
color: $navbar-light-color;
|
205
243
|
|
206
|
-
@include hover-focus {
|
244
|
+
@include hover-focus() {
|
207
245
|
color: $navbar-light-hover-color;
|
208
246
|
}
|
209
247
|
|
@@ -226,7 +264,7 @@
|
|
226
264
|
}
|
227
265
|
|
228
266
|
.navbar-toggler-icon {
|
229
|
-
background-image: $navbar-light-toggler-icon-bg;
|
267
|
+
background-image: escape-svg($navbar-light-toggler-icon-bg);
|
230
268
|
}
|
231
269
|
|
232
270
|
.navbar-text {
|
@@ -234,7 +272,7 @@
|
|
234
272
|
a {
|
235
273
|
color: $navbar-light-active-color;
|
236
274
|
|
237
|
-
@include hover-focus {
|
275
|
+
@include hover-focus() {
|
238
276
|
color: $navbar-light-active-color;
|
239
277
|
}
|
240
278
|
}
|
@@ -246,7 +284,7 @@
|
|
246
284
|
.navbar-brand {
|
247
285
|
color: $navbar-dark-brand-color;
|
248
286
|
|
249
|
-
@include hover-focus {
|
287
|
+
@include hover-focus() {
|
250
288
|
color: $navbar-dark-brand-hover-color;
|
251
289
|
}
|
252
290
|
}
|
@@ -255,7 +293,7 @@
|
|
255
293
|
.nav-link {
|
256
294
|
color: $navbar-dark-color;
|
257
295
|
|
258
|
-
@include hover-focus {
|
296
|
+
@include hover-focus() {
|
259
297
|
color: $navbar-dark-hover-color;
|
260
298
|
}
|
261
299
|
|
@@ -278,7 +316,7 @@
|
|
278
316
|
}
|
279
317
|
|
280
318
|
.navbar-toggler-icon {
|
281
|
-
background-image: $navbar-dark-toggler-icon-bg;
|
319
|
+
background-image: escape-svg($navbar-dark-toggler-icon-bg);
|
282
320
|
}
|
283
321
|
|
284
322
|
.navbar-text {
|
@@ -286,7 +324,7 @@
|
|
286
324
|
a {
|
287
325
|
color: $navbar-dark-active-color;
|
288
326
|
|
289
|
-
@include hover-focus {
|
327
|
+
@include hover-focus() {
|
290
328
|
color: $navbar-dark-active-color;
|
291
329
|
}
|
292
330
|
}
|