bootstrap 4.3.0 → 5.1.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.
Files changed (158) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +17 -2
  3. data/CHANGELOG.md +2 -14
  4. data/README.md +7 -4
  5. data/assets/javascripts/bootstrap/alert.js +173 -137
  6. data/assets/javascripts/bootstrap/base-component.js +182 -0
  7. data/assets/javascripts/bootstrap/button.js +102 -143
  8. data/assets/javascripts/bootstrap/carousel.js +481 -410
  9. data/assets/javascripts/bootstrap/collapse.js +340 -274
  10. data/assets/javascripts/bootstrap/dom/data.js +68 -0
  11. data/assets/javascripts/bootstrap/dom/event-handler.js +322 -0
  12. data/assets/javascripts/bootstrap/dom/manipulator.js +88 -0
  13. data/assets/javascripts/bootstrap/dom/selector-engine.js +127 -0
  14. data/assets/javascripts/bootstrap/dropdown.js +494 -400
  15. data/assets/javascripts/bootstrap/modal.js +834 -450
  16. data/assets/javascripts/bootstrap/offcanvas.js +866 -0
  17. data/assets/javascripts/bootstrap/popover.js +122 -199
  18. data/assets/javascripts/bootstrap/scrollspy.js +257 -241
  19. data/assets/javascripts/bootstrap/tab.js +219 -155
  20. data/assets/javascripts/bootstrap/toast.js +330 -190
  21. data/assets/javascripts/bootstrap/tooltip.js +710 -472
  22. data/assets/javascripts/bootstrap-global-this-define.js +6 -0
  23. data/assets/javascripts/bootstrap-global-this-undefine.js +2 -0
  24. data/assets/javascripts/bootstrap-sprockets.js +8 -1
  25. data/assets/javascripts/bootstrap.js +3547 -2809
  26. data/assets/javascripts/bootstrap.min.js +4 -4
  27. data/assets/stylesheets/_bootstrap-grid.scss +54 -18
  28. data/assets/stylesheets/_bootstrap-reboot.scss +7 -4
  29. data/assets/stylesheets/_bootstrap.scss +20 -11
  30. data/assets/stylesheets/bootstrap/_accordion.scss +118 -0
  31. data/assets/stylesheets/bootstrap/_alert.scss +15 -9
  32. data/assets/stylesheets/bootstrap/_badge.scss +2 -27
  33. data/assets/stylesheets/bootstrap/_breadcrumb.scss +5 -18
  34. data/assets/stylesheets/bootstrap/_button-group.scss +21 -45
  35. data/assets/stylesheets/bootstrap/_buttons.scss +28 -54
  36. data/assets/stylesheets/bootstrap/_card.scss +52 -125
  37. data/assets/stylesheets/bootstrap/_carousel.scss +70 -38
  38. data/assets/stylesheets/bootstrap/_close.scss +30 -31
  39. data/assets/stylesheets/bootstrap/_containers.scss +41 -0
  40. data/assets/stylesheets/bootstrap/_dropdown.scss +88 -39
  41. data/assets/stylesheets/bootstrap/_forms.scss +9 -330
  42. data/assets/stylesheets/bootstrap/_functions.scss +237 -27
  43. data/assets/stylesheets/bootstrap/_grid.scss +14 -33
  44. data/assets/stylesheets/bootstrap/_helpers.scss +9 -0
  45. data/assets/stylesheets/bootstrap/_images.scss +3 -3
  46. data/assets/stylesheets/bootstrap/_list-group.scss +61 -36
  47. data/assets/stylesheets/bootstrap/_mixins.scss +12 -16
  48. data/assets/stylesheets/bootstrap/_modal.scss +64 -84
  49. data/assets/stylesheets/bootstrap/_nav.scss +29 -10
  50. data/assets/stylesheets/bootstrap/_navbar.scss +93 -52
  51. data/assets/stylesheets/bootstrap/_offcanvas.scss +83 -0
  52. data/assets/stylesheets/bootstrap/_pagination.scss +13 -22
  53. data/assets/stylesheets/bootstrap/_placeholders.scss +51 -0
  54. data/assets/stylesheets/bootstrap/_popover.scss +29 -42
  55. data/assets/stylesheets/bootstrap/_progress.scss +10 -5
  56. data/assets/stylesheets/bootstrap/_reboot.scss +350 -208
  57. data/assets/stylesheets/bootstrap/_root.scss +42 -8
  58. data/assets/stylesheets/bootstrap/_spinners.scss +21 -7
  59. data/assets/stylesheets/bootstrap/_tables.scss +80 -114
  60. data/assets/stylesheets/bootstrap/_toasts.scss +21 -14
  61. data/assets/stylesheets/bootstrap/_tooltip.scss +21 -21
  62. data/assets/stylesheets/bootstrap/_transitions.scss +8 -1
  63. data/assets/stylesheets/bootstrap/_type.scss +40 -61
  64. data/assets/stylesheets/bootstrap/_utilities.scss +630 -17
  65. data/assets/stylesheets/bootstrap/_variables.scss +993 -487
  66. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
  67. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +63 -0
  68. data/assets/stylesheets/bootstrap/forms/_form-check.scss +152 -0
  69. data/assets/stylesheets/bootstrap/forms/_form-control.scss +219 -0
  70. data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
  71. data/assets/stylesheets/bootstrap/forms/_form-select.scss +70 -0
  72. data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
  73. data/assets/stylesheets/bootstrap/forms/_input-group.scss +121 -0
  74. data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
  75. data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
  76. data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
  77. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +12 -0
  78. data/assets/stylesheets/bootstrap/helpers/_position.scss +30 -0
  79. data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -0
  80. data/assets/stylesheets/bootstrap/helpers/_stacks.scss +15 -0
  81. data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
  82. data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
  83. data/assets/stylesheets/bootstrap/helpers/_visually-hidden.scss +8 -0
  84. data/assets/stylesheets/bootstrap/helpers/_vr.scss +8 -0
  85. data/assets/stylesheets/bootstrap/mixins/_alert.scss +3 -5
  86. data/assets/stylesheets/bootstrap/mixins/_backdrop.scss +14 -0
  87. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +37 -22
  88. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +7 -9
  89. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +14 -10
  90. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +77 -51
  91. data/assets/stylesheets/bootstrap/mixins/_caret.scss +10 -8
  92. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
  93. data/assets/stylesheets/bootstrap/mixins/_color-scheme.scss +7 -0
  94. data/assets/stylesheets/bootstrap/mixins/_container.scss +9 -0
  95. data/assets/stylesheets/bootstrap/mixins/_forms.scss +67 -115
  96. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +13 -11
  97. data/assets/stylesheets/bootstrap/mixins/_grid.scss +131 -32
  98. data/assets/stylesheets/bootstrap/mixins/_image.scss +0 -20
  99. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +5 -2
  100. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +17 -8
  101. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
  102. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +21 -0
  103. data/assets/stylesheets/bootstrap/mixins/_transition.scss +18 -8
  104. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +89 -0
  105. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +29 -0
  106. data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
  107. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +274 -132
  108. data/bootstrap.gemspec +4 -6
  109. data/lib/bootstrap/version.rb +2 -2
  110. data/tasks/updater/js.rb +25 -6
  111. data/tasks/updater/network.rb +8 -2
  112. data/test/dummy_rails/app/assets/config/manifest.js +3 -0
  113. data/test/dummy_rails/app/assets/javascripts/application.js +4 -3
  114. data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
  115. data/test/dummy_rails/app/views/layouts/application.html.erb +3 -1
  116. data/test/dummy_rails/app/views/pages/root.html +89 -0
  117. data/test/dummy_rails/config/application.rb +0 -3
  118. data/test/gemfiles/rails_6_0.gemfile +7 -0
  119. data/test/gemfiles/rails_6_1.gemfile +7 -0
  120. data/test/support/dummy_rails_integration.rb +3 -1
  121. data/test/test_helper.rb +18 -13
  122. metadata +61 -79
  123. data/assets/javascripts/bootstrap/util.js +0 -171
  124. data/assets/stylesheets/bootstrap/_code.scss +0 -48
  125. data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -507
  126. data/assets/stylesheets/bootstrap/_input-group.scss +0 -193
  127. data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
  128. data/assets/stylesheets/bootstrap/_media.scss +0 -8
  129. data/assets/stylesheets/bootstrap/_print.scss +0 -141
  130. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -21
  131. data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
  132. data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
  133. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -66
  134. data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
  135. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -10
  136. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -33
  137. data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
  138. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
  139. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -16
  140. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
  141. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
  142. data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
  143. data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
  144. data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
  145. data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
  146. data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
  147. data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
  148. data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
  149. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
  150. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
  151. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
  152. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
  153. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
  154. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
  155. data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
  156. data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
  157. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
  158. data/test/dummy_rails/app/views/pages/root.html.slim +0 -58
