bootstrap 5.1.3 → 5.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/assets/javascripts/bootstrap/alert.js +11 -146
  4. data/assets/javascripts/bootstrap/base-component.js +37 -120
  5. data/assets/javascripts/bootstrap/button.js +10 -74
  6. data/assets/javascripts/bootstrap/carousel.js +213 -485
  7. data/assets/javascripts/bootstrap/collapse.js +65 -249
  8. data/assets/javascripts/bootstrap/dom/data.js +3 -5
  9. data/assets/javascripts/bootstrap/dom/event-handler.js +94 -132
  10. data/assets/javascripts/bootstrap/dom/manipulator.js +23 -27
  11. data/assets/javascripts/bootstrap/dom/selector-engine.js +16 -58
  12. data/assets/javascripts/bootstrap/dropdown.js +101 -317
  13. data/assets/javascripts/bootstrap/modal.js +107 -752
  14. data/assets/javascripts/bootstrap/offcanvas.js +90 -659
  15. data/assets/javascripts/bootstrap/popover.js +36 -118
  16. data/assets/javascripts/bootstrap/scrollspy.js +179 -262
  17. data/assets/javascripts/bootstrap/tab.js +215 -214
  18. data/assets/javascripts/bootstrap/toast.js +28 -214
  19. data/assets/javascripts/bootstrap/tooltip.js +268 -611
  20. data/assets/javascripts/bootstrap/util/backdrop.js +165 -0
  21. data/assets/javascripts/bootstrap/util/component-functions.js +46 -0
  22. data/assets/javascripts/bootstrap/util/config.js +79 -0
  23. data/assets/javascripts/bootstrap/util/focustrap.js +129 -0
  24. data/assets/javascripts/bootstrap/util/index.js +350 -0
  25. data/assets/javascripts/bootstrap/util/sanitizer.js +122 -0
  26. data/assets/javascripts/bootstrap/util/scrollbar.js +138 -0
  27. data/assets/javascripts/bootstrap/util/swipe.js +155 -0
  28. data/assets/javascripts/bootstrap/util/template-factory.js +177 -0
  29. data/assets/javascripts/bootstrap-global-this-define.js +1 -1
  30. data/assets/javascripts/bootstrap-sprockets.js +10 -1
  31. data/assets/javascripts/bootstrap.js +2065 -1860
  32. data/assets/javascripts/bootstrap.min.js +3 -3
  33. data/assets/stylesheets/_bootstrap-grid.scss +3 -6
  34. data/assets/stylesheets/_bootstrap-reboot.scss +3 -7
  35. data/assets/stylesheets/_bootstrap.scss +4 -6
  36. data/assets/stylesheets/bootstrap/_accordion.scss +52 -24
  37. data/assets/stylesheets/bootstrap/_alert.scss +18 -4
  38. data/assets/stylesheets/bootstrap/_badge.scss +14 -5
  39. data/assets/stylesheets/bootstrap/_breadcrumb.scss +22 -10
  40. data/assets/stylesheets/bootstrap/_button-group.scss +3 -0
  41. data/assets/stylesheets/bootstrap/_buttons.scss +97 -22
  42. data/assets/stylesheets/bootstrap/_card.scss +55 -37
  43. data/assets/stylesheets/bootstrap/_close.scss +1 -1
  44. data/assets/stylesheets/bootstrap/_containers.scss +1 -1
  45. data/assets/stylesheets/bootstrap/_dropdown.scss +83 -75
  46. data/assets/stylesheets/bootstrap/_functions.scss +7 -7
  47. data/assets/stylesheets/bootstrap/_grid.scss +3 -3
  48. data/assets/stylesheets/bootstrap/_helpers.scss +1 -0
  49. data/assets/stylesheets/bootstrap/_list-group.scss +44 -27
  50. data/assets/stylesheets/bootstrap/_maps.scss +54 -0
  51. data/assets/stylesheets/bootstrap/_modal.scss +71 -43
  52. data/assets/stylesheets/bootstrap/_nav.scss +53 -20
  53. data/assets/stylesheets/bootstrap/_navbar.scss +91 -150
  54. data/assets/stylesheets/bootstrap/_offcanvas.scss +119 -59
  55. data/assets/stylesheets/bootstrap/_pagination.scss +66 -21
  56. data/assets/stylesheets/bootstrap/_placeholders.scss +1 -1
  57. data/assets/stylesheets/bootstrap/_popover.scss +90 -52
  58. data/assets/stylesheets/bootstrap/_progress.scss +20 -9
  59. data/assets/stylesheets/bootstrap/_reboot.scss +25 -40
  60. data/assets/stylesheets/bootstrap/_root.scss +40 -21
  61. data/assets/stylesheets/bootstrap/_spinners.scss +38 -22
  62. data/assets/stylesheets/bootstrap/_tables.scss +32 -23
  63. data/assets/stylesheets/bootstrap/_toasts.scss +35 -16
  64. data/assets/stylesheets/bootstrap/_tooltip.scss +61 -56
  65. data/assets/stylesheets/bootstrap/_type.scss +2 -0
  66. data/assets/stylesheets/bootstrap/_utilities.scss +43 -26
  67. data/assets/stylesheets/bootstrap/_variables.scss +113 -121
  68. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +3 -6
  69. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +14 -3
  70. data/assets/stylesheets/bootstrap/forms/_form-check.scss +28 -5
  71. data/assets/stylesheets/bootstrap/forms/_form-control.scss +12 -37
  72. data/assets/stylesheets/bootstrap/forms/_form-select.scss +0 -1
  73. data/assets/stylesheets/bootstrap/forms/_input-group.scss +15 -7
  74. data/assets/stylesheets/bootstrap/helpers/_color-bg.scss +10 -0
  75. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +2 -2
  76. data/assets/stylesheets/bootstrap/helpers/_position.scss +7 -1
  77. data/assets/stylesheets/bootstrap/helpers/_ratio.scss +2 -2
  78. data/assets/stylesheets/bootstrap/helpers/_vr.scss +1 -1
  79. data/assets/stylesheets/bootstrap/mixins/_alert.scss +7 -3
  80. data/assets/stylesheets/bootstrap/mixins/_banner.scss +9 -0
  81. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +8 -8
  82. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +32 -95
  83. data/assets/stylesheets/bootstrap/mixins/_container.scss +4 -2
  84. data/assets/stylesheets/bootstrap/mixins/_forms.scss +8 -0
  85. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +1 -1
  86. data/assets/stylesheets/bootstrap/mixins/_grid.scss +12 -12
  87. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +4 -25
  88. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
  89. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +12 -9
  90. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +12 -4
  91. data/bootstrap.gemspec +1 -1
  92. data/lib/bootstrap/version.rb +2 -2
  93. data/tasks/updater/js.rb +9 -4
  94. metadata +16 -4
