bootstrap 4.0.0.beta3 → 4.6.2

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 (114) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +15 -1
  3. data/CHANGELOG.md +2 -2
  4. data/README.md +2 -2
  5. data/Rakefile +4 -2
  6. data/assets/javascripts/bootstrap/alert.js +79 -68
  7. data/assets/javascripts/bootstrap/button.js +140 -78
  8. data/assets/javascripts/bootstrap/carousel.js +294 -158
  9. data/assets/javascripts/bootstrap/collapse.js +157 -133
  10. data/assets/javascripts/bootstrap/dropdown.js +257 -167
  11. data/assets/javascripts/bootstrap/modal.js +285 -204
  12. data/assets/javascripts/bootstrap/popover.js +101 -60
  13. data/assets/javascripts/bootstrap/scrollspy.js +127 -106
  14. data/assets/javascripts/bootstrap/tab.js +113 -101
  15. data/assets/javascripts/bootstrap/toast.js +267 -0
  16. data/assets/javascripts/bootstrap/tooltip.js +406 -188
  17. data/assets/javascripts/bootstrap/util.js +106 -55
  18. data/assets/javascripts/bootstrap-sprockets.js +1 -0
  19. data/assets/javascripts/bootstrap.js +1946 -1482
  20. data/assets/javascripts/bootstrap.min.js +4 -4
  21. data/assets/stylesheets/_bootstrap-grid.scss +7 -12
  22. data/assets/stylesheets/_bootstrap-reboot.scss +4 -4
  23. data/assets/stylesheets/_bootstrap.scss +6 -4
  24. data/assets/stylesheets/bootstrap/_alert.scss +3 -2
  25. data/assets/stylesheets/bootstrap/_badge.scss +8 -1
  26. data/assets/stylesheets/bootstrap/_breadcrumb.scss +10 -6
  27. data/assets/stylesheets/bootstrap/_button-group.scss +17 -20
  28. data/assets/stylesheets/bootstrap/_buttons.scss +23 -28
  29. data/assets/stylesheets/bootstrap/_card.scss +77 -61
  30. data/assets/stylesheets/bootstrap/_carousel.scss +72 -63
  31. data/assets/stylesheets/bootstrap/_close.scss +15 -9
  32. data/assets/stylesheets/bootstrap/_code.scss +6 -14
  33. data/assets/stylesheets/bootstrap/_custom-forms.scss +287 -43
  34. data/assets/stylesheets/bootstrap/_dropdown.scss +70 -9
  35. data/assets/stylesheets/bootstrap/_forms.scss +56 -42
  36. data/assets/stylesheets/bootstrap/_functions.scss +117 -13
  37. data/assets/stylesheets/bootstrap/_grid.scss +32 -11
  38. data/assets/stylesheets/bootstrap/_images.scss +4 -4
  39. data/assets/stylesheets/bootstrap/_input-group.scss +80 -25
  40. data/assets/stylesheets/bootstrap/_jumbotron.scss +2 -1
  41. data/assets/stylesheets/bootstrap/_list-group.scss +63 -24
  42. data/assets/stylesheets/bootstrap/_mixins.scss +9 -4
  43. data/assets/stylesheets/bootstrap/_modal.scss +96 -24
  44. data/assets/stylesheets/bootstrap/_nav.scss +14 -7
  45. data/assets/stylesheets/bootstrap/_navbar.scss +66 -45
  46. data/assets/stylesheets/bootstrap/_pagination.scss +10 -8
  47. data/assets/stylesheets/bootstrap/_popover.scss +56 -69
  48. data/assets/stylesheets/bootstrap/_print.scss +41 -19
  49. data/assets/stylesheets/bootstrap/_progress.scss +20 -6
  50. data/assets/stylesheets/bootstrap/_reboot.scss +88 -109
  51. data/assets/stylesheets/bootstrap/_spinners.scss +65 -0
  52. data/assets/stylesheets/bootstrap/_tables.scss +19 -14
  53. data/assets/stylesheets/bootstrap/_toasts.scss +46 -0
  54. data/assets/stylesheets/bootstrap/_tooltip.scss +6 -6
  55. data/assets/stylesheets/bootstrap/_transitions.scss +10 -20
  56. data/assets/stylesheets/bootstrap/_type.scss +19 -19
  57. data/assets/stylesheets/bootstrap/_utilities.scss +4 -0
  58. data/assets/stylesheets/bootstrap/_variables.scss +492 -215
  59. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +5 -3
  60. data/assets/stylesheets/bootstrap/mixins/_badge.scss +8 -3
  61. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +51 -10
  62. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +16 -1
  63. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +11 -9
  64. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +35 -26
  65. data/assets/stylesheets/bootstrap/mixins/_caret.scss +13 -16
  66. data/assets/stylesheets/bootstrap/mixins/_deprecate.scss +10 -0
  67. data/assets/stylesheets/bootstrap/mixins/_float.scss +6 -3
  68. data/assets/stylesheets/bootstrap/mixins/_forms.scss +102 -40
  69. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +7 -7
  70. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +36 -25
  71. data/assets/stylesheets/bootstrap/mixins/_grid.scss +34 -17
  72. data/assets/stylesheets/bootstrap/mixins/_hover.scss +27 -51
  73. data/assets/stylesheets/bootstrap/mixins/_image.scss +4 -4
  74. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +10 -13
  75. data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
  76. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +3 -2
  77. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +1 -1
  78. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +3 -3
  79. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +5 -6
  80. data/assets/stylesheets/bootstrap/mixins/_size.scss +1 -0
  81. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +11 -2
  82. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +7 -4
  83. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +3 -1
  84. data/assets/stylesheets/bootstrap/mixins/_transition.scss +20 -3
  85. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +1 -0
  86. data/assets/stylesheets/bootstrap/utilities/_background.scss +2 -2
  87. data/assets/stylesheets/bootstrap/utilities/_borders.scss +23 -2
  88. data/assets/stylesheets/bootstrap/utilities/_display.scss +6 -36
  89. data/assets/stylesheets/bootstrap/utilities/_embed.scss +7 -20
  90. data/assets/stylesheets/bootstrap/utilities/_flex.scss +5 -0
  91. data/assets/stylesheets/bootstrap/utilities/_float.scss +5 -3
  92. data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
  93. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +5 -0
  94. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -4
  95. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +6 -0
  96. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +8 -0
  97. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +23 -1
  98. data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +19 -0
  99. data/assets/stylesheets/bootstrap/utilities/_text.scss +28 -8
  100. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +4 -2
  101. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +228 -0
  102. data/bootstrap.gemspec +7 -4
  103. data/lib/bootstrap/engine.rb +3 -0
  104. data/lib/bootstrap/version.rb +4 -2
  105. data/lib/bootstrap.rb +10 -7
  106. data/tasks/updater/js.rb +18 -6
  107. data/tasks/updater/network.rb +8 -2
  108. data/test/dummy_rails/app/assets/config/manifest.js +3 -0
  109. data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
  110. data/test/gemfiles/rails_6_0.gemfile +7 -0
  111. data/test/support/dummy_rails_integration.rb +3 -1
  112. data/test/test_helper.rb +21 -15
  113. metadata +29 -16
  114. data/assets/stylesheets/bootstrap/mixins/_navbar-align.scss +0 -10
@@ -3,36 +3,35 @@
3
3
  // Variables should follow the `$component-state-property-size` formula for
4
4
  // consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.
5
5
 
6
-
7
- //
8
6
  // Color system
9
- //
10
7
 
