bootstrap 4.6.2.1 → 5.0.0.alpha1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (140) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +0 -4
  3. data/README.md +1 -7
  4. data/Rakefile +4 -16
  5. data/assets/javascripts/bootstrap/alert.js +148 -73
  6. data/assets/javascripts/bootstrap/button.js +71 -154
  7. data/assets/javascripts/bootstrap/carousel.js +315 -209
  8. data/assets/javascripts/bootstrap/collapse.js +307 -153
  9. data/assets/javascripts/bootstrap/dom/data.js +81 -0
  10. data/assets/javascripts/bootstrap/dom/event-handler.js +311 -0
  11. data/assets/javascripts/bootstrap/dom/manipulator.js +100 -0
  12. data/assets/javascripts/bootstrap/dom/polyfill.js +110 -0
  13. data/assets/javascripts/bootstrap/dom/selector-engine.js +98 -0
  14. data/assets/javascripts/bootstrap/dropdown.js +257 -205
  15. data/assets/javascripts/bootstrap/modal.js +354 -250
  16. data/assets/javascripts/bootstrap/popover.js +85 -94
  17. data/assets/javascripts/bootstrap/scrollspy.js +179 -107
  18. data/assets/javascripts/bootstrap/tab.js +170 -99
  19. data/assets/javascripts/bootstrap/toast.js +181 -110
  20. data/assets/javascripts/bootstrap/tooltip.js +375 -226
  21. data/assets/javascripts/bootstrap-sprockets.js +5 -1
  22. data/assets/javascripts/bootstrap.js +2260 -1550
  23. data/assets/javascripts/bootstrap.min.js +3 -3
  24. data/assets/stylesheets/_bootstrap-grid.scss +53 -18
  25. data/assets/stylesheets/_bootstrap-reboot.scss +6 -3
  26. data/assets/stylesheets/_bootstrap.scss +16 -10
  27. data/assets/stylesheets/bootstrap/_alert.scss +3 -4
  28. data/assets/stylesheets/bootstrap/_badge.scss +2 -27
  29. data/assets/stylesheets/bootstrap/_breadcrumb.scss +5 -17
  30. data/assets/stylesheets/bootstrap/_button-group.scss +16 -38
  31. data/assets/stylesheets/bootstrap/_buttons.scss +27 -45
  32. data/assets/stylesheets/bootstrap/_card.scss +22 -68
  33. data/assets/stylesheets/bootstrap/_carousel.scss +15 -20
  34. data/assets/stylesheets/bootstrap/_close.scss +9 -13
  35. data/assets/stylesheets/bootstrap/_containers.scss +41 -0
  36. data/assets/stylesheets/bootstrap/_dropdown.scss +12 -9
  37. data/assets/stylesheets/bootstrap/_forms.scss +9 -347
  38. data/assets/stylesheets/bootstrap/_functions.scss +82 -69
  39. data/assets/stylesheets/bootstrap/_grid.scss +3 -54
  40. data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
  41. data/assets/stylesheets/bootstrap/_images.scss +1 -1
  42. data/assets/stylesheets/bootstrap/_list-group.scss +7 -4
  43. data/assets/stylesheets/bootstrap/_mixins.scss +6 -12
  44. data/assets/stylesheets/bootstrap/_modal.scss +36 -41
  45. data/assets/stylesheets/bootstrap/_nav.scss +7 -9
  46. data/assets/stylesheets/bootstrap/_navbar.scss +42 -82
  47. data/assets/stylesheets/bootstrap/_pagination.scss +7 -20
  48. data/assets/stylesheets/bootstrap/_popover.scss +14 -14
  49. data/assets/stylesheets/bootstrap/_progress.scss +3 -5
  50. data/assets/stylesheets/bootstrap/_reboot.scss +304 -172
  51. data/assets/stylesheets/bootstrap/_root.scss +5 -8
  52. data/assets/stylesheets/bootstrap/_spinners.scss +8 -17
  53. data/assets/stylesheets/bootstrap/_tables.scss +80 -114
  54. data/assets/stylesheets/bootstrap/_toasts.scss +2 -4
  55. data/assets/stylesheets/bootstrap/_tooltip.scss +9 -9
  56. data/assets/stylesheets/bootstrap/_transitions.scss +0 -7
  57. data/assets/stylesheets/bootstrap/_type.scss +38 -59
  58. data/assets/stylesheets/bootstrap/_utilities.scss +503 -18
  59. data/assets/stylesheets/bootstrap/_variables.scss +548 -437
  60. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
  61. data/assets/stylesheets/bootstrap/forms/_form-check.scss +142 -0
  62. data/assets/stylesheets/bootstrap/forms/_form-control.scss +116 -0
  63. data/assets/stylesheets/bootstrap/forms/_form-file.scss +91 -0
  64. data/assets/stylesheets/bootstrap/forms/_form-range.scss +136 -0
  65. data/assets/stylesheets/bootstrap/forms/_form-select.scss +82 -0
  66. data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
  67. data/assets/stylesheets/bootstrap/forms/_input-group.scss +140 -0
  68. data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
  69. data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
  70. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +12 -0
  71. data/assets/stylesheets/bootstrap/helpers/_embed.scss +31 -0
  72. data/assets/stylesheets/bootstrap/helpers/_position.scss +30 -0
  73. data/assets/stylesheets/bootstrap/helpers/_screenreaders.scss +8 -0
  74. data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
  75. data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
  76. data/assets/stylesheets/bootstrap/mixins/_alert.scss +0 -4
  77. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +1 -1
  78. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +11 -8
  79. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +62 -47
  80. data/assets/stylesheets/bootstrap/mixins/_caret.scss +4 -4
  81. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
  82. data/assets/stylesheets/bootstrap/mixins/_container.scss +9 -0
  83. data/assets/stylesheets/bootstrap/mixins/_forms.scss +23 -85
  84. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +9 -11
  85. data/assets/stylesheets/bootstrap/mixins/_grid.scss +86 -34
  86. data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -21
  87. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +2 -1
  88. data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
  89. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +15 -8
  90. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +3 -3
  91. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +18 -24
  92. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +21 -0
  93. data/assets/stylesheets/bootstrap/mixins/_transition.scss +2 -2
  94. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +49 -0
  95. data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
  96. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +214 -130
  97. data/bootstrap.gemspec +3 -1
  98. data/lib/bootstrap/engine.rb +1 -17
  99. data/lib/bootstrap/version.rb +2 -2
  100. data/tasks/updater/js.rb +6 -18
  101. data/tasks/updater/network.rb +1 -7
  102. metadata +49 -47
  103. data/assets/javascripts/bootstrap/util.js +0 -189
  104. data/assets/stylesheets/bootstrap/_code.scss +0 -48
  105. data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -526
  106. data/assets/stylesheets/bootstrap/_input-group.scss +0 -211
  107. data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
  108. data/assets/stylesheets/bootstrap/_media.scss +0 -8
  109. data/assets/stylesheets/bootstrap/_print.scss +0 -132
  110. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -23
  111. data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
  112. data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
  113. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -80
  114. data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
  115. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -11
  116. data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
  117. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
  118. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -17
  119. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
  120. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
  121. data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
  122. data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
  123. data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
  124. data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
  125. data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
  126. data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
  127. data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
  128. data/assets/stylesheets/bootstrap/utilities/_interactions.scss +0 -5
  129. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
  130. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
  131. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
  132. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
  133. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
  134. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
  135. data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
  136. data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
  137. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
  138. data/test/gemfiles/rails_7_0_dartsass.gemfile +0 -8
  139. data/test/gemfiles/rails_7_0_sassc.gemfile +0 -8
  140. /data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