@@ -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 `<ul>`s.
4
+ // `<nav>`s, `<ul>`s or `<ol>`s.
5
5
 
6
6
  .nav {
7
7
  display: flex;
@@ -14,9 +14,16 @@
14
14
  .nav-link {
15
15
  display: block;
16
16
  padding: $nav-link-padding-y $nav-link-padding-x;
17
-
18
- @include hover-focus {
19
- text-decoration: none;
17
+ @include font-size($nav-link-font-size);
18
+ font-weight: $nav-link-font-weight;
19
+ color: $nav-link-color;
20
+ text-decoration: if($link-decoration == none, null, none);
21
+ @include transition($nav-link-transition);
22
+
23
+ &:hover,
24
+ &:focus {
25
+ color: $nav-link-hover-color;
26
+ text-decoration: if($link-hover-decoration == underline, none, null);
20
27
  }
21
28
 
22
29
  // Disabled state lightens text
@@ -34,16 +41,17 @@
34
41
  .nav-tabs {
35
42
  border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;
36
43
 
37
- .nav-item {
38
- margin-bottom: -$nav-tabs-border-width;
39
- }
40
-
41
44
  .nav-link {
45
+ margin-bottom: -$nav-tabs-border-width;
46
+ background: none;
42
47
  border: $nav-tabs-border-width solid transparent;
43
48
  @include border-top-radius($nav-tabs-border-radius);
44
49
 
45
- @include hover-focus {
50
+ &:hover,
51
+ &:focus {
46
52
  border-color: $nav-tabs-link-hover-border-color;
53
+ // Prevents active .nav-link tab overlapping focus outline of previous/next .nav-link
54
+ isolation: isolate;
47
55
  }
48
56
 
49
57
  &.disabled {
@@ -75,13 +83,15 @@
75
83
 
76
84
  .nav-pills {
77
85
  .nav-link {
86
+ background: none;
87
+ border: 0;
78
88
  @include border-radius($nav-pills-border-radius);
79
89
  }
80
90
 
81
91
  .nav-link.active,
82
92
  .show > .nav-link {
83
93
  color: $nav-pills-link-active-color;
84
- background-color: $nav-pills-link-active-bg;
94
+ @include gradient-bg($nav-pills-link-active-bg);
85
95
  }
86
96
  }
87
97
 
@@ -91,6 +101,7 @@
91
101
  //
92
102
 
93
103
  .nav-fill {
104
+ > .nav-link,
94
105
  .nav-item {
95
106
  flex: 1 1 auto;
96
107
  text-align: center;
@@ -98,6 +109,7 @@
98
109
  }
99
110
 
100
111
  .nav-justified {
112
+ > .nav-link,
101
113
  .nav-item {
102
114
  flex-basis: 0;
103
115
  flex-grow: 1;
@@ -105,6 +117,13 @@
105
117
  }
106
118
  }
107
119
 
120
+ .nav-fill,
121
+ .nav-justified {
122
+ .nav-item .nav-link {
123
+ width: 100%; // Make sure button will grow
124
+ }
125
+ }
126
+
108
127
 
109
128
  // Tabbable tabs
110
129
  //
@@ -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,17 +20,32 @@
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.
28
- > .container,
29
- > .container-fluid {
31
+ // The `flex-wrap` property is inherited to simplify the expanded navbars
32
+ %container-flex-properties {
30
33
  display: flex;
31
- flex-wrap: wrap;
34
+ flex-wrap: inherit;
32
35
  align-items: center;
33
36
  justify-content: space-between;
34
37
  }
38
+
39
+ > .container,
40
+ > .container-fluid {
41
+ @extend %container-flex-properties;
42
+ }
43
+
44
+ @each $breakpoint, $container-max-width in $container-max-widths {
45
+ > .container#{breakpoint-infix($breakpoint, $container-max-widths)} {
46
+ @extend %container-flex-properties;
47
+ }
48
+ }
35
49
  }
36
50
 
37
51
 
@@ -40,16 +54,16 @@
40
54
  // Used for brand, project, or site names.
41
55
 
42
56
  .navbar-brand {
43
- display: inline-block;
44
57
  padding-top: $navbar-brand-padding-y;
45
58
  padding-bottom: $navbar-brand-padding-y;
46
- margin-right: $navbar-padding-x;
59
+ margin-right: $navbar-brand-margin-end;
47
60
  @include font-size($navbar-brand-font-size);
48
- line-height: inherit;
61
+ text-decoration: if($link-decoration == none, null, none);
49
62
  white-space: nowrap;
50
63
 
51
- @include hover-focus {
52
- text-decoration: none;
64
+ &:hover,
65
+ &:focus {
66
+ text-decoration: if($link-hover-decoration == underline, none, null);
53
67
  }
54
68
  }
55
69
 
@@ -72,7 +86,6 @@
72
86
 
73
87
  .dropdown-menu {
74
88
  position: static;
75
- float: none;
76
89
  }
77
90
  }
78
91
 
@@ -82,7 +95,6 @@
82
95
  //
83
96
 
84
97
  .navbar-text {
85
- display: inline-block;
86
98
  padding-top: $nav-link-padding-y;
87
99
  padding-bottom: $nav-link-padding-y;
88
100
  }
@@ -112,10 +124,17 @@
112
124
  background-color: transparent; // remove default button style
113
125
  border: $border-width solid transparent; // remove default button style
114
126
  @include border-radius($navbar-toggler-border-radius);
127
+ @include transition($navbar-toggler-transition);
115
128
 
116
- @include hover-focus {
129
+ &:hover {
117
130
  text-decoration: none;
118
131
  }
132
+
133
+ &:focus {
134
+ text-decoration: none;
135
+ outline: 0;
136
+ box-shadow: 0 0 0 $navbar-toggler-focus-width;
137
+ }
119
138
  }
120
139
 
121
140
  // Keep as a separate element so folks can easily override it with another icon
@@ -125,11 +144,17 @@
125
144
  width: 1.5em;
126
145
  height: 1.5em;
127
146
  vertical-align: middle;
128
- content: "";
129
- background: no-repeat center center;
130
- background-size: 100% 100%;
147
+ background-repeat: no-repeat;
148
+ background-position: center;
149
+ background-size: 100%;
150
+ }
151
+
152
+ .navbar-nav-scroll {
153
+ max-height: var(--#{$variable-prefix}scroll-height, 75vh);
154
+ overflow-y: auto;
131
155
  }
132
156
 
157
+ // scss-docs-start navbar-expand-loop
133
158
  // Generate series of `.navbar-expand-*` responsive classes for configuring
134
159
  // where your navbar collapses.
135
160
  .navbar-expand {
@@ -137,17 +162,10 @@
137
162
  $next: breakpoint-next($breakpoint, $grid-breakpoints);
138
163
  $infix: breakpoint-infix($next, $grid-breakpoints);
139
164
 
165
+ // stylelint-disable-next-line scss/selector-no-union-class-name
140
166
  &#{$infix} {
141
- @include media-breakpoint-down($breakpoint) {
142
- > .container,
143
- > .container-fluid {
144
- padding-right: 0;
145
- padding-left: 0;
146
- }
147
- }
148
-
149
167
  @include media-breakpoint-up($next) {
150
- flex-flow: row nowrap;
168
+ flex-wrap: nowrap;
151
169
  justify-content: flex-start;
152
170
 
153
171
  .navbar-nav {
@@ -163,27 +181,53 @@
163
181
  }
164
182
  }
165
183
 
166
- // For nesting containers, have to redeclare for alignment purposes
167
- > .container,
168
- > .container-fluid {
169
- flex-wrap: nowrap;
184
+ .navbar-nav-scroll {
185
+ overflow: visible;
170
186
  }
171
187
 
172
188
  .navbar-collapse {
173
189
  display: flex !important; // stylelint-disable-line declaration-no-important
174
-
175
- // Changes flex-bases to auto because of an IE10 bug
176
190
  flex-basis: auto;
177
191
  }
178
192
 
179
193
  .navbar-toggler {
180
194
  display: none;
181
195
  }
196
+
197
+ .offcanvas-header {
198
+ display: none;
199
+ }
200
+
201
+ .offcanvas {
202
+ position: inherit;
203
+ bottom: 0;
204
+ z-index: 1000;
205
+ flex-grow: 1;
206
+ visibility: visible !important; // stylelint-disable-line declaration-no-important
207
+ background-color: transparent;
208
+ border-right: 0;
209
+ border-left: 0;
210
+ @include transition(none);
211
+ transform: none;
212
+ }
213
+ .offcanvas-top,
214
+ .offcanvas-bottom {
215
+ height: auto;
216
+ border-top: 0;
217
+ border-bottom: 0;
218
+ }
219
+
220
+ .offcanvas-body {
221
+ display: flex;
222
+ flex-grow: 0;
223
+ padding: 0;
224
+ overflow-y: visible;
225
+ }
182
226
  }
183
227
  }
184
228
  }
185
229
  }
186
-
230
+ // scss-docs-end navbar-expand-loop
187
231
 
188
232
  // Navbar themes
189
233
  //
@@ -194,7 +238,8 @@
194
238
  .navbar-brand {
195
239
  color: $navbar-light-brand-color;
196
240
 
197
- @include hover-focus {
241
+ &:hover,
242
+ &:focus {
198
243
  color: $navbar-light-brand-hover-color;
199
244
  }
200
245
  }
@@ -203,7 +248,8 @@
203
248
  .nav-link {
204
249
  color: $navbar-light-color;
205
250
 
206
- @include hover-focus {
251
+ &:hover,
252
+ &:focus {
207
253
  color: $navbar-light-hover-color;
208
254
  }
209
255
 
@@ -213,8 +259,6 @@
213
259
  }
214
260
 
215
261
  .show > .nav-link,
216
- .active > .nav-link,
217
- .nav-link.show,
218
262
  .nav-link.active {
219
263
  color: $navbar-light-active-color;
220
264
  }
@@ -226,17 +270,16 @@
226
270
  }
227
271
 
228
272
  .navbar-toggler-icon {
229
- background-image: $navbar-light-toggler-icon-bg;
273
+ background-image: escape-svg($navbar-light-toggler-icon-bg);
230
274
  }
231
275
 
232
276
  .navbar-text {
233
277
  color: $navbar-light-color;
234
- a {
235
- color: $navbar-light-active-color;
236
278
 
237
- @include hover-focus {
238
- color: $navbar-light-active-color;
239
- }
279
+ a,
280
+ a:hover,
281
+ a:focus {
282
+ color: $navbar-light-active-color;
240
283
  }
241
284
  }
242
285
  }
@@ -246,7 +289,8 @@
246
289
  .navbar-brand {
247
290
  color: $navbar-dark-brand-color;
248
291
 
249
- @include hover-focus {
292
+ &:hover,
293
+ &:focus {
250
294
  color: $navbar-dark-brand-hover-color;
251
295
  }
252
296
  }
@@ -255,7 +299,8 @@
255
299
  .nav-link {
256
300
  color: $navbar-dark-color;
257
301
 
258
- @include hover-focus {
302
+ &:hover,
303
+ &:focus {
259
304
  color: $navbar-dark-hover-color;
260
305
  }
261
306
 
@@ -265,8 +310,6 @@
265
310
  }
266
311
 
267
312
  .show > .nav-link,
268
- .active > .nav-link,
269
- .nav-link.show,
270
313
  .nav-link.active {
271
314
  color: $navbar-dark-active-color;
272
315
  }
@@ -278,17 +321,15 @@
278
321
  }
279
322
 
280
323
  .navbar-toggler-icon {
281
- background-image: $navbar-dark-toggler-icon-bg;
324
+ background-image: escape-svg($navbar-dark-toggler-icon-bg);
282
325
  }
283
326
 
284
327
  .navbar-text {
285
328
  color: $navbar-dark-color;
286
- a {
329
+ a,
330
+ a:hover,
331
+ a:focus {
287
332
  color: $navbar-dark-active-color;
288
-
289
- @include hover-focus {
290
- color: $navbar-dark-active-color;
291
- }
292
333
  }
293
334
  }
294
335
  }
@@ -0,0 +1,83 @@
1
+ .offcanvas {
2
+ position: fixed;
3
+ bottom: 0;
4
+ z-index: $zindex-offcanvas;
5
+ display: flex;
6
+ flex-direction: column;
7
+ max-width: 100%;
8
+ color: $offcanvas-color;
9
+ visibility: hidden;
10
+ background-color: $offcanvas-bg-color;
11
+ background-clip: padding-box;
12
+ outline: 0;
13
+ @include box-shadow($offcanvas-box-shadow);
14
+ @include transition(transform $offcanvas-transition-duration ease-in-out);
15
+ }
16
+
17
+ .offcanvas-backdrop {
18
+ @include overlay-backdrop($zindex-offcanvas-backdrop, $offcanvas-backdrop-bg, $offcanvas-backdrop-opacity);
19
+ }
20
+
21
+ .offcanvas-header {
22
+ display: flex;
23
+ align-items: center;
24
+ justify-content: space-between;
25
+ padding: $offcanvas-padding-y $offcanvas-padding-x;
26
+
27
+ .btn-close {
28
+ padding: ($offcanvas-padding-y * .5) ($offcanvas-padding-x * .5);
29
+ margin-top: $offcanvas-padding-y * -.5;
30
+ margin-right: $offcanvas-padding-x * -.5;
31
+ margin-bottom: $offcanvas-padding-y * -.5;
32
+ }
33
+ }
34
+
35
+ .offcanvas-title {
36
+ margin-bottom: 0;
37
+ line-height: $offcanvas-title-line-height;
38
+ }
39
+
40
+ .offcanvas-body {
41
+ flex-grow: 1;
42
+ padding: $offcanvas-padding-y $offcanvas-padding-x;
43
+ overflow-y: auto;
44
+ }
45
+
46
+ .offcanvas-start {
47
+ top: 0;
48
+ left: 0;
49
+ width: $offcanvas-horizontal-width;
50
+ border-right: $offcanvas-border-width solid $offcanvas-border-color;
51
+ transform: translateX(-100%);
52
+ }
53
+
54
+ .offcanvas-end {
55
+ top: 0;
56
+ right: 0;
57
+ width: $offcanvas-horizontal-width;
58
+ border-left: $offcanvas-border-width solid $offcanvas-border-color;
59
+ transform: translateX(100%);
60
+ }
61
+
62
+ .offcanvas-top {
63
+ top: 0;
64
+ right: 0;
65
+ left: 0;
66
+ height: $offcanvas-vertical-height;
67
+ max-height: 100%;
68
+ border-bottom: $offcanvas-border-width solid $offcanvas-border-color;
69
+ transform: translateY(-100%);
70
+ }
71
+
72
+ .offcanvas-bottom {
73
+ right: 0;
74
+ left: 0;
75
+ height: $offcanvas-vertical-height;
76
+ max-height: 100%;
77
+ border-top: $offcanvas-border-width solid $offcanvas-border-color;
78
+ transform: translateY(100%);
79
+ }
80
+
81
+ .offcanvas.show {
82
+ transform: none;
83
+ }