@@ -1,29 +1,38 @@
1
- // Contents
2
- //
3
- // Navbar
4
- // Navbar brand
5
- // Navbar nav
6
- // Navbar text
7
- // Responsive navbar
8
- // Navbar position
9
- // Navbar themes
10
-
11
-
12
1
  // Navbar
13
2
  //
14
3
  // Provide a static navbar from which we expand to create full-width, fixed, and
15
4
  // other navbar variations.
16
5
 
17
6
  .navbar {
7
+ // scss-docs-start navbar-css-vars
8
+ --#{$prefix}navbar-padding-x: #{if($navbar-padding-x == null, 0, $navbar-padding-x)};
9
+ --#{$prefix}navbar-padding-y: #{$navbar-padding-y};
10
+ --#{$prefix}navbar-color: #{$navbar-light-color};
11
+ --#{$prefix}navbar-hover-color: #{$navbar-light-hover-color};
12
+ --#{$prefix}navbar-disabled-color: #{$navbar-light-disabled-color};
13
+ --#{$prefix}navbar-active-color: #{$navbar-light-active-color};
14
+ --#{$prefix}navbar-brand-padding-y: #{$navbar-brand-padding-y};
15
+ --#{$prefix}navbar-brand-margin-end: #{$navbar-brand-margin-end};
16
+ --#{$prefix}navbar-brand-font-size: #{$navbar-brand-font-size};
17
+ --#{$prefix}navbar-brand-color: #{$navbar-light-brand-color};
18
+ --#{$prefix}navbar-brand-hover-color: #{$navbar-light-brand-hover-color};
19
+ --#{$prefix}navbar-nav-link-padding-x: #{$navbar-nav-link-padding-x};
20
+ --#{$prefix}navbar-toggler-padding-y: #{$navbar-toggler-padding-y};
21
+ --#{$prefix}navbar-toggler-padding-x: #{$navbar-toggler-padding-x};
22
+ --#{$prefix}navbar-toggler-font-size: #{$navbar-toggler-font-size};
23
+ --#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-light-toggler-icon-bg)};
24
+ --#{$prefix}navbar-toggler-border-color: #{$navbar-light-toggler-border-color};
25
+ --#{$prefix}navbar-toggler-border-radius: #{$navbar-toggler-border-radius};
26
+ --#{$prefix}navbar-toggler-focus-width: #{$navbar-toggler-focus-width};
27
+ --#{$prefix}navbar-toggler-transition: #{$navbar-toggler-transition};
28
+ // scss-docs-end navbar-css-vars
29
+
18
30
  position: relative;
19
31
  display: flex;
20
32
  flex-wrap: wrap; // allow us to do the line break for collapsing content
21
33
  align-items: center;
22
34
  justify-content: space-between; // space out brand from logo
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
35
+ padding: var(--#{$prefix}navbar-padding-y) var(--#{$prefix}navbar-padding-x);
27
36
  @include gradient-bg();
28
37
 
29
38
  // Because flex properties aren't inherited, we need to redeclare these first
@@ -54,15 +63,17 @@
54
63
  // Used for brand, project, or site names.
55
64
 
56
65
  .navbar-brand {
57
- padding-top: $navbar-brand-padding-y;
58
- padding-bottom: $navbar-brand-padding-y;
59
- margin-right: $navbar-brand-margin-end;
60
- @include font-size($navbar-brand-font-size);
66
+ padding-top: var(--#{$prefix}navbar-brand-padding-y);
67
+ padding-bottom: var(--#{$prefix}navbar-brand-padding-y);
68
+ margin-right: var(--#{$prefix}navbar-brand-margin-end);
69
+ @include font-size(var(--#{$prefix}navbar-brand-font-size));
70
+ color: var(--#{$prefix}navbar-brand-color);
61
71
  text-decoration: if($link-decoration == none, null, none);
62
72
  white-space: nowrap;
63
73
 
64
74
  &:hover,
65
75
  &:focus {
76
+ color: var(--#{$prefix}navbar-brand-hover-color);
66
77
  text-decoration: if($link-hover-decoration == underline, none, null);
67
78
  }
68
79
  }
@@ -73,15 +84,25 @@
73
84
  // Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).
74
85
 
75
86
  .navbar-nav {
87
+ // scss-docs-start navbar-nav-css-vars
88
+ --#{$prefix}nav-link-padding-x: 0;
89
+ --#{$prefix}nav-link-padding-y: #{$nav-link-padding-y};
90
+ @include rfs($nav-link-font-size, --#{$prefix}nav-link-font-size);
91
+ --#{$prefix}nav-link-font-weight: #{$nav-link-font-weight};
92
+ --#{$prefix}nav-link-color: var(--#{$prefix}navbar-color);
93
+ --#{$prefix}nav-link-hover-color: var(--#{$prefix}navbar-hover-color);
94
+ --#{$prefix}nav-link-disabled-color: var(--#{$prefix}navbar-disabled-color);
95
+ // scss-docs-end navbar-nav-css-vars
96
+
76
97
  display: flex;
77
98
  flex-direction: column; // cannot use `inherit` to get the `.navbar`s value
78
99
  padding-left: 0;
79
100
  margin-bottom: 0;
80
101
  list-style: none;
81
102
 
82
- .nav-link {
83
- padding-right: 0;
84
- padding-left: 0;
103
+ .show > .nav-link,
104
+ .nav-link.active {
105
+ color: var(--#{$prefix}navbar-active-color);
85
106
  }
86
107
 
87
108
  .dropdown-menu {
@@ -97,6 +118,13 @@
97
118
  .navbar-text {
98
119
  padding-top: $nav-link-padding-y;
99
120
  padding-bottom: $nav-link-padding-y;
121
+ color: var(--#{$prefix}navbar-color);
122
+
123
+ a,
124
+ a:hover,
125
+ a:focus {
126
+ color: var(--#{$prefix}navbar-active-color);
127
+ }
100
128
  }
101
129
 
102
130
 
@@ -118,13 +146,14 @@
118
146
 
119
147
  // Button for toggling the navbar when in its collapsed state
120
148
  .navbar-toggler {
121
- padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;
122
- @include font-size($navbar-toggler-font-size);
149
+ padding: var(--#{$prefix}navbar-toggler-padding-y) var(--#{$prefix}navbar-toggler-padding-x);
150
+ @include font-size(var(--#{$prefix}navbar-toggler-font-size));
123
151
  line-height: 1;
152
+ color: var(--#{$prefix}navbar-color);
124
153
  background-color: transparent; // remove default button style
125
- border: $border-width solid transparent; // remove default button style
126
- @include border-radius($navbar-toggler-border-radius);
127
- @include transition($navbar-toggler-transition);
154
+ border: var(--#{$prefix}border-width) solid var(--#{$prefix}navbar-toggler-border-color); // remove default button style
155
+ @include border-radius(var(--#{$prefix}navbar-toggler-border-radius));
156
+ @include transition(var(--#{$prefix}navbar-toggler-transition));
128
157
 
129
158
  &:hover {
130
159
  text-decoration: none;
@@ -133,7 +162,7 @@
133
162
  &:focus {
134
163
  text-decoration: none;
135
164
  outline: 0;
136
- box-shadow: 0 0 0 $navbar-toggler-focus-width;
165
+ box-shadow: 0 0 0 var(--#{$prefix}navbar-toggler-focus-width);
137
166
  }
138
167
  }
139
168
 
@@ -144,13 +173,14 @@
144
173
  width: 1.5em;
145
174
  height: 1.5em;
146
175
  vertical-align: middle;
176
+ background-image: var(--#{$prefix}navbar-toggler-icon-bg);
147
177
  background-repeat: no-repeat;
148
178
  background-position: center;
149
179
  background-size: 100%;
150
180
  }
151
181
 
152
182
  .navbar-nav-scroll {
153
- max-height: var(--#{$variable-prefix}scroll-height, 75vh);
183
+ max-height: var(--#{$prefix}scroll-height, 75vh);
154
184
  overflow-y: auto;
155
185
  }
156
186
 
@@ -176,8 +206,8 @@
176
206
  }
177
207
 
178
208
  .nav-link {
179
- padding-right: $navbar-nav-link-padding-x;
180
- padding-left: $navbar-nav-link-padding-x;
209
+ padding-right: var(--#{$prefix}navbar-nav-link-padding-x);
210
+ padding-left: var(--#{$prefix}navbar-nav-link-padding-x);
181
211
  }
182
212
  }
183
213
 
@@ -194,34 +224,31 @@
194
224
  display: none;
195
225
  }
196
226
 
197
- .offcanvas-header {
198
- display: none;
199
- }
200
-
201
227
  .offcanvas {
202
- position: inherit;
203
- bottom: 0;
204
- z-index: 1000;
228
+ // stylelint-disable declaration-no-important
229
+ position: static;
230
+ z-index: auto;
205
231
  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;
232
+ width: auto !important;
233
+ height: auto !important;
234
+ visibility: visible !important;
235
+ background-color: transparent !important;
236
+ border: 0 !important;
237
+ transform: none !important;
238
+ @include box-shadow(none);
210
239
  @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
- }
240
+ // stylelint-enable declaration-no-important
241
+
242
+ .offcanvas-header {
243
+ display: none;
244
+ }
219
245
 
220
- .offcanvas-body {
221
- display: flex;
222
- flex-grow: 0;
223
- padding: 0;
224
- overflow-y: visible;
246
+ .offcanvas-body {
247
+ display: flex;
248
+ flex-grow: 0;
249
+ padding: 0;
250
+ overflow-y: visible;
251
+ }
225
252
  }
226
253
  }
227
254
  }
@@ -233,103 +260,17 @@
233
260
  //
234
261
  // Styles for switching between navbars with light or dark background.
235
262
 
236
- // Dark links against a light background
237
263
  .navbar-light {
238
- .navbar-brand {
239
- color: $navbar-light-brand-color;
240
-
241
- &:hover,
242
- &:focus {
243
- color: $navbar-light-brand-hover-color;
244
- }
245
- }
246
-
247
- .navbar-nav {
248
- .nav-link {
249
- color: $navbar-light-color;
250
-
251
- &:hover,
252
- &:focus {
253
- color: $navbar-light-hover-color;
254
- }
255
-
256
- &.disabled {
257
- color: $navbar-light-disabled-color;
258
- }
259
- }
260
-
261
- .show > .nav-link,
262
- .nav-link.active {
263
- color: $navbar-light-active-color;
264
- }
265
- }
266
-
267
- .navbar-toggler {
268
- color: $navbar-light-color;
269
- border-color: $navbar-light-toggler-border-color;
270
- }
271
-
272
- .navbar-toggler-icon {
273
- background-image: escape-svg($navbar-light-toggler-icon-bg);
274
- }
275
-
276
- .navbar-text {
277
- color: $navbar-light-color;
278
-
279
- a,
280
- a:hover,
281
- a:focus {
282
- color: $navbar-light-active-color;
283
- }
284
- }
264
+ @include deprecate("`.navbar-light`", "v5.2.0", "v6.0.0", true);
285
265
  }
286
266
 
287
- // White links against a dark background
288
267
  .navbar-dark {
289
- .navbar-brand {
290
- color: $navbar-dark-brand-color;
291
-
292
- &:hover,
293
- &:focus {
294
- color: $navbar-dark-brand-hover-color;
295
- }
296
- }
297
-
298
- .navbar-nav {
299
- .nav-link {
300
- color: $navbar-dark-color;
301
-
302
- &:hover,
303
- &:focus {
304
- color: $navbar-dark-hover-color;
305
- }
306
-
307
- &.disabled {
308
- color: $navbar-dark-disabled-color;
309
- }
310
- }
311
-
312
- .show > .nav-link,
313
- .nav-link.active {
314
- color: $navbar-dark-active-color;
315
- }
316
- }
317
-
318
- .navbar-toggler {
319
- color: $navbar-dark-color;
320
- border-color: $navbar-dark-toggler-border-color;
321
- }
322
-
323
- .navbar-toggler-icon {
324
- background-image: escape-svg($navbar-dark-toggler-icon-bg);
325
- }
326
-
327
- .navbar-text {
328
- color: $navbar-dark-color;
329
- a,
330
- a:hover,
331
- a:focus {
332
- color: $navbar-dark-active-color;
333
- }
334
- }
268
+ --#{$prefix}navbar-color: #{$navbar-dark-color};
269
+ --#{$prefix}navbar-hover-color: #{$navbar-dark-hover-color};
270
+ --#{$prefix}navbar-disabled-color: #{$navbar-dark-disabled-color};
271
+ --#{$prefix}navbar-active-color: #{$navbar-dark-active-color};
272
+ --#{$prefix}navbar-brand-color: #{$navbar-dark-brand-color};
273
+ --#{$prefix}navbar-brand-hover-color: #{$navbar-dark-brand-hover-color};
274
+ --#{$prefix}navbar-toggler-border-color: #{$navbar-dark-toggler-border-color};
275
+ --#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-dark-toggler-icon-bg)};
335
276
  }
@@ -1,17 +1,116 @@
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);
1
+ // stylelint-disable function-disallowed-list
2
+
3
+ %offcanvas-css-vars {
4
+ // scss-docs-start offcanvas-css-vars
5
+ --#{$prefix}offcanvas-width: #{$offcanvas-horizontal-width};
6
+ --#{$prefix}offcanvas-height: #{$offcanvas-vertical-height};
7
+ --#{$prefix}offcanvas-padding-x: #{$offcanvas-padding-x};
8
+ --#{$prefix}offcanvas-padding-y: #{$offcanvas-padding-y};
9
+ --#{$prefix}offcanvas-color: #{$offcanvas-color};
10
+ --#{$prefix}offcanvas-bg: #{$offcanvas-bg-color};
11
+ --#{$prefix}offcanvas-border-width: #{$offcanvas-border-width};
12
+ --#{$prefix}offcanvas-border-color: #{$offcanvas-border-color};
13
+ --#{$prefix}offcanvas-box-shadow: #{$offcanvas-box-shadow};
14
+ // scss-docs-end offcanvas-css-vars
15
+ }
16
+
17
+ @each $breakpoint in map-keys($grid-breakpoints) {
18
+ $next: breakpoint-next($breakpoint, $grid-breakpoints);
19
+ $infix: breakpoint-infix($next, $grid-breakpoints);
20
+
21
+ .offcanvas#{$infix} {
22
+ @extend %offcanvas-css-vars;
23
+ }
24
+ }
25
+
26
+ @each $breakpoint in map-keys($grid-breakpoints) {
27
+ $next: breakpoint-next($breakpoint, $grid-breakpoints);
28
+ $infix: breakpoint-infix($next, $grid-breakpoints);
29
+
30
+ .offcanvas#{$infix} {
31
+ @include media-breakpoint-down($next) {
32
+ position: fixed;
33
+ bottom: 0;
34
+ z-index: $zindex-offcanvas;
35
+ display: flex;
36
+ flex-direction: column;
37
+ max-width: 100%;
38
+ color: var(--#{$prefix}offcanvas-color);
39
+ visibility: hidden;
40
+ background-color: var(--#{$prefix}offcanvas-bg);
41
+ background-clip: padding-box;
42
+ outline: 0;
43
+ @include box-shadow(var(--#{$prefix}offcanvas-box-shadow));
44
+ @include transition(transform $offcanvas-transition-duration ease-in-out);
45
+
46
+ &.offcanvas-start {
47
+ top: 0;
48
+ left: 0;
49
+ width: var(--#{$prefix}offcanvas-width);
50
+ border-right: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);
51
+ transform: translateX(-100%);
52
+ }
53
+
54
+ &.offcanvas-end {
55
+ top: 0;
56
+ right: 0;
57
+ width: var(--#{$prefix}offcanvas-width);
58
+ border-left: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);
59
+ transform: translateX(100%);
60
+ }
61
+
62
+ &.offcanvas-top {
63
+ top: 0;
64
+ right: 0;
65
+ left: 0;
66
+ height: var(--#{$prefix}offcanvas-height);
67
+ max-height: 100%;
68
+ border-bottom: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);
69
+ transform: translateY(-100%);
70
+ }
71
+
72
+ &.offcanvas-bottom {
73
+ right: 0;
74
+ left: 0;
75
+ height: var(--#{$prefix}offcanvas-height);
76
+ max-height: 100%;
77
+ border-top: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color);
78
+ transform: translateY(100%);
79
+ }
80
+
81
+ &.showing,
82
+ &.show:not(.hiding) {
83
+ transform: none;
84
+ }
85
+
86
+ &.showing,
87
+ &.hiding,
88
+ &.show {
89
+ visibility: visible;
90
+ }
91
+ }
92
+
93
+ @if not ($infix == "") {
94
+ @include media-breakpoint-up($next) {
95
+ --#{$prefix}offcanvas-height: auto;
96
+ --#{$prefix}offcanvas-border-width: 0;
97
+ background-color: transparent !important; // stylelint-disable-line declaration-no-important
98
+
99
+ .offcanvas-header {
100
+ display: none;
101
+ }
102
+
103
+ .offcanvas-body {
104
+ display: flex;
105
+ flex-grow: 0;
106
+ padding: 0;
107
+ overflow-y: visible;
108
+ // Reset `background-color` in case `.bg-*` classes are used in offcanvas
109
+ background-color: transparent !important; // stylelint-disable-line declaration-no-important
110
+ }
111
+ }
112
+ }
113
+ }
15
114
  }
16
115
 
17
116
  .offcanvas-backdrop {
@@ -22,13 +121,13 @@
22
121
  display: flex;
23
122
  align-items: center;
24
123
  justify-content: space-between;
25
- padding: $offcanvas-padding-y $offcanvas-padding-x;
124
+ padding: var(--#{$prefix}offcanvas-padding-y) var(--#{$prefix}offcanvas-padding-x);
26
125
 
27
126
  .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;
127
+ padding: calc(var(--#{$prefix}offcanvas-padding-y) * .5) calc(var(--#{$prefix}offcanvas-padding-x) * .5);
128
+ margin-top: calc(var(--#{$prefix}offcanvas-padding-y) * -.5);
129
+ margin-right: calc(var(--#{$prefix}offcanvas-padding-x) * -.5);
130
+ margin-bottom: calc(var(--#{$prefix}offcanvas-padding-y) * -.5);
32
131
  }
33
132
  }
34
133
 
@@ -39,45 +138,6 @@
39
138
 
40
139
  .offcanvas-body {
41
140
  flex-grow: 1;
42
- padding: $offcanvas-padding-y $offcanvas-padding-x;
141
+ padding: var(--#{$prefix}offcanvas-padding-y) var(--#{$prefix}offcanvas-padding-x);
43
142
  overflow-y: auto;
44
143
  }
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
- }
@@ -1,4 +1,27 @@
1
1
  .pagination {
2
+ // scss-docs-start pagination-css-vars
3
+ --#{$prefix}pagination-padding-x: #{$pagination-padding-x};
4
+ --#{$prefix}pagination-padding-y: #{$pagination-padding-y};
5
+ @include rfs($pagination-font-size, --#{$prefix}pagination-font-size);
6
+ --#{$prefix}pagination-color: #{$pagination-color};
7
+ --#{$prefix}pagination-bg: #{$pagination-bg};
8
+ --#{$prefix}pagination-border-width: #{$pagination-border-width};
9
+ --#{$prefix}pagination-border-color: #{$pagination-border-color};
10
+ --#{$prefix}pagination-border-radius: #{$pagination-border-radius};
11
+ --#{$prefix}pagination-hover-color: #{$pagination-hover-color};
12
+ --#{$prefix}pagination-hover-bg: #{$pagination-hover-bg};
13
+ --#{$prefix}pagination-hover-border-color: #{$pagination-hover-border-color};
14
+ --#{$prefix}pagination-focus-color: #{$pagination-focus-color};
15
+ --#{$prefix}pagination-focus-bg: #{$pagination-focus-bg};
16
+ --#{$prefix}pagination-focus-box-shadow: #{$pagination-focus-box-shadow};
17
+ --#{$prefix}pagination-active-color: #{$pagination-active-color};
18
+ --#{$prefix}pagination-active-bg: #{$pagination-active-bg};
19
+ --#{$prefix}pagination-active-border-color: #{$pagination-active-border-color};
20
+ --#{$prefix}pagination-disabled-color: #{$pagination-disabled-color};
21
+ --#{$prefix}pagination-disabled-bg: #{$pagination-disabled-bg};
22
+ --#{$prefix}pagination-disabled-border-color: #{$pagination-disabled-border-color};
23
+ // scss-docs-end pagination-css-vars
24
+
2
25
  display: flex;
3
26
  @include list-unstyled();
4
27
  }
@@ -6,26 +29,44 @@
6
29
  .page-link {
7
30
  position: relative;
8
31
  display: block;
9
- color: $pagination-color;
32
+ padding: var(--#{$prefix}pagination-padding-y) var(--#{$prefix}pagination-padding-x);
33
+ @include font-size(var(--#{$prefix}pagination-font-size));
34
+ color: var(--#{$prefix}pagination-color);
10
35
  text-decoration: if($link-decoration == none, null, none);
11
- background-color: $pagination-bg;
12
- border: $pagination-border-width solid $pagination-border-color;
36
+ background-color: var(--#{$prefix}pagination-bg);
37
+ border: var(--#{$prefix}pagination-border-width) solid var(--#{$prefix}pagination-border-color);
13
38
  @include transition($pagination-transition);
14
39
 
15
40
  &:hover {
16
41
  z-index: 2;
17
- color: $pagination-hover-color;
42
+ color: var(--#{$prefix}pagination-hover-color);
18
43
  text-decoration: if($link-hover-decoration == underline, none, null);
19
- background-color: $pagination-hover-bg;
20
- border-color: $pagination-hover-border-color;
44
+ background-color: var(--#{$prefix}pagination-hover-bg);
45
+ border-color: var(--#{$prefix}pagination-hover-border-color);
21
46
  }
22
47
 
23
48
  &:focus {
24
49
  z-index: 3;
25
- color: $pagination-focus-color;
26
- background-color: $pagination-focus-bg;
50
+ color: var(--#{$prefix}pagination-focus-color);
51
+ background-color: var(--#{$prefix}pagination-focus-bg);
27
52
  outline: $pagination-focus-outline;
28
- box-shadow: $pagination-focus-box-shadow;
53
+ box-shadow: var(--#{$prefix}pagination-focus-box-shadow);
54
+ }
55
+
56
+ &.active,
57
+ .active > & {
58
+ z-index: 3;
59
+ color: var(--#{$prefix}pagination-active-color);
60
+ @include gradient-bg(var(--#{$prefix}pagination-active-bg));
61
+ border-color: var(--#{$prefix}pagination-active-border-color);
62
+ }
63
+
64
+ &.disabled,
65
+ .disabled > & {
66
+ color: var(--#{$prefix}pagination-disabled-color);
67
+ pointer-events: none;
68
+ background-color: var(--#{$prefix}pagination-disabled-bg);
69
+ border-color: var(--#{$prefix}pagination-disabled-border-color);
29
70
  }
30
71
  }
31
72
 
@@ -34,18 +75,23 @@
34
75
  margin-left: $pagination-margin-start;
35
76
  }
36
77
 
37
- &.active .page-link {
38
- z-index: 3;
39
- color: $pagination-active-color;
40
- @include gradient-bg($pagination-active-bg);
41
- border-color: $pagination-active-border-color;
42
- }
78
+ @if $pagination-margin-start == (calc($pagination-border-width * -1)) {
79
+ &:first-child {
80
+ .page-link {
81
+ @include border-start-radius(var(--#{$prefix}pagination-border-radius));
82
+ }
83
+ }
43
84
 
44
- &.disabled .page-link {
45
- color: $pagination-disabled-color;
46
- pointer-events: none;
47
- background-color: $pagination-disabled-bg;
48
- border-color: $pagination-disabled-border-color;
85
+ &:last-child {
86
+ .page-link {
87
+ @include border-end-radius(var(--#{$prefix}pagination-border-radius));
88
+ }
89
+ }
90
+ } @else {
91
+ // Add border-radius to all pageLinks in case they have left margin
92
+ .page-link {
93
+ @include border-radius(var(--#{$prefix}pagination-border-radius));
94
+ }
49
95
  }
50
96
  }
51
97
 
@@ -53,7 +99,6 @@
53
99
  //
54
100
  // Sizing
55
101
  //
56
- @include pagination-size($pagination-padding-y, $pagination-padding-x, null, $pagination-border-radius);
57
102
 
58
103
  .pagination-lg {
59
104
  @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $pagination-border-radius-lg);
@@ -3,7 +3,7 @@
3
3
  min-height: 1em;
4
4
  vertical-align: middle;
5
5
  cursor: wait;
6
- background-color: currentColor;
6
+ background-color: currentcolor;
7
7
  opacity: $placeholder-opacity-max;
8
8
 
9
9
  &.btn::before {