bootstrap 4.0.0 → 4.6.2.1

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 (116) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +15 -1
  3. data/CHANGELOG.md +4 -4
  4. data/README.md +8 -2
  5. data/Rakefile +18 -4
  6. data/assets/javascripts/bootstrap/alert.js +77 -66
  7. data/assets/javascripts/bootstrap/button.js +138 -76
  8. data/assets/javascripts/bootstrap/carousel.js +289 -152
  9. data/assets/javascripts/bootstrap/collapse.js +150 -128
  10. data/assets/javascripts/bootstrap/dropdown.js +249 -160
  11. data/assets/javascripts/bootstrap/modal.js +280 -199
  12. data/assets/javascripts/bootstrap/popover.js +99 -58
  13. data/assets/javascripts/bootstrap/scrollspy.js +123 -102
  14. data/assets/javascripts/bootstrap/tab.js +110 -98
  15. data/assets/javascripts/bootstrap/toast.js +267 -0
  16. data/assets/javascripts/bootstrap/tooltip.js +401 -183
  17. data/assets/javascripts/bootstrap/util.js +106 -55
  18. data/assets/javascripts/bootstrap-sprockets.js +7 -6
  19. data/assets/javascripts/bootstrap.js +1903 -1441
  20. data/assets/javascripts/bootstrap.min.js +4 -4
  21. data/assets/stylesheets/_bootstrap-grid.scss +6 -8
  22. data/assets/stylesheets/_bootstrap-reboot.scss +4 -4
  23. data/assets/stylesheets/_bootstrap.scss +6 -4
  24. data/assets/stylesheets/bootstrap/_alert.scss +2 -1
  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 +20 -21
  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 +14 -8
  32. data/assets/stylesheets/bootstrap/_code.scss +6 -14
  33. data/assets/stylesheets/bootstrap/_custom-forms.scss +274 -45
  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 +68 -16
  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 +64 -43
  46. data/assets/stylesheets/bootstrap/_pagination.scss +7 -10
  47. data/assets/stylesheets/bootstrap/_popover.scss +55 -68
  48. data/assets/stylesheets/bootstrap/_print.scss +24 -16
  49. data/assets/stylesheets/bootstrap/_progress.scss +20 -6
  50. data/assets/stylesheets/bootstrap/_reboot.scss +88 -86
  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 +5 -5
  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 +462 -207
  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 +3 -3
  64. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +20 -19
  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 +96 -38
  69. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +7 -7
  70. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +31 -18
  71. data/assets/stylesheets/bootstrap/mixins/_grid.scss +34 -17
  72. data/assets/stylesheets/bootstrap/mixins/_hover.scss +7 -9
  73. data/assets/stylesheets/bootstrap/mixins/_image.scss +4 -4
  74. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +2 -2
  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 +17 -1
  88. data/assets/stylesheets/bootstrap/utilities/_display.scss +6 -18
  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 +5 -4
  103. data/lib/bootstrap/engine.rb +19 -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/gemfiles/rails_7_0_dartsass.gemfile +8 -0
  112. data/test/gemfiles/rails_7_0_sassc.gemfile +8 -0
  113. data/test/support/dummy_rails_integration.rb +3 -1
  114. data/test/test_helper.rb +21 -15
  115. metadata +28 -25
  116. data/assets/stylesheets/bootstrap/mixins/_navbar-align.scss +0 -10
@@ -3,12 +3,8 @@
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;
@@ -22,17 +18,20 @@ $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; // Deprecated, no longer affects any compiled CSS
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
@@ -114,27 +133,33 @@ $enable-print-styles: true !default;
114
133
  // variables. Mostly focused on spacing.
115
134
  // You can add more entries to the $spacers map, should you need more variation.
116
135
 
117
- // stylelint-disable
118
136
  $spacer: 1rem !default;
119
137
  $spacers: () !default;
120
- $spacers: map-merge((
121
- 0: 0,
122
- 1: ($spacer * .25),
123
- 2: ($spacer * .5),
124
- 3: $spacer,
125
- 4: ($spacer * 1.5),
126
- 5: ($spacer * 3)
127
- ), $spacers);
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
+ );
128
149
 