@@ -8,19 +8,16 @@
8
8
  // Deprecate
9
9
  @import "mixins/deprecate";
10
10
 
11
- // Utilities
11
+ // Helpers
12
12
  @import "mixins/breakpoints";
13
- @import "mixins/hover";
14
13
  @import "mixins/image";
15
- @import "mixins/badge";
16
14
  @import "mixins/resize";
17
15
  @import "mixins/screen-reader";
18
- @import "mixins/size";
19
16
  @import "mixins/reset-text";
20
- @import "mixins/text-emphasis";
21
- @import "mixins/text-hide";
22
17
  @import "mixins/text-truncate";
23
- @import "mixins/visibility";
18
+
19
+ // Utilities
20
+ @import "mixins/utilities";
24
21
 
25
22
  // Components
26
23
  @import "mixins/alert";
@@ -29,12 +26,10 @@
29
26
  @import "mixins/pagination";
30
27
  @import "mixins/lists";
31
28
  @import "mixins/list-group";
32
- @import "mixins/nav-divider";
33
29
  @import "mixins/forms";
34
- @import "mixins/table-row";
30
+ @import "mixins/table-variants";
35
31
 
36
32
  // Skins
37
- @import "mixins/background-variant";
38
33
  @import "mixins/border-radius";
39
34
  @import "mixins/box-shadow";