11
- // stylelint-disable
12
8
  $white: #fff !default;
13
9
  $gray-100: #f8f9fa !default;
14
10
  $gray-200: #e9ecef !default;
15
11
  $gray-300: #dee2e6 !default;
16
12
  $gray-400: #ced4da !default;
17
13
  $gray-500: #adb5bd !default;
18
- $gray-600: #868e96 !default;
14
+ $gray-600: #6c757d !default;
19
15
  $gray-700: #495057 !default;
20
16
  $gray-800: #343a40 !default;
21
17
  $gray-900: #212529 !default;
22
18
  $black: #000 !default;
23
19
 
24
20
  $grays: () !default;
25
- $grays: map-merge((
26
- "100": $gray-100,
27
- "200": $gray-200,
28
- "300": $gray-300,
29
- "400": $gray-400,
30
- "500": $gray-500,
31
- "600": $gray-600,
32
- "700": $gray-700,
33
- "800": $gray-800,
34
- "900": $gray-900
35
- ), $grays);
21
+ $grays: map-merge(
22
+ (
23
+ "100": $gray-100,
24
+ "200": $gray-200,
25
+ "300": $gray-300,
26
+ "400": $gray-400,
27
+ "500": $gray-500,
28
+ "600": $gray-600,
29
+ "700": $gray-700,
30
+ "800": $gray-800,
31
+ "900": $gray-900
32
+ ),
33
+ $grays
34
+ );
36
35
 
37
36
  $blue: #007bff !default;
38
37
  $indigo: #6610f2 !default;
@@ -46,21 +45,24 @@ $teal: #20c997 !default;
46
45
  $cyan: #17a2b8 !default;
47
46
 
48
47
  $colors: () !default;
49
- $colors: map-merge((
50
- "blue": $blue,
51
- "indigo": $indigo,
52
- "purple": $purple,
53
- "pink": $pink,
54
- "red": $red,
55
- "orange": $orange,
56
- "yellow": $yellow,
57
- "green": $green,
58
- "teal": $teal,
59
- "cyan": $cyan,
60
- "white": $white,
61
- "gray": $gray-600,
62
- "gray-dark": $gray-800
63
- ), $colors);
48
+ $colors: map-merge(
49
+ (
50
+ "blue": $blue,
51
+ "indigo": $indigo,
52
+ "purple": $purple,
53
+ "pink": $pink,
54
+ "red": $red,
55
+ "orange": $orange,
56
+ "yellow": $yellow,
57
+ "green": $green,
58
+ "teal": $teal,
59
+ "cyan": $cyan,
60
+ "white": $white,
61
+ "gray": $gray-600,
62
+ "gray-dark": $gray-800
63
+ ),
64
+ $colors
65
+ );
64
66
 
65
67
  $primary: $blue !default;
66
68
  $secondary: $gray-600 !default;
@@ -72,40 +74,57 @@ $light: $gray-100 !default;
72
74
  $dark: $gray-800 !default;
73
75
 
74
76
  $theme-colors: () !default;
75
- $theme-colors: map-merge((
76
- "primary": $primary,
77
- "secondary": $secondary,
78
- "success": $success,
79
- "info": $info,
80
- "warning": $warning,
81
- "danger": $danger,
82
- "light": $light,
83
- "dark": $dark
84
- ), $theme-colors);
85
- // stylelint-enable
77
+ $theme-colors: map-merge(
78
+ (
79
+ "primary": $primary,
80
+ "secondary": $secondary,
81
+ "success": $success,
82
+ "info": $info,
83
+ "warning": $warning,
84
+ "danger": $danger,
85
+ "light": $light,
86
+ "dark": $dark
87
+ ),
88
+ $theme-colors
89
+ );
86
90
 
87
91
  // Set a specific jump point for requesting color jumps
88
92
  $theme-color-interval: 8% !default;
89
93
 
90
94
  // The yiq lightness value that determines when the lightness of color changes from "dark" to "light". Acceptable values are between 0 and 255.
91
- $yiq-contrasted-threshold: 150 !default;
95
+ $yiq-contrasted-threshold: 150 !default;
92
96
 
93
97
  // Customize the light and dark text colors for use in our YIQ color contrast function.
94
- $yiq-text-dark: $gray-900 !default;
95
- $yiq-text-light: $white !default;
98
+ $yiq-text-dark: $gray-900 !default;
99
+ $yiq-text-light: $white !default;
100
+
101
+ // Characters which are escaped by the escape-svg function
102
+ $escaped-characters: (
103
+ ("<", "%3c"),
104
+ (">", "%3e"),
105
+ ("#", "%23"),
106
+ ("(", "%28"),
107
+ (")", "%29"),
108
+ ) !default;
109
+
96
110
 
97
111
  // Options
98
112
  //
99
113
  // Quickly modify global styling by enabling or disabling optional features.
100
114
 
101
- $enable-caret: true !default;
102
- $enable-rounded: true !default;
103
- $enable-shadows: false !default;
104
- $enable-gradients: false !default;
105
- $enable-transitions: true !default;
106
- $enable-hover-media-query: false !default;
107
- $enable-grid-classes: true !default;
108
- $enable-print-styles: true !default;
115
+ $enable-caret: true !default;
116
+ $enable-rounded: true !default;
117
+ $enable-shadows: false !default;
118
+ $enable-gradients: false !default;
119
+ $enable-transitions: true !default;
120
+ $enable-prefers-reduced-motion-media-query: true !default;
121
+ $enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS
122
+ $enable-grid-classes: true !default;
123
+ $enable-pointer-cursor-for-buttons: true !default;
124
+ $enable-print-styles: true !default;
125
+ $enable-responsive-font-sizes: false !default;
126
+ $enable-validation-icons: true !default;
127
+ $enable-deprecation-messages: true !default;
109
128
 
110
129
 
111
130
  // Spacing
@@ -115,22 +134,32 @@ $enable-print-styles: true !default;
115
134
  // You can add more entries to the $spacers map, should you need more variation.
116
135
 
117
136
  $spacer: 1rem !default;
118
- $spacers: (
119
- 0: 0,
120
- 1: ($spacer * .25),
121
- 2: ($spacer * .5),
122
- 3: $spacer,
123
- 4: ($spacer * 1.5),
124
- 5: ($spacer * 3)
125
- ) !default;
137
+ $spacers: () !default;
138
+ $spacers: map-merge(
139
+ (
140
+ 0: 0,
141
+ 1: ($spacer * .25),
142
+ 2: ($spacer * .5),
143
+ 3: $spacer,
144
+ 4: ($spacer * 1.5),
145
+ 5: ($spacer * 3)
146
+ ),
147
+ $spacers
148
+ );
126
149
 
127
150
  // This variable affects the `.h-*` and `.w-*` classes.
128
- $sizes: (
129
- 25: 25%,
130
- 50: 50%,
131
- 75: 75%,
132
- 100: 100%
133
- ) !default;
151
+ $sizes: () !default;
152
+ $sizes: map-merge(
153
+ (
154
+ 25: 25%,
155
+ 50: 50%,
156
+ 75: 75%,
157
+ 100: 100%,
158
+ auto: auto
159
+ ),
160
+ $sizes
161
+ );
162
+
134
163
 
135
164
  // Body
136
165
  //