129
150
  // This variable affects the `.h-*` and `.w-*` classes.
130
151
  $sizes: () !default;
131
- $sizes: map-merge((
132
- 25: 25%,
133
- 50: 50%,
134
- 75: 75%,
135
- 100: 100%
136
- ), $sizes);
137
- // stylelint-enable
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
+
138
163
 
139
164
  // Body
140
165
  //
@@ -143,14 +168,17 @@ $sizes: map-merge((
143
168
  $body-bg: $white !default;
144
169
  $body-color: $gray-900 !default;
145
170
 
171
+
146
172
  // Links
147
173
  //
148
174
  // Style anchor elements.
149
175
 
150
- $link-color: theme-color("primary") !default;
151
- $link-decoration: none !default;
152
- $link-hover-color: darken($link-color, 15%) !default;
153
- $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;
154
182
 
155
183
  // Paragraphs
156
184
  //
@@ -173,7 +201,7 @@ $grid-breakpoints: (
173
201
  ) !default;
174
202
 
175
203
  @include _assert-ascending($grid-breakpoints, "$grid-breakpoints");
176
- @include _assert-starts-at-zero($grid-breakpoints);
204
+ @include _assert-starts-at-zero($grid-breakpoints, "$grid-breakpoints");
177
205
 
178
206
 
179
207
  // Grid containers
@@ -196,6 +224,8 @@ $container-max-widths: (
196
224
 
197
225
  $grid-columns: 12 !default;
198
226
  $grid-gutter-width: 30px !default;
227
+ $grid-row-columns: 6 !default;
228
+
199
229
 
200
230
  // Components
201
231
  //
@@ -211,33 +241,54 @@ $border-radius: .25rem !default;
211
241
  $border-radius-lg: .3rem !default;
212
242
  $border-radius-sm: .2rem !default;
213
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
+
214
250
  $component-active-color: $white !default;
215
251
  $component-active-bg: theme-color("primary") !default;
216
252
 
217
253
  $caret-width: .3em !default;
254
+ $caret-vertical-align: $caret-width * .85 !default;
255
+ $caret-spacing: $caret-width * .85 !default;
218
256
 
219
257
  $transition-base: all .2s ease-in-out !default;
220
258
  $transition-fade: opacity .15s linear !default;
221
259
  $transition-collapse: height .35s ease !default;
222
-
223
-
224
- // 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
225
274
  //
226
275
  // Font, line-height, and color for body text, headings, and more.
227
276
 
228
277
  // stylelint-disable value-keyword-case
229
- $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;
230
279
  $font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default;
231
280
  $font-family-base: $font-family-sans-serif !default;
232
281
  // stylelint-enable value-keyword-case
233
282
 
234
283
  $font-size-base: 1rem !default; // Assumes the browser default, typically `16px`
235
- $font-size-lg: ($font-size-base * 1.25) !default;
236
- $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;
237
286
 
287
+ $font-weight-lighter: lighter !default;
238
288
  $font-weight-light: 300 !default;
239
289
  $font-weight-normal: 400 !default;
240
290
  $font-weight-bold: 700 !default;
291
+ $font-weight-bolder: bolder !default;
241
292
 
242
293
  $font-weight-base: $font-weight-normal !default;
243
294
  $line-height-base: 1.5 !default;
@@ -249,11 +300,11 @@ $h4-font-size: $font-size-base * 1.5 !default;
249
300
  $h5-font-size: $font-size-base * 1.25 !default;
250
301
  $h6-font-size: $font-size-base !default;
251
302
 
252
- $headings-margin-bottom: ($spacer / 2) !default;
253
- $headings-font-family: inherit !default;
303
+ $headings-margin-bottom: $spacer * .5 !default;
304
+ $headings-font-family: null !default;
254
305
  $headings-font-weight: 500 !default;
255
306
  $headings-line-height: 1.2 !default;
256
- $headings-color: inherit !default;
307
+ $headings-color: null !default;
257
308
 
258
309
  $display1-size: 6rem !default;
259
310
  $display2-size: 5.5rem !default;
@@ -266,15 +317,16 @@ $display3-weight: 300 !default;
266
317
  $display4-weight: 300 !default;
267
318
  $display-line-height: $headings-line-height !default;
268
319
 
269
- $lead-font-size: ($font-size-base * 1.25) !default;
320
+ $lead-font-size: $font-size-base * 1.25 !default;
270
321
  $lead-font-weight: 300 !default;
271
322
 
272
- $small-font-size: 80% !default;
323
+ $small-font-size: .875em !default;
273
324
 
274
325
  $text-muted: $gray-600 !default;
275
326
 
276
327
  $blockquote-small-color: $gray-600 !default;
277
- $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;
278
330
 
279
331
  $hr-border-color: rgba($black, .1) !default;
280
332
  $hr-border-width: $border-width !default;
@@ -300,22 +352,33 @@ $hr-margin-y: $spacer !default;
300
352
  $table-cell-padding: .75rem !default;
301
353
  $table-cell-padding-sm: .3rem !default;
302
354
 
303
- $table-bg: transparent !default;
355
+ $table-color: $body-color !default;
356
+ $table-bg: null !default;
304
357
  $table-accent-bg: rgba($black, .05) !default;
358
+ $table-hover-color: $table-color !default;
305
359
  $table-hover-bg: rgba($black, .075) !default;
306
360
  $table-active-bg: $table-hover-bg !default;
307
361
 
308
362
  $table-border-width: $border-width !default;
309
- $table-border-color: $gray-300 !default;
363
+ $table-border-color: $border-color !default;
310
364
 
311
365
  $table-head-bg: $gray-200 !default;
312
366
  $table-head-color: $gray-700 !default;
367
+ $table-th-font-weight: null !default;
313
368
 
314
- $table-dark-bg: $gray-900 !default;
369
+ $table-dark-color: $white !default;
370
+ $table-dark-bg: $gray-800 !default;
315
371
  $table-dark-accent-bg: rgba($white, .05) !default;
372
+ $table-dark-hover-color: $table-dark-color !default;
316
373
  $table-dark-hover-bg: rgba($white, .075) !default;
317
- $table-dark-border-color: lighten($gray-900, 7.5%) !default;
318
- $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;
319
382
 
320
383
 
321
384
  // Buttons + Forms
@@ -324,6 +387,8 @@ $table-dark-color: $body-bg !default;
324
387
 
325
388
  $input-btn-padding-y: .375rem !default;
326
389
  $input-btn-padding-x: .75rem !default;
390
+ $input-btn-font-family: null !default;
391
+ $input-btn-font-size: $font-size-base !default;
327
392
  $input-btn-line-height: $line-height-base !default;
328
393
 
329
394
  $input-btn-focus-width: .2rem !default;
@@ -332,10 +397,12 @@ $input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-colo
332
397
 
333
398
  $input-btn-padding-y-sm: .25rem !default;
334
399
  $input-btn-padding-x-sm: .5rem !default;
400
+ $input-btn-font-size-sm: $font-size-sm !default;
335
401
  $input-btn-line-height-sm: $line-height-sm !default;
336
402
 
337
403
  $input-btn-padding-y-lg: .5rem !default;
338
404
  $input-btn-padding-x-lg: 1rem !default;
405
+ $input-btn-font-size-lg: $font-size-lg !default;
339
406
  $input-btn-line-height-lg: $line-height-lg !default;
340
407
 
341
408
  $input-btn-border-width: $border-width !default;
@@ -347,14 +414,19 @@ $input-btn-border-width: $border-width !default;
347
414
 
348
415
  $btn-padding-y: $input-btn-padding-y !default;
349
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;
350
419
  $btn-line-height: $input-btn-line-height !default;
420
+ $btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping
351
421
 
352
422
  $btn-padding-y-sm: $input-btn-padding-y-sm !default;
353
423
  $btn-padding-x-sm: $input-btn-padding-x-sm !default;
424
+ $btn-font-size-sm: $input-btn-font-size-sm !default;
354
425
  $btn-line-height-sm: $input-btn-line-height-sm !default;
355
426
 
356
427
  $btn-padding-y-lg: $input-btn-padding-y-lg !default;
357
428
  $btn-padding-x-lg: $input-btn-padding-x-lg !default;
429
+ $btn-font-size-lg: $input-btn-font-size-lg !default;
358
430
  $btn-line-height-lg: $input-btn-line-height-lg !default;
359
431
 
360
432
  $btn-border-width: $input-btn-border-width !default;
@@ -380,16 +452,23 @@ $btn-transition: color .15s ease-in-out, background-color .15s ease
380
452
 
381
453
  // Forms
382
454
 
455
+ $label-margin-bottom: .5rem !default;
456
+
383
457
  $input-padding-y: $input-btn-padding-y !default;
384
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;
385
462
  $input-line-height: $input-btn-line-height !default;
386
463
 
387
464
  $input-padding-y-sm: $input-btn-padding-y-sm !default;
388
465
  $input-padding-x-sm: $input-btn-padding-x-sm !default;
466
+ $input-font-size-sm: $input-btn-font-size-sm !default;
389
467
  $input-line-height-sm: $input-btn-line-height-sm !default;
390
468
 
391
469
  $input-padding-y-lg: $input-btn-padding-y-lg !default;
392
470
  $input-padding-x-lg: $input-btn-padding-x-lg !default;
471
+ $input-font-size-lg: $input-btn-font-size-lg !default;
393
472
  $input-line-height-lg: $input-btn-line-height-lg !default;
394
473
 
395
474
  $input-bg: $white !default;
@@ -411,17 +490,17 @@ $input-focus-width: $input-btn-focus-width !default;
411
490
  $input-focus-box-shadow: $input-btn-focus-box-shadow !default;
412
491
 
413
492
  $input-placeholder-color: $gray-600 !default;
493
+ $input-plaintext-color: $body-color !default;
414
494
 
415
495
  $input-height-border: $input-border-width * 2 !default;
416
496
 
417
- $input-height-inner: ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;
418
- $input-height: calc(#{$input-height-inner} + #{$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;
419
500
 
420
- $input-height-inner-sm: ($font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;
421
- $input-height-sm: calc(#{$input-height-inner-sm} + #{$input-height-border}) !default;
422
-
423
- $input-height-inner-lg: ($font-size-lg * $input-btn-line-height-lg) + ($input-btn-padding-y-lg * 2) !default;
424
- $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;
425
504
 
426
505
  $input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
427
506
 
@@ -434,80 +513,134 @@ $form-check-input-margin-x: .25rem !default;
434
513
  $form-check-inline-margin-x: .75rem !default;
435
514
  $form-check-inline-input-margin-x: .3125rem !default;
436
515
 
516
+ $form-grid-gutter-width: 10px !default;
437
517
  $form-group-margin-bottom: 1rem !default;
438
518
 
439
519
  $input-group-addon-color: $input-color !default;
440
520
  $input-group-addon-bg: $gray-200 !default;
441
521
  $input-group-addon-border-color: $input-border-color !default;
442
522
 
443
- $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;
444
526
  $custom-control-spacer-x: 1rem !default;
527
+ $custom-control-cursor: null !default;
445
528
 
446
529
  $custom-control-indicator-size: 1rem !default;
447
- $custom-control-indicator-bg: $gray-300 !default;
530
+ $custom-control-indicator-bg: $input-bg !default;
531
+
448
532
  $custom-control-indicator-bg-size: 50% 50% !default;
449
- $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;
450
538
 
451
- $custom-control-indicator-disabled-bg: $gray-200 !default;
452
- $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;
453
541
 
454
542
  $custom-control-indicator-checked-color: $component-active-color !default;
455
543
  $custom-control-indicator-checked-bg: $component-active-bg !default;
456
544
  $custom-control-indicator-checked-disabled-bg: rgba(theme-color("primary"), .5) !default;
457
- $custom-control-indicator-checked-box-shadow: none !default;
545
+ $custom-control-indicator-checked-box-shadow: null !default;
546
+ $custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;
458
547
 
459
- $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;
460
550
 
461
551
  $custom-control-indicator-active-color: $component-active-color !default;
462
552
  $custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;
463
- $custom-control-indicator-active-box-shadow: none !default;
553
+ $custom-control-indicator-active-box-shadow: null !default;
554
+ $custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;
464
555
 
465
556
  $custom-checkbox-indicator-border-radius: $border-radius !default;
466
- $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;
467
558
 
468
- $custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;
469
- $custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;
470
- $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;
471
- $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;
472
564
 
473
565
  $custom-radio-indicator-border-radius: 50% !default;
474
- $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;
567
+
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;
475
571
 
476
- $custom-select-padding-y: .375rem !default;
477
- $custom-select-padding-x: .75rem !default;
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;
478
576
  $custom-select-height: $input-height !default;
479
577
  $custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator
480
- $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;
481
580
  $custom-select-color: $input-color !default;
482
581
  $custom-select-disabled-color: $gray-600 !default;
483
- $custom-select-bg: $white !default;
582
+ $custom-select-bg: $input-bg !default;
484
583
  $custom-select-disabled-bg: $gray-200 !default;
485
584
  $custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions
486
585
  $custom-select-indicator-color: $gray-800 !default;
487
- $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;
488
- $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;
489
594
  $custom-select-border-color: $input-border-color !default;
490
595
  $custom-select-border-radius: $border-radius !default;
596
+ $custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;
491
597
 
492
598
  $custom-select-focus-border-color: $input-focus-border-color !default;
493
- $custom-select-focus-box-shadow: inset 0 1px 2px rgba($black, .075), 0 0 5px rgba($custom-select-focus-border-color, .5) !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;
494
601
 
495
- $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;
496
605
  $custom-select-height-sm: $input-height-sm !default;
497
606
 
498
- $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;
499
610
  $custom-select-height-lg: $input-height-lg !default;
500
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
+
501
630
  $custom-file-height: $input-height !default;
631
+ $custom-file-height-inner: $input-height-inner !default;
502
632
  $custom-file-focus-border-color: $input-focus-border-color !default;
503
- $custom-file-focus-box-shadow: $input-btn-focus-box-shadow !default;
504
-
505
- $custom-file-padding-y: $input-btn-padding-y !default;
506
- $custom-file-padding-x: $input-btn-padding-x !default;
507
- $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;
508
641
  $custom-file-color: $input-color !default;
509
642
  $custom-file-bg: $input-bg !default;
510
- $custom-file-border-width: $input-btn-border-width !default;
643
+ $custom-file-border-width: $input-border-width !default;
511
644
  $custom-file-border-color: $input-border-color !default;
512
645
  $custom-file-border-radius: $input-border-radius !default;
513
646
  $custom-file-box-shadow: $input-box-shadow !default;
@@ -519,40 +652,31 @@ $custom-file-text: (
519
652
 
520
653
 
521
654
  // Form validation
655
+
522
656
  $form-feedback-margin-top: $form-text-margin-top !default;
523
657
  $form-feedback-font-size: $small-font-size !default;
524
658
  $form-feedback-valid-color: theme-color("success") !default;
525
659
  $form-feedback-invalid-color: theme-color("danger") !default;
526
660
 
527
-
528
- // Dropdowns
529
- //
530
- // Dropdown menu container and contents.
531
-
532
- $dropdown-min-width: 10rem !default;
533
- $dropdown-padding-y: .5rem !default;
534
- $dropdown-spacer: .125rem !default;
535
- $dropdown-bg: $white !default;
536
- $dropdown-border-color: rgba($black, .15) !default;
537
- $dropdown-border-radius: $border-radius !default;
538
- $dropdown-border-width: $border-width !default;
539
- $dropdown-divider-bg: $gray-200 !default;
540
- $dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;
541
-
542
- $dropdown-link-color: $gray-900 !default;
543
- $dropdown-link-hover-color: darken($gray-900, 5%) !default;
544
- $dropdown-link-hover-bg: $gray-100 !default;
545
-
546
- $dropdown-link-active-color: $component-active-color !default;
547
- $dropdown-link-active-bg: $component-active-bg !default;
548
-
549
- $dropdown-link-disabled-color: $gray-600 !default;
550
-
551
- $dropdown-item-padding-y: .25rem !default;
552
- $dropdown-item-padding-x: 1.5rem !default;
553
-
554
- $dropdown-header-color: $gray-600 !default;
555
-
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
+ );
556
680
 
557
681
  // Z-index master list
558
682
  //
@@ -567,6 +691,7 @@ $zindex-modal: 1050 !default;
567
691
  $zindex-popover: 1060 !default;
568
692
  $zindex-tooltip: 1070 !default;
569
693
 
694
+
570
695
  // Navs
571
696
 
572
697
  $nav-link-padding-y: .5rem !default;
@@ -585,38 +710,85 @@ $nav-pills-border-radius: $border-radius !default;
585
710
  $nav-pills-link-active-color: $component-active-color !default;
586
711
  $nav-pills-link-active-bg: $component-active-bg !default;
587
712
 
713
+ $nav-divider-color: $gray-200 !default;
714
+ $nav-divider-margin-y: $spacer * .5 !default;
715
+
716
+
588
717
  // Navbar
589
718
 
590
- $navbar-padding-y: ($spacer / 2) !default;
719
+ $navbar-padding-y: $spacer * .5 !default;
591
720
  $navbar-padding-x: $spacer !default;
592
721
 
593
722
  $navbar-nav-link-padding-x: .5rem !default;
594
723
 
595
724
  $navbar-brand-font-size: $font-size-lg !default;
596
725
  // Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link
597
- $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;
598
727
  $navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;
599
- $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;
600
729
 
601
730
  $navbar-toggler-padding-y: .25rem !default;
602
731
  $navbar-toggler-padding-x: .75rem !default;
603
732
  $navbar-toggler-font-size: $font-size-lg !default;
604
733
  $navbar-toggler-border-radius: $btn-border-radius !default;
605
734
 
735
+ $navbar-nav-scroll-max-height: 75vh !default;
736
+
606
737
  $navbar-dark-color: rgba($white, .5) !default;
607
738
  $navbar-dark-hover-color: rgba($white, .75) !default;
608
739
  $navbar-dark-active-color: $white !default;
609
740
  $navbar-dark-disabled-color: rgba($white, .25) !default;
610
- $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;
611
742
  $navbar-dark-toggler-border-color: rgba($white, .1) !default;
612
743
 
613
744
  $navbar-light-color: rgba($black, .5) !default;
614
745
  $navbar-light-hover-color: rgba($black, .7) !default;
615
746
  $navbar-light-active-color: rgba($black, .9) !default;
616
747
  $navbar-light-disabled-color: rgba($black, .3) !default;
617
- $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;
618
749
  $navbar-light-toggler-border-color: rgba($black, .1) !default;
619
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
+
620
792
  // Pagination
621
793
 
622
794
  $pagination-padding-y: .5rem !default;
@@ -633,6 +805,7 @@ $pagination-border-width: $border-width !default;
633
805
  $pagination-border-color: $gray-300 !default;
634
806
 
635
807
  $pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;
808
+ $pagination-focus-outline: 0 !default;
636
809
 
637
810
  $pagination-hover-color: $link-hover-color !default;
638
811
  $pagination-hover-bg: $gray-200 !default;
@@ -646,10 +819,14 @@ $pagination-disabled-color: $gray-600 !default;
646
819
  $pagination-disabled-bg: $white !default;
647
820
  $pagination-disabled-border-color: $gray-300 !default;
648
821
 
822
+ $pagination-border-radius-sm: $border-radius-sm !default;
823
+ $pagination-border-radius-lg: $border-radius-lg !default;
824
+
649
825
 
650
826
  // Jumbotron
651
827
 
652
828
  $jumbotron-padding: 2rem !default;
829
+ $jumbotron-color: null !default;
653
830
  $jumbotron-bg: $gray-200 !default;
654
831
 
655
832
 
@@ -660,13 +837,16 @@ $card-spacer-x: 1.25rem !default;
660
837
  $card-border-width: $border-width !default;
661
838
  $card-border-radius: $border-radius !default;
662
839
  $card-border-color: rgba($black, .125) !default;
663
- $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;
664
841
  $card-cap-bg: rgba($black, .03) !default;
842
+ $card-cap-color: null !default;
843
+ $card-height: null !default;
844
+ $card-color: null !default;
665
845
  $card-bg: $white !default;
666
846
 
667
847
  $card-img-overlay-padding: 1.25rem !default;
668
848
 
669
- $card-group-margin: ($grid-gutter-width / 2) !default;
849
+ $card-group-margin: $grid-gutter-width * .5 !default;
670
850
  $card-deck-margin: $card-group-margin !default;
671
851
 
672
852
  $card-columns-count: 3 !default;
@@ -676,19 +856,27 @@ $card-columns-margin: $card-spacer-y !default;
676
856
 
677
857
  // Tooltips
678
858
 
679
- $tooltip-font-size: $font-size-sm !default;
680
- $tooltip-max-width: 200px !default;
681
- $tooltip-color: $white !default;
682
- $tooltip-bg: $black !default;
683
- $tooltip-border-radius: $border-radius !default;
684
- $tooltip-opacity: .9 !default;
685
- $tooltip-padding-y: .25rem !default;
686
- $tooltip-padding-x: .5rem !default;
687
- $tooltip-margin: 0 !default;
688
-
689
- $tooltip-arrow-width: .8rem !default;
690
- $tooltip-arrow-height: .4rem !default;
691
- $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;
692
880
 
693
881
 
694
882
  // Popovers
@@ -699,6 +887,7 @@ $popover-max-width: 276px !default;
699
887
  $popover-border-width: $border-width !default;
700
888
  $popover-border-color: rgba($black, .2) !default;
701
889
  $popover-border-radius: $border-radius-lg !default;
890
+ $popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;
702
891
  $popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;
703
892
 
704
893
  $popover-header-bg: darken($popover-bg, 3%) !default;
@@ -717,6 +906,24 @@ $popover-arrow-color: $popover-bg !default;
717
906
  $popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;
718
907
 
719
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
+
720
927
  // Badges
721
928
 
722
929
  $badge-font-size: 75% !default;
@@ -725,6 +932,9 @@ $badge-padding-y: .25em !default;
725
932
  $badge-padding-x: .4em !default;
726
933
  $badge-border-radius: $border-radius !default;
727
934
 
935
+ $badge-transition: $btn-transition !default;
936
+ $badge-focus-width: $input-btn-focus-width !default;
937
+
728
938
  $badge-pill-padding-x: .6em !default;
729
939
  // Use a higher than normal value to ensure completely rounded edges when
730
940
  // customizing padding or font-size on labels.
@@ -734,32 +944,44 @@ $badge-pill-border-radius: 10rem !default;
734
944
  // Modals
735
945
 
736
946
  // Padding applied to the modal body
737
- $modal-inner-padding: 1rem !default;
738
-
739
- $modal-dialog-margin: .5rem !default;
740
- $modal-dialog-margin-y-sm-up: 1.75rem !default;
947
+ $modal-inner-padding: 1rem !default;
741
948
 
742
- $modal-title-line-height: $line-height-base !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;
743
951
 
744
- $modal-content-bg: $white !default;
745
- $modal-content-border-color: rgba($black, .2) !default;
746
- $modal-content-border-width: $border-width !default;
747
- $modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;
748
- $modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;
952
+ $modal-dialog-margin: .5rem !default;
953
+ $modal-dialog-margin-y-sm-up: 1.75rem !default;
749
954
 
750
- $modal-backdrop-bg: $black !default;
751
- $modal-backdrop-opacity: .5 !default;
752
- $modal-header-border-color: $gray-200 !default;
753
- $modal-footer-border-color: $modal-header-border-color !default;
754
- $modal-header-border-width: $modal-content-border-width !default;
755
- $modal-footer-border-width: $modal-header-border-width !default;
756
- $modal-header-padding: 1rem !default;
955
+ $modal-title-line-height: $line-height-base !default;
757
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;
758
977
  $modal-lg: 800px !default;
759
978
  $modal-md: 500px !default;
760
979
  $modal-sm: 300px !default;
761
980
 
981
+ $modal-fade-transform: translate(0, -50px) !default;
982
+ $modal-show-transform: none !default;
762
983
  $modal-transition: transform .3s ease-out !default;
984
+ $modal-scale-transform: scale(1.02) !default;
763
985
 
764
986
 
765
987
  // Alerts
@@ -781,7 +1003,7 @@ $alert-color-level: 6 !default;
781
1003
  // Progress bars
782
1004
 
783
1005
  $progress-height: 1rem !default;
784
- $progress-font-size: ($font-size-base * .75) !default;
1006
+ $progress-font-size: $font-size-base * .75 !default;
785
1007
  $progress-bg: $gray-200 !default;
786
1008
  $progress-border-radius: $border-radius !default;
787
1009
  $progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;
@@ -790,8 +1012,10 @@ $progress-bar-bg: theme-color("primary") !default;
790
1012
  $progress-bar-animation-timing: 1s linear infinite !default;
791
1013
  $progress-bar-transition: width .6s ease !default;
792
1014
 
1015
+
793
1016
  // List group
794
1017
 
1018
+ $list-group-color: null !default;
795
1019
  $list-group-bg: $white !default;
796
1020
  $list-group-border-color: rgba($black, .125) !default;
797
1021
  $list-group-border-width: $border-width !default;
@@ -833,6 +1057,8 @@ $figure-caption-color: $gray-600 !default;
833
1057
 
834
1058
  // Breadcrumbs
835
1059
 
1060
+ $breadcrumb-font-size: null !default;
1061
+
836
1062
  $breadcrumb-padding-y: .75rem !default;
837
1063
  $breadcrumb-padding-x: 1rem !default;
838
1064
  $breadcrumb-item-padding: .5rem !default;
@@ -842,29 +1068,48 @@ $breadcrumb-margin-bottom: 1rem !default;
842
1068
  $breadcrumb-bg: $gray-200 !default;
843
1069
  $breadcrumb-divider-color: $gray-600 !default;
844
1070
  $breadcrumb-active-color: $gray-600 !default;
845
- $breadcrumb-divider: "/" !default;
1071
+ $breadcrumb-divider: quote("/") !default;
1072
+
1073
+ $breadcrumb-border-radius: $border-radius !default;
846
1074
 
847
1075
 
848
1076
  // Carousel
849
1077
 
850
- $carousel-control-color: $white !default;
851
- $carousel-control-width: 15% !default;
852
- $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;
853
1095
 
854
- $carousel-indicator-width: 30px !default;
855
- $carousel-indicator-height: 3px !default;
856
- $carousel-indicator-spacer: 3px !default;
857
- $carousel-indicator-active-bg: $white !default;
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;
858
1098
 
859
- $carousel-caption-width: 70% !default;
860
- $carousel-caption-color: $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`)
861
1101
 
862
- $carousel-control-icon-width: 20px !default;
863
1102
 
864
- $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;
865
- $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;
1103
+ // Spinners
866
1104
 
867
- $carousel-transition: transform .6s ease !default;
1105
+ $spinner-width: 2rem !default;
1106
+ $spinner-height: $spinner-width !default;
1107
+ $spinner-vertical-align: -.125em !default;
1108
+ $spinner-border-width: .25em !default;
1109
+
1110
+ $spinner-width-sm: 1rem !default;
1111
+ $spinner-height-sm: $spinner-width-sm !default;
1112
+ $spinner-border-width-sm: .2em !default;
868
1113
 
869
1114
 
870
1115
  // Close
@@ -874,6 +1119,7 @@ $close-font-weight: $font-weight-bold !default;
874
1119
  $close-color: $black !default;
875
1120
  $close-text-shadow: 0 1px 0 $white !default;
876
1121
 
1122
+
877
1123
  // Code
878
1124
 
879
1125
  $code-font-size: 87.5% !default;
@@ -889,6 +1135,15 @@ $pre-color: $gray-900 !default;
889
1135
  $pre-scrollable-max-height: 340px !default;
890
1136
 
891
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
+
892
1146
  // Printing
1147
+
893
1148
  $print-page-size: a3 !default;
894
1149
  $print-body-min-width: map-get($grid-breakpoints, "lg") !default;