40
35
  @import "mixins/gradients";
@@ -42,6 +37,5 @@
42
37
 
43
38
  // Layout
44
39
  @import "mixins/clearfix";
45
- @import "mixins/grid-framework";
40
+ @import "mixins/container";
46
41
  @import "mixins/grid";
47
- @import "mixins/float";
@@ -56,19 +56,12 @@
56
56
  }
57
57
 
58
58
  .modal-dialog-scrollable {
59
- display: flex; // IE10/11
60
59
  max-height: subtract(100%, $modal-dialog-margin * 2);
61
60
 
62
61
  .modal-content {
63
- max-height: subtract(100vh, $modal-dialog-margin * 2); // IE10/11
64
62
  overflow: hidden;
65
63
  }
66
64
 
67
- .modal-header,
68
- .modal-footer {
69
- flex-shrink: 0;
70
- }
71
-
72
65
  .modal-body {
73
66
  overflow-y: auto;
74
67
  }
@@ -78,29 +71,6 @@
78
71
  display: flex;
79
72
  align-items: center;
80
73
  min-height: subtract(100%, $modal-dialog-margin * 2);
81
-
82
- // Ensure `modal-dialog-centered` extends the full height of the view (IE10/11)
83
- &::before {
84
- display: block; // IE10
85
- height: subtract(100vh, $modal-dialog-margin * 2);
86
- height: min-content; // Reset height to 0 except on IE
87
- content: "";
88
- }
89
-
90
- // Ensure `.modal-body` shows scrollbar (IE10/11)
91
- &.modal-dialog-scrollable {
92
- flex-direction: column;
93
- justify-content: center;
94
- height: 100%;
95
-
96
- .modal-content {
97
- max-height: none;
98
- }
99
-
100
- &::before {
101
- content: none;
102
- }
103
- }
104
74
  }
105
75
 
106
76
  // Actual modal
@@ -140,6 +110,7 @@
140
110
  // Top section of the modal w/ title and dismiss
141
111
  .modal-header {
142
112
  display: flex;
113
+ flex-shrink: 0;
143
114
  align-items: flex-start; // so the close btn always stays on the upper right corner
144
115
  justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends
145
116
  padding: $modal-header-padding;
@@ -173,9 +144,10 @@
173
144
  .modal-footer {
174
145
  display: flex;
175
146
  flex-wrap: wrap;
147
+ flex-shrink: 0;
176
148
  align-items: center; // vertically center
177
149
  justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items
178
- padding: $modal-inner-padding - $modal-footer-margin-between * .5;
150
+ padding: $modal-inner-padding - $modal-footer-margin-between / 2;
179
151
  border-top: $modal-footer-border-width solid $modal-footer-border-color;
180
152
  @include border-bottom-radius($modal-content-inner-border-radius);
181
153
 
@@ -183,7 +155,7 @@
183
155
  // This solution is far from ideal because of the universal selector usage,
184
156
  // but is needed to fix https://github.com/twbs/bootstrap/issues/24800
185
157
  > * {
186
- margin: $modal-footer-margin-between * .5;
158
+ margin: $modal-footer-margin-between / 2;
187
159
  }
188
160
  }
189
161
 
@@ -206,19 +178,10 @@
206
178
 
207
179
  .modal-dialog-scrollable {
208
180
  max-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);
209
-
210
- .modal-content {
211
- max-height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);
212
- }
213
181
  }