@@ -139,14 +168,17 @@ $sizes: (
139
168
  $body-bg: $white !default;
140
169
  $body-color: $gray-900 !default;
141
170
 
171
+
142
172
  // Links
143
173
  //
144
174
  // Style anchor elements.
145
175
 
146
- $link-color: theme-color("primary") !default;
147
- $link-decoration: none !default;
148
- $link-hover-color: darken($link-color, 15%) !default;
149
- $link-hover-decoration: underline !default;
176
+ $link-color: theme-color("primary") !default;
177
+ $link-decoration: none !default;
178
+ $link-hover-color: darken($link-color, 15%) !default;
179
+ $link-hover-decoration: underline !default;
180
+ // Darken percentage for links with `.text-*` class (e.g. `.text-success`)
181
+ $emphasized-link-hover-darken-percentage: 15% !default;
150
182
 
151
183
  // Paragraphs
152
184
  //
@@ -169,7 +201,7 @@ $grid-breakpoints: (
169
201
  ) !default;
170
202
 
171
203
  @include _assert-ascending($grid-breakpoints, "$grid-breakpoints");
172
- @include _assert-starts-at-zero($grid-breakpoints);
204
+ @include _assert-starts-at-zero($grid-breakpoints, "$grid-breakpoints");
173
205
 
174
206
 
175
207
  // Grid containers
@@ -192,6 +224,8 @@ $container-max-widths: (
192
224
 
193
225
  $grid-columns: 12 !default;
194
226
  $grid-gutter-width: 30px !default;
227
+ $grid-row-columns: 6 !default;
228
+
195
229
 
196
230
  // Components
197
231
  //
@@ -201,39 +235,60 @@ $line-height-lg: 1.5 !default;
201
235
  $line-height-sm: 1.5 !default;
202
236
 
203
237
  $border-width: 1px !default;
204
- $border-color: $gray-200 !default;
238
+ $border-color: $gray-300 !default;
205
239
 
206
240
  $border-radius: .25rem !default;
207
241
  $border-radius-lg: .3rem !default;
208
242
  $border-radius-sm: .2rem !default;
209
243
 
244
+ $rounded-pill: 50rem !default;
245
+
246
+ $box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;
247
+ $box-shadow: 0 .5rem 1rem rgba($black, .15) !default;
248
+ $box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;
249
+
210
250
  $component-active-color: $white !default;
211
251
  $component-active-bg: theme-color("primary") !default;
212
252
 
213
253
  $caret-width: .3em !default;
254
+ $caret-vertical-align: $caret-width * .85 !default;
255
+ $caret-spacing: $caret-width * .85 !default;
214
256
 
215
257
  $transition-base: all .2s ease-in-out !default;
216
258
  $transition-fade: opacity .15s linear !default;
217
259
  $transition-collapse: height .35s ease !default;
218
-
219
-
220
- // Fonts
260
+ $transition-collapse-width: width .35s ease !default;
261
+
262
+ $embed-responsive-aspect-ratios: () !default;
263
+ $embed-responsive-aspect-ratios: join(
264
+ (
265
+ (21 9),
266
+ (16 9),
267
+ (4 3),
268
+ (1 1),
269
+ ),
270
+ $embed-responsive-aspect-ratios
271
+ );
272
+
273
+ // Typography
221
274
  //
222
275
  // Font, line-height, and color for body text, headings, and more.
223
276
 
224
277
  // stylelint-disable value-keyword-case
225
- $font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !default;
278
+ $font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
226
279
  $font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default;
227
280
  $font-family-base: $font-family-sans-serif !default;
228
281
  // stylelint-enable value-keyword-case
229
282
 
230
283
  $font-size-base: 1rem !default; // Assumes the browser default, typically `16px`
231
- $font-size-lg: ($font-size-base * 1.25) !default;
232
- $font-size-sm: ($font-size-base * .875) !default;
284
+ $font-size-lg: $font-size-base * 1.25 !default;
285
+ $font-size-sm: $font-size-base * .875 !default;
233
286
 
287
+ $font-weight-lighter: lighter !default;
234
288
  $font-weight-light: 300 !default;
235
289
  $font-weight-normal: 400 !default;
236
290
  $font-weight-bold: 700 !default;
291
+ $font-weight-bolder: bolder !default;
237
292
 
238
293
  $font-weight-base: $font-weight-normal !default;
239
294
  $line-height-base: 1.5 !default;
@@ -245,11 +300,11 @@ $h4-font-size: $font-size-base * 1.5 !default;
245
300
  $h5-font-size: $font-size-base * 1.25 !default;
246
301
  $h6-font-size: $font-size-base !default;
247
302
 
248
- $headings-margin-bottom: ($spacer / 2) !default;
249
- $headings-font-family: inherit !default;
303
+ $headings-margin-bottom: $spacer * .5 !default;
304
+ $headings-font-family: null !default;
250
305
  $headings-font-weight: 500 !default;
251
306
  $headings-line-height: 1.2 !default;
252
- $headings-color: inherit !default;
307
+ $headings-color: null !default;
253
308
 
254
309
  $display1-size: 6rem !default;
255
310
  $display2-size: 5.5rem !default;
@@ -262,15 +317,16 @@ $display3-weight: 300 !default;
262
317
  $display4-weight: 300 !default;
263
318
  $display-line-height: $headings-line-height !default;
264
319
 
265
- $lead-font-size: ($font-size-base * 1.25) !default;
320
+ $lead-font-size: $font-size-base * 1.25 !default;
266
321
  $lead-font-weight: 300 !default;
267
322
 
268
- $small-font-size: 80% !default;
323
+ $small-font-size: .875em !default;
269
324
 
270
325
  $text-muted: $gray-600 !default;
271
326
 
272
327
  $blockquote-small-color: $gray-600 !default;
273
- $blockquote-font-size: ($font-size-base * 1.25) !default;
328
+ $blockquote-small-font-size: $small-font-size !default;
329
+ $blockquote-font-size: $font-size-base * 1.25 !default;
274
330
 
275
331
  $hr-border-color: rgba($black, .1) !default;
276
332
  $hr-border-width: $border-width !default;
@@ -296,22 +352,33 @@ $hr-margin-y: $spacer !default;
296
352
  $table-cell-padding: .75rem !default;
297
353
  $table-cell-padding-sm: .3rem !default;
298
354
 
299
- $table-bg: transparent !default;
355
+ $table-color: $body-color !default;
356
+ $table-bg: null !default;
300
357
  $table-accent-bg: rgba($black, .05) !default;
358
+ $table-hover-color: $table-color !default;
301
359
  $table-hover-bg: rgba($black, .075) !default;
302
360
  $table-active-bg: $table-hover-bg !default;
303
361
 
304
362
  $table-border-width: $border-width !default;
305
- $table-border-color: $gray-300 !default;
363
+ $table-border-color: $border-color !default;
306
364
 
307
365
  $table-head-bg: $gray-200 !default;
308
366
  $table-head-color: $gray-700 !default;
367
+ $table-th-font-weight: null !default;
309
368
 
310
- $table-dark-bg: $gray-900 !default;
369
+ $table-dark-color: $white !default;
370
+ $table-dark-bg: $gray-800 !default;
311
371
  $table-dark-accent-bg: rgba($white, .05) !default;
372
+ $table-dark-hover-color: $table-dark-color !default;
312
373
  $table-dark-hover-bg: rgba($white, .075) !default;
313
- $table-dark-border-color: lighten($gray-900, 7.5%) !default;
314
- $table-dark-color: $body-bg !default;
374
+ $table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;
375
+
376
+ $table-striped-order: odd !default;
377
+
378
+ $table-caption-color: $text-muted !default;
379
+
380
+ $table-bg-level: -9 !default;
381
+ $table-border-level: -6 !default;
315
382
 
316
383
 
317
384
  // Buttons + Forms
@@ -320,18 +387,22 @@ $table-dark-color: $body-bg !default;
320
387
 
321
388
  $input-btn-padding-y: .375rem !default;
322
389
  $input-btn-padding-x: .75rem !default;
390
+ $input-btn-font-family: null !default;
391
+ $input-btn-font-size: $font-size-base !default;
323
392
  $input-btn-line-height: $line-height-base !default;
324
393
 
325
394
  $input-btn-focus-width: .2rem !default;
326
- $input-btn-focus-color: rgba(theme-color("primary"), .25) !default;
395
+ $input-btn-focus-color: rgba($component-active-bg, .25) !default;
327
396
  $input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;
328
397
 
329
398
  $input-btn-padding-y-sm: .25rem !default;
330
399
  $input-btn-padding-x-sm: .5rem !default;
400
+ $input-btn-font-size-sm: $font-size-sm !default;
331
401
  $input-btn-line-height-sm: $line-height-sm !default;
332
402
 
333
403
  $input-btn-padding-y-lg: .5rem !default;
334
404
  $input-btn-padding-x-lg: 1rem !default;
405
+ $input-btn-font-size-lg: $font-size-lg !default;
335
406
  $input-btn-line-height-lg: $line-height-lg !default;
336
407
 
337
408
  $input-btn-border-width: $border-width !default;
@@ -343,14 +414,19 @@ $input-btn-border-width: $border-width !default;
343
414
 
344
415
  $btn-padding-y: $input-btn-padding-y !default;
345
416
  $btn-padding-x: $input-btn-padding-x !default;
417
+ $btn-font-family: $input-btn-font-family !default;
418
+ $btn-font-size: $input-btn-font-size !default;
346
419
  $btn-line-height: $input-btn-line-height !default;
420
+ $btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping
347
421
 
348
422
  $btn-padding-y-sm: $input-btn-padding-y-sm !default;
349
423
  $btn-padding-x-sm: $input-btn-padding-x-sm !default;
424
+ $btn-font-size-sm: $input-btn-font-size-sm !default;
350
425
  $btn-line-height-sm: $input-btn-line-height-sm !default;
351
426
 
352
427
  $btn-padding-y-lg: $input-btn-padding-y-lg !default;
353
428
  $btn-padding-x-lg: $input-btn-padding-x-lg !default;
429
+ $btn-font-size-lg: $input-btn-font-size-lg !default;
354
430
  $btn-line-height-lg: $input-btn-line-height-lg !default;
355
431
 
356
432
  $btn-border-width: $input-btn-border-width !default;
@@ -376,16 +452,23 @@ $btn-transition: color .15s ease-in-out, background-color .15s ease
376
452
 
377
453
  // Forms
378
454
 
455
+ $label-margin-bottom: .5rem !default;
456
+
379
457
  $input-padding-y: $input-btn-padding-y !default;
380
458
  $input-padding-x: $input-btn-padding-x !default;
459
+ $input-font-family: $input-btn-font-family !default;
460
+ $input-font-size: $input-btn-font-size !default;
461
+ $input-font-weight: $font-weight-base !default;
381
462
  $input-line-height: $input-btn-line-height !default;
382
463
 
383
464
  $input-padding-y-sm: $input-btn-padding-y-sm !default;
384
465
  $input-padding-x-sm: $input-btn-padding-x-sm !default;
466
+ $input-font-size-sm: $input-btn-font-size-sm !default;
385
467
  $input-line-height-sm: $input-btn-line-height-sm !default;
386
468
 
387
469
  $input-padding-y-lg: $input-btn-padding-y-lg !default;
388
470
  $input-padding-x-lg: $input-btn-padding-x-lg !default;
471
+ $input-font-size-lg: $input-btn-font-size-lg !default;
389
472
  $input-line-height-lg: $input-btn-line-height-lg !default;
390
473
 
391
474
  $input-bg: $white !default;
@@ -401,23 +484,23 @@ $input-border-radius-lg: $border-radius-lg !default;
401
484
  $input-border-radius-sm: $border-radius-sm !default;
402
485
 
403
486
  $input-focus-bg: $input-bg !default;
404
- $input-focus-border-color: lighten(theme-color("primary"), 25%) !default;
487
+ $input-focus-border-color: lighten($component-active-bg, 25%) !default;
405
488
  $input-focus-color: $input-color !default;
406
489
  $input-focus-width: $input-btn-focus-width !default;
407
490
  $input-focus-box-shadow: $input-btn-focus-box-shadow !default;
408
491
 
409
492
  $input-placeholder-color: $gray-600 !default;
493
+ $input-plaintext-color: $body-color !default;
410
494
 
411
- $input-height-border: $input-btn-border-width * 2 !default;
412
-
413
- $input-height-inner: ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;
414
- $input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default;
495
+ $input-height-border: $input-border-width * 2 !default;
415
496
 
416
- $input-height-inner-sm: ($font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;
417
- $input-height-sm: calc(#{$input-height-inner-sm} + #{$input-height-border}) !default;
497
+ $input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;
498
+ $input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;
499
+ $input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y * .5) !default;
418
500
 
419
- $input-height-inner-lg: ($font-size-lg * $input-btn-line-height-lg) + ($input-btn-padding-y-lg * 2) !default;
420
- $input-height-lg: calc(#{$input-height-inner-lg} + #{$input-height-border}) !default;
501
+ $input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;
502
+ $input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;
503
+ $input-height-lg: add($input-line-height-lg * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;
421
504
 
422
505
  $input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
423
506
 
@@ -430,79 +513,134 @@ $form-check-input-margin-x: .25rem !default;
430
513
  $form-check-inline-margin-x: .75rem !default;
431
514
  $form-check-inline-input-margin-x: .3125rem !default;
432
515
 
516
+ $form-grid-gutter-width: 10px !default;
433
517
  $form-group-margin-bottom: 1rem !default;
434
518
 
435
519
  $input-group-addon-color: $input-color !default;
436
520
  $input-group-addon-bg: $gray-200 !default;
437
521
  $input-group-addon-border-color: $input-border-color !default;
438
522
 
439
- $custom-control-gutter: 1.5rem !default;
523
+ $custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
524
+
525
+ $custom-control-gutter: .5rem !default;
440
526
  $custom-control-spacer-x: 1rem !default;
527
+ $custom-control-cursor: null !default;
441
528
 
442
529
  $custom-control-indicator-size: 1rem !default;
443
- $custom-control-indicator-bg: $gray-300 !default;
530
+ $custom-control-indicator-bg: $input-bg !default;
531
+
444
532
  $custom-control-indicator-bg-size: 50% 50% !default;
445
- $custom-control-indicator-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;
533
+ $custom-control-indicator-box-shadow: $input-box-shadow !default;
534
+ $custom-control-indicator-border-color: $gray-500 !default;
535
+ $custom-control-indicator-border-width: $input-border-width !default;
536
+
537
+ $custom-control-label-color: null !default;
446
538
 
447
- $custom-control-indicator-disabled-bg: $gray-200 !default;
448
- $custom-control-label-disabled-color: $gray-600 !default;
539
+ $custom-control-indicator-disabled-bg: $input-disabled-bg !default;
540
+ $custom-control-label-disabled-color: $gray-600 !default;
449
541
 
450
- $custom-control-indicator-checked-color: $white !default;
451
- $custom-control-indicator-checked-bg: theme-color("primary") !default;
452
- $custom-control-indicator-checked-box-shadow: none !default;
542
+ $custom-control-indicator-checked-color: $component-active-color !default;
543
+ $custom-control-indicator-checked-bg: $component-active-bg !default;
544
+ $custom-control-indicator-checked-disabled-bg: rgba(theme-color("primary"), .5) !default;
545
+ $custom-control-indicator-checked-box-shadow: null !default;
546
+ $custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;
453
547
 
454
- $custom-control-indicator-focus-box-shadow: 0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;
548
+ $custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;
549
+ $custom-control-indicator-focus-border-color: $input-focus-border-color !default;
455
550
 
456
- $custom-control-indicator-active-color: $white !default;
457
- $custom-control-indicator-active-bg: lighten(theme-color("primary"), 35%) !default;
458
- $custom-control-indicator-active-box-shadow: none !default;
551
+ $custom-control-indicator-active-color: $component-active-color !default;
552
+ $custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;
553
+ $custom-control-indicator-active-box-shadow: null !default;
554
+ $custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;
459
555
 
460
556
  $custom-checkbox-indicator-border-radius: $border-radius !default;
461
- $custom-checkbox-indicator-icon-checked: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E"), "#", "%23") !default;
557
+ $custom-checkbox-indicator-icon-checked: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/></svg>") !default;
462
558
 
463
- $custom-checkbox-indicator-indeterminate-bg: theme-color("primary") !default;
464
- $custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;
465
- $custom-checkbox-indicator-icon-indeterminate: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3E%3C/svg%3E"), "#", "%23") !default;
466
- $custom-checkbox-indicator-indeterminate-box-shadow: none !default;
559
+ $custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;
560
+ $custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;
561
+ $custom-checkbox-indicator-icon-indeterminate: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'><path stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/></svg>") !default;
562
+ $custom-checkbox-indicator-indeterminate-box-shadow: null !default;
563
+ $custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;
467
564
 
468
565
  $custom-radio-indicator-border-radius: 50% !default;
469
- $custom-radio-indicator-icon-checked: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3E%3C/svg%3E"), "#", "%23") !default;
566
+ $custom-radio-indicator-icon-checked: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'><circle r='3' fill='#{$custom-control-indicator-checked-color}'/></svg>") !default;
470
567
 
471
- $custom-select-padding-y: .375rem !default;
472
- $custom-select-padding-x: .75rem !default;
568
+ $custom-switch-width: $custom-control-indicator-size * 1.75 !default;
569
+ $custom-switch-indicator-border-radius: $custom-control-indicator-size * .5 !default;
570
+ $custom-switch-indicator-size: subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;
571
+
572
+ $custom-select-padding-y: $input-padding-y !default;
573
+ $custom-select-padding-x: $input-padding-x !default;
574
+ $custom-select-font-family: $input-font-family !default;
575
+ $custom-select-font-size: $input-font-size !default;
473
576
  $custom-select-height: $input-height !default;
474
577
  $custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator
475
- $custom-select-line-height: $input-btn-line-height !default;
578
+ $custom-select-font-weight: $input-font-weight !default;
579
+ $custom-select-line-height: $input-line-height !default;
476
580
  $custom-select-color: $input-color !default;
477
581
  $custom-select-disabled-color: $gray-600 !default;
478
- $custom-select-bg: $white !default;
582
+ $custom-select-bg: $input-bg !default;
479
583
  $custom-select-disabled-bg: $gray-200 !default;
480
584
  $custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions
481
585
  $custom-select-indicator-color: $gray-800 !default;
482
- $custom-select-indicator: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E"), "#", "%23") !default;
483
- $custom-select-border-width: $input-btn-border-width !default;
586
+ $custom-select-indicator: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'><path fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/></svg>") !default;
587
+ $custom-select-background: escape-svg($custom-select-indicator) right $custom-select-padding-x center / $custom-select-bg-size no-repeat !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)
588
+
589
+ $custom-select-feedback-icon-padding-right: add(1em * .75, (2 * $custom-select-padding-y * .75) + $custom-select-padding-x + $custom-select-indicator-padding) !default;
590
+ $custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;
591
+ $custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;
592
+
593
+ $custom-select-border-width: $input-border-width !default;
484
594
  $custom-select-border-color: $input-border-color !default;
485
595
  $custom-select-border-radius: $border-radius !default;
596
+ $custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;
486
597
 
487
598
  $custom-select-focus-border-color: $input-focus-border-color !default;
488
- $custom-select-focus-box-shadow: inset 0 1px 2px rgba($black, .075), $input-btn-focus-box-shadow !default;
599
+ $custom-select-focus-width: $input-focus-width !default;
600
+ $custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;
489
601
 
490
- $custom-select-font-size-sm: 75% !default;
602
+ $custom-select-padding-y-sm: $input-padding-y-sm !default;
603
+ $custom-select-padding-x-sm: $input-padding-x-sm !default;
604
+ $custom-select-font-size-sm: $input-font-size-sm !default;
491
605
  $custom-select-height-sm: $input-height-sm !default;
492
606
 
493
- $custom-select-font-size-lg: 125% !default;
607
+ $custom-select-padding-y-lg: $input-padding-y-lg !default;
608
+ $custom-select-padding-x-lg: $input-padding-x-lg !default;
609
+ $custom-select-font-size-lg: $input-font-size-lg !default;
494
610
  $custom-select-height-lg: $input-height-lg !default;
495
611
 
612
+ $custom-range-track-width: 100% !default;
613
+ $custom-range-track-height: .5rem !default;
614
+ $custom-range-track-cursor: pointer !default;
615
+ $custom-range-track-bg: $gray-300 !default;
616
+ $custom-range-track-border-radius: 1rem !default;
617
+ $custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;
618
+
619
+ $custom-range-thumb-width: 1rem !default;
620
+ $custom-range-thumb-height: $custom-range-thumb-width !default;
621
+ $custom-range-thumb-bg: $component-active-bg !default;
622
+ $custom-range-thumb-border: 0 !default;
623
+ $custom-range-thumb-border-radius: 1rem !default;
624
+ $custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;
625
+ $custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;
626
+ $custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge
627
+ $custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;
628
+ $custom-range-thumb-disabled-bg: $gray-500 !default;
629
+
496
630
  $custom-file-height: $input-height !default;
631
+ $custom-file-height-inner: $input-height-inner !default;
497
632
  $custom-file-focus-border-color: $input-focus-border-color !default;
498
- $custom-file-focus-box-shadow: $input-btn-focus-box-shadow !default;
499
-
500
- $custom-file-padding-y: $input-btn-padding-y !default;
501
- $custom-file-padding-x: $input-btn-padding-x !default;
502
- $custom-file-line-height: $input-btn-line-height !default;
633
+ $custom-file-focus-box-shadow: $input-focus-box-shadow !default;
634
+ $custom-file-disabled-bg: $input-disabled-bg !default;
635
+
636
+ $custom-file-padding-y: $input-padding-y !default;
637
+ $custom-file-padding-x: $input-padding-x !default;
638
+ $custom-file-line-height: $input-line-height !default;
639
+ $custom-file-font-family: $input-font-family !default;
640
+ $custom-file-font-weight: $input-font-weight !default;
503
641
  $custom-file-color: $input-color !default;
504
642
  $custom-file-bg: $input-bg !default;
505
- $custom-file-border-width: $input-btn-border-width !default;
643
+ $custom-file-border-width: $input-border-width !default;
506
644
  $custom-file-border-color: $input-border-color !default;
507
645
  $custom-file-border-radius: $input-border-radius !default;
508
646
  $custom-file-box-shadow: $input-box-shadow !default;
@@ -514,40 +652,31 @@ $custom-file-text: (
514
652
 
515
653
 
516
654
  // Form validation
655
+
517
656
  $form-feedback-margin-top: $form-text-margin-top !default;
518
657
  $form-feedback-font-size: $small-font-size !default;
519
658
  $form-feedback-valid-color: theme-color("success") !default;
520
659
  $form-feedback-invalid-color: theme-color("danger") !default;
521
660
 
522
-
523
- // Dropdowns
524
- //
525
- // Dropdown menu container and contents.
526
-
527
- $dropdown-min-width: 10rem !default;
528
- $dropdown-padding-y: .5rem !default;
529
- $dropdown-spacer: .125rem !default;
530
- $dropdown-bg: $white !default;
531
- $dropdown-border-color: rgba($black, .15) !default;
532
- $dropdown-border-radius: $border-radius !default;
533
- $dropdown-border-width: $border-width !default;
534
- $dropdown-divider-bg: $gray-200 !default;
535
- $dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;
536
-
537
- $dropdown-link-color: $gray-900 !default;
538
- $dropdown-link-hover-color: darken($gray-900, 5%) !default;
539
- $dropdown-link-hover-bg: $gray-100 !default;
540
-
541
- $dropdown-link-active-color: $component-active-color !default;
542
- $dropdown-link-active-bg: $component-active-bg !default;
543
-
544
- $dropdown-link-disabled-color: $gray-600 !default;
545
-
546
- $dropdown-item-padding-y: .25rem !default;
547
- $dropdown-item-padding-x: 1.5rem !default;
548
-
549
- $dropdown-header-color: $gray-600 !default;
550
-
661
+ $form-feedback-icon-valid-color: $form-feedback-valid-color !default;
662
+ $form-feedback-icon-valid: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/></svg>") !default;
663
+ $form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;
664
+ $form-feedback-icon-invalid: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}' viewBox='0 0 12 12'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>") !default;
665
+
666
+ $form-validation-states: () !default;
667
+ $form-validation-states: map-merge(
668
+ (
669
+ "valid": (
670
+ "color": $form-feedback-valid-color,
671
+ "icon": $form-feedback-icon-valid
672
+ ),
673
+ "invalid": (
674
+ "color": $form-feedback-invalid-color,
675
+ "icon": $form-feedback-icon-invalid
676
+ ),
677
+ ),
678
+ $form-validation-states
679
+ );
551
680
 
552
681
  // Z-index master list
553
682
  //
@@ -562,6 +691,7 @@ $zindex-modal: 1050 !default;
562
691
  $zindex-popover: 1060 !default;
563
692
  $zindex-tooltip: 1070 !default;
564
693
 
694
+
565
695
  // Navs
566
696
 
567
697
  $nav-link-padding-y: .5rem !default;
@@ -580,36 +710,85 @@ $nav-pills-border-radius: $border-radius !default;
580
710
  $nav-pills-link-active-color: $component-active-color !default;
581
711
  $nav-pills-link-active-bg: $component-active-bg !default;
582
712
 
713
+ $nav-divider-color: $gray-200 !default;
714
+ $nav-divider-margin-y: $spacer * .5 !default;
715
+
716
+
583
717
  // Navbar
584
718
 
585
- $navbar-padding-y: ($spacer / 2) !default;
719
+ $navbar-padding-y: $spacer * .5 !default;
586
720
  $navbar-padding-x: $spacer !default;
587
721
 
722
+ $navbar-nav-link-padding-x: .5rem !default;
723
+
588
724
  $navbar-brand-font-size: $font-size-lg !default;
589
725
  // Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link
590
- $nav-link-height: ($font-size-base * $line-height-base + $nav-link-padding-y * 2) !default;
726
+ $nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;
591
727
  $navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;
592
- $navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;
728
+ $navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) * .5 !default;
593
729
 
594
730
  $navbar-toggler-padding-y: .25rem !default;
595
731
  $navbar-toggler-padding-x: .75rem !default;
596
732
  $navbar-toggler-font-size: $font-size-lg !default;
597
733
  $navbar-toggler-border-radius: $btn-border-radius !default;
598
734
 
735
+ $navbar-nav-scroll-max-height: 75vh !default;
736
+
599
737
  $navbar-dark-color: rgba($white, .5) !default;
600
738
  $navbar-dark-hover-color: rgba($white, .75) !default;
601
739
  $navbar-dark-active-color: $white !default;
602
740
  $navbar-dark-disabled-color: rgba($white, .25) !default;
603
- $navbar-dark-toggler-icon-bg: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"), "#", "%23") !default;
741
+ $navbar-dark-toggler-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-dark-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>") !default;
604
742
  $navbar-dark-toggler-border-color: rgba($white, .1) !default;
605
743
 
606
744
  $navbar-light-color: rgba($black, .5) !default;
607
745
  $navbar-light-hover-color: rgba($black, .7) !default;
608
746
  $navbar-light-active-color: rgba($black, .9) !default;
609
747
  $navbar-light-disabled-color: rgba($black, .3) !default;
610
- $navbar-light-toggler-icon-bg: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"), "#", "%23") !default;
748
+ $navbar-light-toggler-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'><path stroke='#{$navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>") !default;
611
749
  $navbar-light-toggler-border-color: rgba($black, .1) !default;
612
750
 
751
+ $navbar-light-brand-color: $navbar-light-active-color !default;
752
+ $navbar-light-brand-hover-color: $navbar-light-active-color !default;
753
+ $navbar-dark-brand-color: $navbar-dark-active-color !default;
754
+ $navbar-dark-brand-hover-color: $navbar-dark-active-color !default;
755
+
756
+
757
+ // Dropdowns
758
+ //
759
+ // Dropdown menu container and contents.
760
+
761
+ $dropdown-min-width: 10rem !default;
762
+ $dropdown-padding-x: 0 !default;
763
+ $dropdown-padding-y: .5rem !default;
764
+ $dropdown-spacer: .125rem !default;
765
+ $dropdown-font-size: $font-size-base !default;
766
+ $dropdown-color: $body-color !default;
767
+ $dropdown-bg: $white !default;
768
+ $dropdown-border-color: rgba($black, .15) !default;
769
+ $dropdown-border-radius: $border-radius !default;
770
+ $dropdown-border-width: $border-width !default;
771
+ $dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;
772
+ $dropdown-divider-bg: $gray-200 !default;
773
+ $dropdown-divider-margin-y: $nav-divider-margin-y !default;
774
+ $dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;
775
+
776
+ $dropdown-link-color: $gray-900 !default;
777
+ $dropdown-link-hover-color: darken($gray-900, 5%) !default;
778
+ $dropdown-link-hover-bg: $gray-200 !default;
779
+
780
+ $dropdown-link-active-color: $component-active-color !default;
781
+ $dropdown-link-active-bg: $component-active-bg !default;
782
+
783
+ $dropdown-link-disabled-color: $gray-500 !default;
784
+
785
+ $dropdown-item-padding-y: .25rem !default;
786
+ $dropdown-item-padding-x: 1.5rem !default;
787
+
788
+ $dropdown-header-color: $gray-600 !default;
789
+ $dropdown-header-padding: $dropdown-padding-y $dropdown-item-padding-x !default;
790
+
791
+
613
792
  // Pagination
614
793
 
615
794
  $pagination-padding-y: .5rem !default;
@@ -625,22 +804,29 @@ $pagination-bg: $white !default;
625
804
  $pagination-border-width: $border-width !default;
626
805
  $pagination-border-color: $gray-300 !default;
627
806
 
807
+ $pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;
808
+ $pagination-focus-outline: 0 !default;
809
+
628
810
  $pagination-hover-color: $link-hover-color !default;
629
811
  $pagination-hover-bg: $gray-200 !default;
630
812
  $pagination-hover-border-color: $gray-300 !default;
631
813
 
632
- $pagination-active-color: $white !default;
633
- $pagination-active-bg: theme-color("primary") !default;
634
- $pagination-active-border-color: theme-color("primary") !default;
814
+ $pagination-active-color: $component-active-color !default;
815
+ $pagination-active-bg: $component-active-bg !default;
816
+ $pagination-active-border-color: $pagination-active-bg !default;
635
817
 
636
818
  $pagination-disabled-color: $gray-600 !default;
637
819
  $pagination-disabled-bg: $white !default;
638
820
  $pagination-disabled-border-color: $gray-300 !default;
639
821
 
822
+ $pagination-border-radius-sm: $border-radius-sm !default;
823
+ $pagination-border-radius-lg: $border-radius-lg !default;
824
+
640
825
 
641
826
  // Jumbotron
642
827
 
643
828
  $jumbotron-padding: 2rem !default;
829
+ $jumbotron-color: null !default;
644
830
  $jumbotron-bg: $gray-200 !default;
645
831
 
646
832
 
@@ -651,13 +837,16 @@ $card-spacer-x: 1.25rem !default;
651
837
  $card-border-width: $border-width !default;
652
838
  $card-border-radius: $border-radius !default;
653
839
  $card-border-color: rgba($black, .125) !default;
654
- $card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;
840
+ $card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;
655
841
  $card-cap-bg: rgba($black, .03) !default;
842
+ $card-cap-color: null !default;
843
+ $card-height: null !default;
844
+ $card-color: null !default;
656
845
  $card-bg: $white !default;
657
846
 
658
847
  $card-img-overlay-padding: 1.25rem !default;
659
848
 
660
- $card-group-margin: ($grid-gutter-width / 2) !default;
849
+ $card-group-margin: $grid-gutter-width * .5 !default;
661
850
  $card-deck-margin: $card-group-margin !default;
662
851
 
663
852
  $card-columns-count: 3 !default;
@@ -667,25 +856,38 @@ $card-columns-margin: $card-spacer-y !default;
667
856
 
668
857
  // Tooltips
669
858
 
670
- $tooltip-max-width: 200px !default;
671
- $tooltip-color: $white !default;
672
- $tooltip-bg: $black !default;
673
- $tooltip-opacity: .9 !default;
674
- $tooltip-padding-y: .25rem !default;
675
- $tooltip-padding-x: .5rem !default;
676
- $tooltip-margin: 0 !default;
677
-
678
- $tooltip-arrow-width: .8rem !default;
679
- $tooltip-arrow-height: .4rem !default;
680
- $tooltip-arrow-color: $tooltip-bg !default;
859
+ $tooltip-font-size: $font-size-sm !default;
860
+ $tooltip-max-width: 200px !default;
861
+ $tooltip-color: $white !default;
862
+ $tooltip-bg: $black !default;
863
+ $tooltip-border-radius: $border-radius !default;
864
+ $tooltip-opacity: .9 !default;
865
+ $tooltip-padding-y: .25rem !default;
866
+ $tooltip-padding-x: .5rem !default;
867
+ $tooltip-margin: 0 !default;
868
+
869
+ $tooltip-arrow-width: .8rem !default;
870
+ $tooltip-arrow-height: .4rem !default;
871
+ $tooltip-arrow-color: $tooltip-bg !default;
872
+
873
+ // Form tooltips must come after regular tooltips
874
+ $form-feedback-tooltip-padding-y: $tooltip-padding-y !default;
875
+ $form-feedback-tooltip-padding-x: $tooltip-padding-x !default;
876
+ $form-feedback-tooltip-font-size: $tooltip-font-size !default;
877
+ $form-feedback-tooltip-line-height: $line-height-base !default;
878
+ $form-feedback-tooltip-opacity: $tooltip-opacity !default;
879
+ $form-feedback-tooltip-border-radius: $tooltip-border-radius !default;
681
880
 
682
881
 
683
882
  // Popovers
684
883
 
884
+ $popover-font-size: $font-size-sm !default;
685
885
  $popover-bg: $white !default;
686
886
  $popover-max-width: 276px !default;
687
887
  $popover-border-width: $border-width !default;
688
888
  $popover-border-color: rgba($black, .2) !default;
889
+ $popover-border-radius: $border-radius-lg !default;
890
+ $popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;
689
891
  $popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;
690
892
 
691
893
  $popover-header-bg: darken($popover-bg, 3%) !default;
@@ -704,6 +906,24 @@ $popover-arrow-color: $popover-bg !default;
704
906
  $popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;
705
907
 
706
908
 
909
+ // Toasts
910
+
911
+ $toast-max-width: 350px !default;
912
+ $toast-padding-x: .75rem !default;
913
+ $toast-padding-y: .25rem !default;
914
+ $toast-font-size: .875rem !default;
915
+ $toast-color: null !default;
916
+ $toast-background-color: rgba($white, .85) !default;
917
+ $toast-border-width: 1px !default;
918
+ $toast-border-color: rgba(0, 0, 0, .1) !default;
919
+ $toast-border-radius: .25rem !default;
920
+ $toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;
921
+
922
+ $toast-header-color: $gray-600 !default;
923
+ $toast-header-background-color: rgba($white, .85) !default;
924
+ $toast-header-border-color: rgba(0, 0, 0, .05) !default;
925
+
926
+
707
927
  // Badges
708
928
 
709
929
  $badge-font-size: 75% !default;
@@ -712,6 +932,9 @@ $badge-padding-y: .25em !default;
712
932
  $badge-padding-x: .4em !default;
713
933
  $badge-border-radius: $border-radius !default;
714
934
 
935
+ $badge-transition: $btn-transition !default;
936
+ $badge-focus-width: $input-btn-focus-width !default;
937
+
715
938
  $badge-pill-padding-x: .6em !default;
716
939
  // Use a higher than normal value to ensure completely rounded edges when
717
940
  // customizing padding or font-size on labels.
@@ -721,32 +944,44 @@ $badge-pill-border-radius: 10rem !default;
721
944
  // Modals
722
945
 
723
946
  // Padding applied to the modal body
724
- $modal-inner-padding: 1rem !default;
947
+ $modal-inner-padding: 1rem !default;
725
948
 
726
- $modal-dialog-margin: .5rem !default;
727
- $modal-dialog-margin-y-sm-up: 1.75rem !default;
949
+ // Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding
950
+ $modal-footer-margin-between: .5rem !default;
728
951
 
729
- $modal-title-line-height: $line-height-base !default;
952
+ $modal-dialog-margin: .5rem !default;
953
+ $modal-dialog-margin-y-sm-up: 1.75rem !default;
730
954
 
731
- $modal-content-bg: $white !default;
732
- $modal-content-border-color: rgba($black, .2) !default;
733
- $modal-content-border-width: $border-width !default;
734
- $modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;
735
- $modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;
736
-
737
- $modal-backdrop-bg: $black !default;
738
- $modal-backdrop-opacity: .5 !default;
739
- $modal-header-border-color: $gray-200 !default;
740
- $modal-footer-border-color: $modal-header-border-color !default;
741
- $modal-header-border-width: $modal-content-border-width !default;
742
- $modal-footer-border-width: $modal-header-border-width !default;
743
- $modal-header-padding: 1rem !default;
955
+ $modal-title-line-height: $line-height-base !default;
744
956
 
957
+ $modal-content-color: null !default;
958
+ $modal-content-bg: $white !default;
959
+ $modal-content-border-color: rgba($black, .2) !default;
960
+ $modal-content-border-width: $border-width !default;
961
+ $modal-content-border-radius: $border-radius-lg !default;
962
+ $modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;
963
+ $modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;
964
+ $modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;
965
+
966
+ $modal-backdrop-bg: $black !default;
967
+ $modal-backdrop-opacity: .5 !default;
968
+ $modal-header-border-color: $border-color !default;
969
+ $modal-footer-border-color: $modal-header-border-color !default;
970
+ $modal-header-border-width: $modal-content-border-width !default;
971
+ $modal-footer-border-width: $modal-header-border-width !default;
972
+ $modal-header-padding-y: 1rem !default;
973
+ $modal-header-padding-x: 1rem !default;
974
+ $modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility
975
+
976
+ $modal-xl: 1140px !default;
745
977
  $modal-lg: 800px !default;
746
978
  $modal-md: 500px !default;
747
979
  $modal-sm: 300px !default;
748
980
 
981
+ $modal-fade-transform: translate(0, -50px) !default;
982
+ $modal-show-transform: none !default;
749
983
  $modal-transition: transform .3s ease-out !default;
984
+ $modal-scale-transform: scale(1.02) !default;
750
985
 
751
986
 
752
987
  // Alerts
@@ -760,11 +995,15 @@ $alert-border-radius: $border-radius !default;
760
995
  $alert-link-font-weight: $font-weight-bold !default;
761
996
  $alert-border-width: $border-width !default;
762
997
 
998
+ $alert-bg-level: -10 !default;
999
+ $alert-border-level: -9 !default;
1000
+ $alert-color-level: 6 !default;
1001
+
763
1002
 
764
1003
  // Progress bars
765
1004
 
766
1005
  $progress-height: 1rem !default;
767
- $progress-font-size: ($font-size-base * .75) !default;
1006
+ $progress-font-size: $font-size-base * .75 !default;
768
1007
  $progress-bg: $gray-200 !default;
769
1008
  $progress-border-radius: $border-radius !default;
770
1009
  $progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;
@@ -773,8 +1012,10 @@ $progress-bar-bg: theme-color("primary") !default;
773
1012
  $progress-bar-animation-timing: 1s linear infinite !default;
774
1013
  $progress-bar-transition: width .6s ease !default;
775
1014
 
1015
+
776
1016
  // List group
777
1017
 
1018
+ $list-group-color: null !default;
778
1019
  $list-group-bg: $white !default;
779
1020
  $list-group-border-color: rgba($black, .125) !default;
780
1021
  $list-group-border-width: $border-width !default;
@@ -816,6 +1057,8 @@ $figure-caption-color: $gray-600 !default;
816
1057
 
817
1058
  // Breadcrumbs
818
1059
 
1060
+ $breadcrumb-font-size: null !default;
1061
+
819
1062
  $breadcrumb-padding-y: .75rem !default;
820
1063
  $breadcrumb-padding-x: 1rem !default;
821
1064
  $breadcrumb-item-padding: .5rem !default;
@@ -825,29 +1068,48 @@ $breadcrumb-margin-bottom: 1rem !default;
825
1068
  $breadcrumb-bg: $gray-200 !default;
826
1069
  $breadcrumb-divider-color: $gray-600 !default;
827
1070
  $breadcrumb-active-color: $gray-600 !default;
828
- $breadcrumb-divider: "/" !default;
1071
+ $breadcrumb-divider: quote("/") !default;
1072
+
1073
+ $breadcrumb-border-radius: $border-radius !default;
829
1074
 
830
1075
 
831
1076
  // Carousel
832
1077
 
833
- $carousel-control-color: $white !default;
834
- $carousel-control-width: 15% !default;
835
- $carousel-control-opacity: .5 !default;
1078
+ $carousel-control-color: $white !default;
1079
+ $carousel-control-width: 15% !default;
1080
+ $carousel-control-opacity: .5 !default;
1081
+ $carousel-control-hover-opacity: .9 !default;
1082
+ $carousel-control-transition: opacity .15s ease !default;
1083
+
1084
+ $carousel-indicator-width: 30px !default;
1085
+ $carousel-indicator-height: 3px !default;
1086
+ $carousel-indicator-hit-area-height: 10px !default;
1087
+ $carousel-indicator-spacer: 3px !default;
1088
+ $carousel-indicator-active-bg: $white !default;
1089
+ $carousel-indicator-transition: opacity .6s ease !default;
1090
+
1091
+ $carousel-caption-width: 70% !default;
1092
+ $carousel-caption-color: $white !default;
1093
+
1094
+ $carousel-control-icon-width: 20px !default;
1095
+
1096
+ $carousel-control-prev-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/></svg>") !default;
1097
+ $carousel-control-next-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' width='8' height='8' viewBox='0 0 8 8'><path d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/></svg>") !default;
836
1098
 
837
- $carousel-indicator-width: 30px !default;
838
- $carousel-indicator-height: 3px !default;
839
- $carousel-indicator-spacer: 3px !default;
840
- $carousel-indicator-active-bg: $white !default;
1099
+ $carousel-transition-duration: .6s !default;
1100
+ $carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)
841
1101
 
842
- $carousel-caption-width: 70% !default;
843
- $carousel-caption-color: $white !default;
844
1102
 
845
- $carousel-control-icon-width: 20px !default;
1103
+ // Spinners
846
1104
 
847
- $carousel-control-prev-icon-bg: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E"), "#", "%23") !default;
848
- $carousel-control-next-icon-bg: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E"), "#", "%23") !default;
1105
+ $spinner-width: 2rem !default;
1106
+ $spinner-height: $spinner-width !default;
1107
+ $spinner-vertical-align: -.125em !default;
1108
+ $spinner-border-width: .25em !default;
849
1109
 
850
- $carousel-transition: transform .6s ease !default;
1110
+ $spinner-width-sm: 1rem !default;
1111
+ $spinner-height-sm: $spinner-width-sm !default;
1112
+ $spinner-border-width-sm: .2em !default;
851
1113
 
852
1114
 
853
1115
  // Close
@@ -857,6 +1119,7 @@ $close-font-weight: $font-weight-bold !default;
857
1119
  $close-color: $black !default;
858
1120
  $close-text-shadow: 0 1px 0 $white !default;
859
1121
 
1122
+
860
1123
  // Code
861
1124
 
862
1125
  $code-font-size: 87.5% !default;
@@ -870,3 +1133,17 @@ $kbd-bg: $gray-900 !default;
870
1133
 
871
1134
  $pre-color: $gray-900 !default;
872
1135
  $pre-scrollable-max-height: 340px !default;
1136
+
1137
+
1138
+ // Utilities
1139
+
1140
+ $displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;
1141
+ $overflows: auto, hidden !default;
1142
+ $positions: static, relative, absolute, fixed, sticky !default;
1143
+ $user-selects: all, auto, none !default;
1144
+
1145
+
1146
+ // Printing
1147
+
1148
+ $print-page-size: a3 !default;
1149
+ $print-body-min-width: map-get($grid-breakpoints, "lg") !default;