214
182
 
215
183
  .modal-dialog-centered {
216
184
  min-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);
217
-
218
- &::before {
219
- height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);
220
- height: min-content;
221
- }
222
185
  }
223
186
 
224
187
  .modal-content {
@@ -238,3 +201,35 @@
238
201
  @include media-breakpoint-up(xl) {
239
202
  .modal-xl { max-width: $modal-xl; }
240
203
  }
204
+
205
+ @each $breakpoint in map-keys($grid-breakpoints) {
206
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
207
+ $postfix: if($infix != "", $infix + "-down", "");
208
+
209
+ @include media-breakpoint-down($breakpoint) {
210
+ .modal-fullscreen#{$postfix} {
211
+ width: 100vw;
212
+ max-width: none;
213
+ height: 100%;
214
+ margin: 0;
215
+
216
+ .modal-content {
217
+ height: 100%;
218
+ border: 0;
219
+ @include border-radius(0);
220
+ }
221
+
222
+ .modal-header {
223
+ @include border-radius(0);
224
+ }
225
+
226
+ .modal-body {
227
+ overflow-y: auto;
228
+ }
229
+
230
+ .modal-footer {
231
+ @include border-radius(0);
232
+ }
233
+ }
234
+ }
235
+ }
@@ -15,9 +15,11 @@
15
15
  display: block;
16
16
  padding: $nav-link-padding-y $nav-link-padding-x;
17
17
  text-decoration: if($link-decoration == none, null, none);
18
+ @include transition($nav-link-transition);
18
19
 
19
- @include hover-focus() {
20
- text-decoration: none;
20
+ &:hover,
21
+ &:focus {
22
+ text-decoration: if($link-hover-decoration == underline, none, null);
21
23
  }
22
24
 
23
25
  // Disabled state lightens text
@@ -37,13 +39,11 @@
37
39
 
38
40
  .nav-link {
39
41
  margin-bottom: -$nav-tabs-border-width;
40
- background-color: transparent;
41
42
  border: $nav-tabs-border-width solid transparent;
42
43
  @include border-top-radius($nav-tabs-border-radius);
43
44
 
44
- @include hover-focus() {
45
- // Prevents active .nav-link tab overlapping focus outline of previous/next .nav-link
46
- isolation: isolate;
45
+ &:hover,
46
+ &:focus {
47
47
  border-color: $nav-tabs-link-hover-border-color;
48
48
  }
49
49
 
@@ -76,15 +76,13 @@
76
76
 
77
77
  .nav-pills {
78
78
  .nav-link {
79
- background: none;
80
- border: 0;
81
79
  @include border-radius($nav-pills-border-radius);
82
80
  }
83
81
 
84
82
  .nav-link.active,
85
83
  .show > .nav-link {
86
84
  color: $nav-pills-link-active-color;
87
- background-color: $nav-pills-link-active-bg;
85
+ @include gradient-bg($nav-pills-link-active-bg);
88
86
  }
89
87
  }
90
88
 
@@ -4,7 +4,6 @@
4
4
  // Navbar brand
5
5
  // Navbar nav
6
6
  // Navbar text
7
- // Navbar divider
8
7
  // Responsive navbar
9
8
  // Navbar position
10
9
  // Navbar themes
@@ -21,19 +20,24 @@
21
20
  flex-wrap: wrap; // allow us to do the line break for collapsing content
22
21
  align-items: center;
23
22
  justify-content: space-between; // space out brand from logo
24
- padding: $navbar-padding-y $navbar-padding-x;
23
+ padding-top: $navbar-padding-y;
24
+ padding-right: $navbar-padding-x; // default: null
25
+ padding-bottom: $navbar-padding-y;
26
+ padding-left: $navbar-padding-x; // default: null
27
+ @include gradient-bg();
25
28
 
26
29
  // Because flex properties aren't inherited, we need to redeclare these first
27
30
  // few properties so that content nested within behave properly.
31
+ // The `flex-wrap` property is inherited to simplify the expanded navbars
28
32
  %container-flex-properties {
29
33
  display: flex;
30
- flex-wrap: wrap;
34
+ flex-wrap: inherit;
31
35
  align-items: center;
32
36
  justify-content: space-between;
33
37
  }
34
38
 
35
- .container,
36
- .container-fluid {
39
+ > .container,
40
+ > .container-fluid {
37
41
  @extend %container-flex-properties;
38
42
  }
39
43
 
@@ -50,16 +54,16 @@
50
54
  // Used for brand, project, or site names.
51
55
 
52
56
  .navbar-brand {
53
- display: inline-block;
54
57
  padding-top: $navbar-brand-padding-y;
55
58
  padding-bottom: $navbar-brand-padding-y;
56
- margin-right: $navbar-padding-x;
59
+ margin-right: $navbar-brand-margin-right;
57
60
  @include font-size($navbar-brand-font-size);
58
- line-height: inherit;
61
+ text-decoration: if($link-decoration == none, null, none);
59
62
  white-space: nowrap;
60
63
 
61
- @include hover-focus() {
62
- text-decoration: none;
64
+ &:hover,
65
+ &:focus {
66
+ text-decoration: if($link-hover-decoration == underline, none, null);
63
67
  }
64
68
  }
65
69
 
@@ -82,7 +86,6 @@
82
86
 
83
87
  .dropdown-menu {
84
88
  position: static;
85
- float: none;
86
89
  }
87
90
  }
88
91
 
@@ -92,7 +95,6 @@
92
95
  //
93
96
 
94
97
  .navbar-text {
95
- display: inline-block;
96
98
  padding-top: $nav-link-padding-y;
97
99
  padding-bottom: $nav-link-padding-y;
98
100
  }
@@ -107,11 +109,10 @@
107
109
  // the default flexbox row orientation. Requires the use of `flex-wrap: wrap`
108
110
  // on the `.navbar` parent.
109
111
  .navbar-collapse {
110
- flex-basis: 100%;
111
- flex-grow: 1;
112
112
  // For always expanded or extra full navbars, ensure content aligns itself
113
113
  // properly vertically. Can be easily overridden with flex utilities.
114
114
  align-items: center;
115
+ width: 100%;
115
116
  }
116
117
 
117
118
  // Button for toggling the navbar when in its collapsed state
@@ -122,9 +123,16 @@
122
123
  background-color: transparent; // remove default button style
123
124
  border: $border-width solid transparent; // remove default button style
124
125
  @include border-radius($navbar-toggler-border-radius);
126
+ @include transition($navbar-toggler-transition);
127
+
128
+ &:hover {
129
+ text-decoration: none;
130
+ }
125
131
 
126
- @include hover-focus() {
132
+ &:focus {
127
133
  text-decoration: none;
134
+ outline: 0;
135
+ box-shadow: 0 0 0 $navbar-toggler-focus-width;
128
136
  }
129
137
  }
130
138
 
@@ -135,13 +143,9 @@
135
143
  width: 1.5em;
136
144
  height: 1.5em;
137
145
  vertical-align: middle;
138
- content: "";
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;
146
+ background-repeat: no-repeat;
147
+ background-position: center;
148
+ background-size: 100%;
145
149
  }
146
150
 
147
151
  // Generate series of `.navbar-expand-*` responsive classes for configuring
@@ -152,26 +156,8 @@
152
156
  $infix: breakpoint-infix($next, $grid-breakpoints);
153
157
 
154
158
  &#{$infix} {
155
- @include media-breakpoint-down($breakpoint) {
156
- %container-navbar-expand-#{$breakpoint} {
157
- padding-right: 0;
158
- padding-left: 0;
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
- }
171
- }
172
-
173
159
  @include media-breakpoint-up($next) {
174
- flex-flow: row nowrap;
160
+ flex-wrap: nowrap;
175
161
  justify-content: flex-start;
176
162
 
177
163
  .navbar-nav {
@@ -187,31 +173,8 @@
187
173
  }
188
174
  }
189
175
 
190
- // For nesting containers, have to redeclare for alignment purposes
191
- %container-nesting-#{$breakpoint} {
192
- flex-wrap: nowrap;
193
- }
194
-
195
- > .container,
196
- > .container-fluid {
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;
208
- }
209
-
210
176
  .navbar-collapse {
211
177
  display: flex !important; // stylelint-disable-line declaration-no-important
212
-
213
- // Changes flex-bases to auto because of an IE10 bug
214
- flex-basis: auto;
215
178
  }
216
179
 
217
180
  .navbar-toggler {
@@ -232,7 +195,8 @@
232
195
  .navbar-brand {
233
196
  color: $navbar-light-brand-color;
234
197
 
235
- @include hover-focus() {
198
+ &:hover,
199
+ &:focus {
236
200
  color: $navbar-light-brand-hover-color;
237
201
  }
238
202
  }
@@ -241,7 +205,8 @@
241
205
  .nav-link {
242
206
  color: $navbar-light-color;
243
207
 
244
- @include hover-focus() {
208
+ &:hover,
209
+ &:focus {
245
210
  color: $navbar-light-hover-color;
246
211
  }
247
212
 
@@ -251,8 +216,6 @@
251
216
  }
252
217
 
253
218
  .show > .nav-link,
254
- .active > .nav-link,
255
- .nav-link.show,
256
219
  .nav-link.active {
257
220
  color: $navbar-light-active-color;
258
221
  }
@@ -269,12 +232,11 @@
269
232
 
270
233
  .navbar-text {
271
234
  color: $navbar-light-color;
272
- a {
273
- color: $navbar-light-active-color;
274
235
 
275
- @include hover-focus() {
276
- color: $navbar-light-active-color;
277
- }
236
+ a,
237
+ a:hover,
238
+ a:focus {
239
+ color: $navbar-light-active-color;
278
240
  }
279
241
  }
280
242
  }
@@ -284,7 +246,8 @@
284
246
  .navbar-brand {
285
247
  color: $navbar-dark-brand-color;
286
248
 
287
- @include hover-focus() {
249
+ &:hover,
250
+ &:focus {
288
251
  color: $navbar-dark-brand-hover-color;
289
252
  }
290
253
  }
@@ -293,7 +256,8 @@
293
256
  .nav-link {
294
257
  color: $navbar-dark-color;
295
258
 
296
- @include hover-focus() {
259
+ &:hover,
260
+ &:focus {
297
261
  color: $navbar-dark-hover-color;
298
262
  }
299
263
 
@@ -303,8 +267,6 @@
303
267
  }
304
268
 
305
269
  .show > .nav-link,
306
- .active > .nav-link,
307
- .nav-link.show,
308
270
  .nav-link.active {
309
271
  color: $navbar-dark-active-color;
310
272
  }
@@ -321,12 +283,10 @@
321
283
 
322
284
  .navbar-text {
323
285
  color: $navbar-dark-color;
324
- a {
286
+ a,
287
+ a:hover,
288
+ a:focus {
325
289
  color: $navbar-dark-active-color;
326
-
327
- @include hover-focus() {
328
- color: $navbar-dark-active-color;
329
- }
330
290
  }
331
291
  }
332
292
  }
@@ -1,15 +1,11 @@
1
1
  .pagination {
2
2
  display: flex;
3
3
  @include list-unstyled();
4
- @include border-radius();
5
4
  }
6
5
 
7
6
  .page-link {
8
7
  position: relative;
9
8
  display: block;
10
- padding: $pagination-padding-y $pagination-padding-x;
11
- margin-left: -$pagination-border-width;
12
- line-height: $pagination-line-height;
13
9
  color: $pagination-color;
14
10
  text-decoration: if($link-decoration == none, null, none);
15
11
  background-color: $pagination-bg;
@@ -18,7 +14,7 @@
18
14
  &:hover {
19
15
  z-index: 2;
20
16
  color: $pagination-hover-color;
21
- text-decoration: none;
17
+ text-decoration: if($link-hover-decoration == underline, none, null);
22
18
  background-color: $pagination-hover-bg;
23
19
  border-color: $pagination-hover-border-color;
24
20
  }
@@ -31,30 +27,20 @@
31
27
  }
32
28
 
33
29
  .page-item {
34
- &:first-child {
35
- .page-link {
36
- margin-left: 0;
37
- @include border-left-radius($border-radius);
38
- }
39
- }
40
- &:last-child {
41
- .page-link {
42
- @include border-right-radius($border-radius);
43
- }
30
+ &:not(:first-child) .page-link {
31
+ margin-left: $pagination-margin-left;
44
32
  }
45
33
 
46
34
  &.active .page-link {
47
35
  z-index: 3;
48
36
  color: $pagination-active-color;
49
- background-color: $pagination-active-bg;
37
+ @include gradient-bg($pagination-active-bg);
50
38
  border-color: $pagination-active-border-color;
51
39
  }
52
40
 
53
41
  &.disabled .page-link {
54
42
  color: $pagination-disabled-color;
55
43
  pointer-events: none;
56
- // Opinionated: remove the "hand" cursor set previously for .page-link
57
- cursor: auto;
58
44
  background-color: $pagination-disabled-bg;
59
45
  border-color: $pagination-disabled-border-color;
60
46
  }
@@ -64,11 +50,12 @@
64
50
  //
65
51
  // Sizing
66
52
  //
53
+ @include pagination-size($pagination-padding-y, $pagination-padding-x, null, $pagination-border-radius);
67
54
 
68
55
  .pagination-lg {
69
- @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $pagination-border-radius-lg);
56
+ @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $border-radius-lg);
70
57
  }
71
58
 
72
59
  .pagination-sm {
73
- @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $pagination-border-radius-sm);
60
+ @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $border-radius-sm);
74
61
  }
@@ -17,7 +17,7 @@
17
17
  @include border-radius($popover-border-radius);
18
18
  @include box-shadow($popover-box-shadow);
19
19
 
20
- .arrow {
20
+ .popover-arrow {
21
21
  position: absolute;
22
22
  display: block;
23
23
  width: $popover-arrow-width;
@@ -38,18 +38,18 @@
38
38
  .bs-popover-top {
39
39
  margin-bottom: $popover-arrow-height;
40
40
 
41
- > .arrow {
41
+ > .popover-arrow {
42
42
  bottom: subtract(-$popover-arrow-height, $popover-border-width);
43
43
 
44
44
  &::before {
45
45
  bottom: 0;
46
- border-width: $popover-arrow-height ($popover-arrow-width * .5) 0;
46
+ border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;
47
47
  border-top-color: $popover-arrow-outer-color;
48
48
  }
49
49
 
50
50
  &::after {
51
51
  bottom: $popover-border-width;
52
- border-width: $popover-arrow-height ($popover-arrow-width * .5) 0;
52
+ border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;
53
53
  border-top-color: $popover-arrow-color;
54
54
  }
55
55
  }
@@ -58,7 +58,7 @@
58
58
  .bs-popover-right {
59
59
  margin-left: $popover-arrow-height;
60
60
 
61
- > .arrow {
61
+ > .popover-arrow {
62
62
  left: subtract(-$popover-arrow-height, $popover-border-width);
63
63
  width: $popover-arrow-height;
64
64
  height: $popover-arrow-width;
@@ -66,13 +66,13 @@
66
66
 
67
67
  &::before {
68
68
  left: 0;
69
- border-width: ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5) 0;
69
+ border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;
70
70
  border-right-color: $popover-arrow-outer-color;
71
71
  }
72
72
 
73
73
  &::after {
74
74
  left: $popover-border-width;
75
- border-width: ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5) 0;
75
+ border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;
76
76
  border-right-color: $popover-arrow-color;
77
77
  }
78
78
  }
@@ -81,18 +81,18 @@
81
81
  .bs-popover-bottom {
82
82
  margin-top: $popover-arrow-height;
83
83
 
84
- > .arrow {
84
+ > .popover-arrow {
85
85
  top: subtract(-$popover-arrow-height, $popover-border-width);
86
86
 
87
87
  &::before {
88
88
  top: 0;
89
- border-width: 0 ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5);
89
+ border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);
90
90
  border-bottom-color: $popover-arrow-outer-color;
91
91
  }
92
92
 
93
93
  &::after {
94
94
  top: $popover-border-width;
95
- border-width: 0 ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5);
95
+ border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);
96
96
  border-bottom-color: $popover-arrow-color;
97
97
  }
98
98
  }
@@ -104,7 +104,7 @@
104
104
  left: 50%;
105
105
  display: block;
106
106
  width: $popover-arrow-width;
107
- margin-left: -$popover-arrow-width * .5;
107
+ margin-left: -$popover-arrow-width / 2;
108
108
  content: "";
109
109
  border-bottom: $popover-border-width solid $popover-header-bg;
110
110
  }
@@ -113,7 +113,7 @@
113
113
  .bs-popover-left {
114
114
  margin-right: $popover-arrow-height;
115
115
 
116
- > .arrow {
116
+ > .popover-arrow {
117
117
  right: subtract(-$popover-arrow-height, $popover-border-width);
118
118
  width: $popover-arrow-height;
119
119
  height: $popover-arrow-width;
@@ -121,13 +121,13 @@
121
121
 
122
122
  &::before {
123
123
  right: 0;
124
- border-width: ($popover-arrow-width * .5) 0 ($popover-arrow-width * .5) $popover-arrow-height;
124
+ border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;
125
125
  border-left-color: $popover-arrow-outer-color;
126
126
  }
127
127
 
128
128
  &::after {
129
129
  right: $popover-border-width;
130
- border-width: ($popover-arrow-width * .5) 0 ($popover-arrow-width * .5) $popover-arrow-height;
130
+ border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;
131
131
  border-left-color: $popover-arrow-color;
132
132
  }
133
133
  }
@@ -1,8 +1,7 @@
1
1
  // Disable animation if transitions are disabled
2
2
  @if $enable-transitions {
3
3
  @keyframes progress-bar-stripes {
4
- from { background-position: $progress-height 0; }
5
- to { background-position: 0 0; }
4
+ 0% { background-position-x: $progress-height; }
6
5
  }
7
6
  }
8
7
 
@@ -10,7 +9,6 @@
10
9
  display: flex;
11
10
  height: $progress-height;
12
11
  overflow: hidden; // force rounded corners by cropping it
13
- line-height: 0;
14
12
  @include font-size($progress-font-size);
15
13
  background-color: $progress-bg;
16
14
  @include border-radius($progress-border-radius);
@@ -36,9 +34,9 @@
36
34
 
37
35
  @if $enable-transitions {
38
36
  .progress-bar-animated {
39
- animation: $progress-bar-animation-timing progress-bar-stripes;
37
+ animation: progress-bar-stripes $progress-bar-animation-timing;
40
38
 
41
- @if $enable-prefers-reduced-motion-media-query {
39
+ @if $enable-reduced-motion {
42
40
  @media (prefers-reduced-motion: reduce) {
43
41
  animation: none;
44
42
  }