bootstrap 4.0.0 → 4.3.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 (104) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +1 -1
  3. data/CHANGELOG.md +8 -0
  4. data/README.md +2 -2
  5. data/Rakefile +4 -2
  6. data/assets/javascripts/bootstrap/alert.js +45 -22
  7. data/assets/javascripts/bootstrap/button.js +39 -19
  8. data/assets/javascripts/bootstrap/carousel.js +213 -51
  9. data/assets/javascripts/bootstrap/collapse.js +105 -52
  10. data/assets/javascripts/bootstrap/dropdown.js +169 -45
  11. data/assets/javascripts/bootstrap/modal.js +139 -71
  12. data/assets/javascripts/bootstrap/popover.js +77 -20
  13. data/assets/javascripts/bootstrap/scrollspy.js +87 -29
  14. data/assets/javascripts/bootstrap/tab.js +50 -32
  15. data/assets/javascripts/bootstrap/toast.js +282 -0
  16. data/assets/javascripts/bootstrap/tooltip.js +295 -59
  17. data/assets/javascripts/bootstrap/util.js +78 -45
  18. data/assets/javascripts/bootstrap-sprockets.js +7 -6
  19. data/assets/javascripts/bootstrap.js +1537 -996
  20. data/assets/javascripts/bootstrap.min.js +3 -3
  21. data/assets/stylesheets/_bootstrap-grid.scss +4 -7
  22. data/assets/stylesheets/_bootstrap-reboot.scss +3 -3
  23. data/assets/stylesheets/_bootstrap.scss +5 -3
  24. data/assets/stylesheets/bootstrap/_alert.scss +1 -1
  25. data/assets/stylesheets/bootstrap/_badge.scss +8 -1
  26. data/assets/stylesheets/bootstrap/_breadcrumb.scss +9 -6
  27. data/assets/stylesheets/bootstrap/_button-group.scss +16 -19
  28. data/assets/stylesheets/bootstrap/_buttons.scss +10 -16
  29. data/assets/stylesheets/bootstrap/_card.scss +53 -34
  30. data/assets/stylesheets/bootstrap/_carousel.scss +66 -60
  31. data/assets/stylesheets/bootstrap/_close.scss +15 -8
  32. data/assets/stylesheets/bootstrap/_code.scss +5 -13
  33. data/assets/stylesheets/bootstrap/_custom-forms.scss +250 -40
  34. data/assets/stylesheets/bootstrap/_dropdown.scss +65 -5
  35. data/assets/stylesheets/bootstrap/_forms.scss +32 -35
  36. data/assets/stylesheets/bootstrap/_functions.scss +9 -9
  37. data/assets/stylesheets/bootstrap/_images.scss +2 -2
  38. data/assets/stylesheets/bootstrap/_input-group.scss +45 -11
  39. data/assets/stylesheets/bootstrap/_jumbotron.scss +1 -0
  40. data/assets/stylesheets/bootstrap/_list-group.scss +39 -5
  41. data/assets/stylesheets/bootstrap/_mixins.scss +6 -1
  42. data/assets/stylesheets/bootstrap/_modal.scss +80 -19
  43. data/assets/stylesheets/bootstrap/_nav.scss +2 -0
  44. data/assets/stylesheets/bootstrap/_navbar.scss +9 -26
  45. data/assets/stylesheets/bootstrap/_pagination.scss +2 -6
  46. data/assets/stylesheets/bootstrap/_popover.scss +47 -59
  47. data/assets/stylesheets/bootstrap/_print.scss +23 -6
  48. data/assets/stylesheets/bootstrap/_progress.scss +16 -6
  49. data/assets/stylesheets/bootstrap/_reboot.scss +51 -50
  50. data/assets/stylesheets/bootstrap/_spinners.scss +55 -0
  51. data/assets/stylesheets/bootstrap/_tables.scss +16 -11
  52. data/assets/stylesheets/bootstrap/_toasts.scss +44 -0
  53. data/assets/stylesheets/bootstrap/_tooltip.scss +1 -1
  54. data/assets/stylesheets/bootstrap/_transitions.scss +4 -20
  55. data/assets/stylesheets/bootstrap/_type.scss +16 -16
  56. data/assets/stylesheets/bootstrap/_utilities.scss +3 -0
  57. data/assets/stylesheets/bootstrap/_variables.scss +430 -201
  58. data/assets/stylesheets/bootstrap/mixins/_badge.scss +7 -2
  59. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +29 -1
  60. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +16 -1
  61. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +3 -3
  62. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +12 -14
  63. data/assets/stylesheets/bootstrap/mixins/_caret.scss +5 -8
  64. data/assets/stylesheets/bootstrap/mixins/_deprecate.scss +10 -0
  65. data/assets/stylesheets/bootstrap/mixins/_float.scss +3 -0
  66. data/assets/stylesheets/bootstrap/mixins/_forms.scss +68 -13
  67. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +7 -7
  68. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +3 -4
  69. data/assets/stylesheets/bootstrap/mixins/_grid.scss +9 -10
  70. data/assets/stylesheets/bootstrap/mixins/_hover.scss +3 -5
  71. data/assets/stylesheets/bootstrap/mixins/_image.scss +2 -2
  72. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +1 -1
  73. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +2 -2
  74. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +1 -1
  75. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
  76. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +1 -3
  77. data/assets/stylesheets/bootstrap/mixins/_size.scss +1 -0
  78. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +10 -1
  79. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +5 -3
  80. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +3 -1
  81. data/assets/stylesheets/bootstrap/mixins/_transition.scss +7 -0
  82. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +1 -0
  83. data/assets/stylesheets/bootstrap/utilities/_borders.scss +17 -1
  84. data/assets/stylesheets/bootstrap/utilities/_display.scss +6 -18
  85. data/assets/stylesheets/bootstrap/utilities/_embed.scss +7 -20
  86. data/assets/stylesheets/bootstrap/utilities/_flex.scss +5 -0
  87. data/assets/stylesheets/bootstrap/utilities/_float.scss +5 -3
  88. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +5 -0
  89. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -4
  90. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +6 -0
  91. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +8 -0
  92. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +23 -1
  93. data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +19 -0
  94. data/assets/stylesheets/bootstrap/utilities/_text.scss +26 -6
  95. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +4 -2
  96. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +204 -0
  97. data/bootstrap.gemspec +6 -3
  98. data/lib/bootstrap/engine.rb +3 -0
  99. data/lib/bootstrap/version.rb +4 -2
  100. data/lib/bootstrap.rb +10 -7
  101. data/tasks/updater/js.rb +1 -1
  102. data/test/test_helper.rb +7 -6
  103. metadata +19 -12
  104. 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,21 @@ $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
+ // stylelint-disable-next-line scss/dollar-variable-default
22
+ $grays: map-merge(
23
+ (
24
+ "100": $gray-100,
25
+ "200": $gray-200,
26
+ "300": $gray-300,
27
+ "400": $gray-400,
28
+ "500": $gray-500,
29
+ "600": $gray-600,
30
+ "700": $gray-700,
31
+ "800": $gray-800,
32
+ "900": $gray-900
33
+ ),
34
+ $grays
35
+ );
36
36
 
37
37
  $blue: #007bff !default;
38
38
  $indigo: #6610f2 !default;
@@ -46,21 +46,25 @@ $teal: #20c997 !default;
46
46
  $cyan: #17a2b8 !default;
47
47
 
48
48
  $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);
49
+ // stylelint-disable-next-line scss/dollar-variable-default
50
+ $colors: map-merge(
51
+ (
52
+ "blue": $blue,
53
+ "indigo": $indigo,
54
+ "purple": $purple,
55
+ "pink": $pink,
56
+ "red": $red,
57
+ "orange": $orange,
58
+ "yellow": $yellow,
59
+ "green": $green,
60
+ "teal": $teal,
61
+ "cyan": $cyan,
62
+ "white": $white,
63
+ "gray": $gray-600,
64
+ "gray-dark": $gray-800
65
+ ),
66
+ $colors
67
+ );
64
68
 
65
69
  $primary: $blue !default;
66
70
  $secondary: $gray-600 !default;
@@ -72,40 +76,49 @@ $light: $gray-100 !default;
72
76
  $dark: $gray-800 !default;
73
77
 
74
78
  $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
79
+ // stylelint-disable-next-line scss/dollar-variable-default
80
+ $theme-colors: map-merge(
81
+ (
82
+ "primary": $primary,
83
+ "secondary": $secondary,
84
+ "success": $success,
85
+ "info": $info,
86
+ "warning": $warning,
87
+ "danger": $danger,
88
+ "light": $light,
89
+ "dark": $dark
90
+ ),
91
+ $theme-colors
92
+ );
86
93
 
87
94
  // Set a specific jump point for requesting color jumps
88
95
  $theme-color-interval: 8% !default;
89
96
 
90
97
  // 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;
98
+ $yiq-contrasted-threshold: 150 !default;
92
99
 
93
100
  // 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;
101
+ $yiq-text-dark: $gray-900 !default;
102
+ $yiq-text-light: $white !default;
103
+
96
104
 
97
105
  // Options
98
106
  //
99
107
  // Quickly modify global styling by enabling or disabling optional features.
100
108
 
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;
109
+ $enable-caret: true !default;
110
+ $enable-rounded: true !default;
111
+ $enable-shadows: false !default;
112
+ $enable-gradients: false !default;
113
+ $enable-transitions: true !default;
114
+ $enable-prefers-reduced-motion-media-query: true !default;
115
+ $enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS
116
+ $enable-grid-classes: true !default;
117
+ $enable-pointer-cursor-for-buttons: true !default;
118
+ $enable-print-styles: true !default;
119
+ $enable-responsive-font-sizes: false !default;
120
+ $enable-validation-icons: true !default;
121
+ $enable-deprecation-messages: true !default;
109
122
 
110
123
 
111
124
  // Spacing
@@ -114,27 +127,35 @@ $enable-print-styles: true !default;
114
127
  // variables. Mostly focused on spacing.
115
128
  // You can add more entries to the $spacers map, should you need more variation.
116
129
 
117
- // stylelint-disable
118
130
  $spacer: 1rem !default;
119
131
  $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);
132
+ // stylelint-disable-next-line scss/dollar-variable-default
133
+ $spacers: map-merge(
134
+ (
135
+ 0: 0,
136
+ 1: ($spacer * .25),
137
+ 2: ($spacer * .5),
138
+ 3: $spacer,
139
+ 4: ($spacer * 1.5),
140
+ 5: ($spacer * 3)
141
+ ),
142
+ $spacers
143
+ );
128
144
 
129
145
  // This variable affects the `.h-*` and `.w-*` classes.
130
146
  $sizes: () !default;
131
- $sizes: map-merge((
132
- 25: 25%,
133
- 50: 50%,
134
- 75: 75%,
135
- 100: 100%
136
- ), $sizes);
137
- // stylelint-enable
147
+ // stylelint-disable-next-line scss/dollar-variable-default
148
+ $sizes: map-merge(
149
+ (
150
+ 25: 25%,
151
+ 50: 50%,
152
+ 75: 75%,
153
+ 100: 100%,
154
+ auto: auto
155
+ ),
156
+ $sizes
157
+ );
158
+
138
159
 
139
160
  // Body
140
161
  //
@@ -143,14 +164,17 @@ $sizes: map-merge((
143
164
  $body-bg: $white !default;
144
165
  $body-color: $gray-900 !default;
145
166
 
167
+
146
168
  // Links
147
169
  //
148
170
  // Style anchor elements.
149
171
 
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;
172
+ $link-color: theme-color("primary") !default;
173
+ $link-decoration: none !default;
174
+ $link-hover-color: darken($link-color, 15%) !default;
175
+ $link-hover-decoration: underline !default;
176
+ // Darken percentage for links with `.text-*` class (e.g. `.text-success`)
177
+ $emphasized-link-hover-darken-percentage: 15% !default;
154
178
 
155
179
  // Paragraphs
156
180
  //
@@ -173,7 +197,7 @@ $grid-breakpoints: (
173
197
  ) !default;
174
198
 
175
199
  @include _assert-ascending($grid-breakpoints, "$grid-breakpoints");
176
- @include _assert-starts-at-zero($grid-breakpoints);
200
+ @include _assert-starts-at-zero($grid-breakpoints, "$grid-breakpoints");
177
201
 
178
202
 
179
203
  // Grid containers
@@ -197,6 +221,7 @@ $container-max-widths: (
197
221
  $grid-columns: 12 !default;
198
222
  $grid-gutter-width: 30px !default;
199
223
 
224
+
200
225
  // Components
201
226
  //
202
227
  // Define common padding and border radius sizes and more.
@@ -211,33 +236,54 @@ $border-radius: .25rem !default;
211
236
  $border-radius-lg: .3rem !default;
212
237
  $border-radius-sm: .2rem !default;
213
238
 
239
+ $rounded-pill: 50rem !default;
240
+
241
+ $box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;
242
+ $box-shadow: 0 .5rem 1rem rgba($black, .15) !default;
243
+ $box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;
244
+
214
245
  $component-active-color: $white !default;
215
246
  $component-active-bg: theme-color("primary") !default;
216
247
 
217
248
  $caret-width: .3em !default;
249
+ $caret-vertical-align: $caret-width * .85 !default;
250
+ $caret-spacing: $caret-width * .85 !default;
218
251
 
219
252
  $transition-base: all .2s ease-in-out !default;
220
253
  $transition-fade: opacity .15s linear !default;
221
254
  $transition-collapse: height .35s ease !default;
222
255
 
223
-
224
- // Fonts
256
+ $embed-responsive-aspect-ratios: () !default;
257
+ // stylelint-disable-next-line scss/dollar-variable-default
258
+ $embed-responsive-aspect-ratios: join(
259
+ (
260
+ (21 9),
261
+ (16 9),
262
+ (4 3),
263
+ (1 1),
264
+ ),
265
+ $embed-responsive-aspect-ratios
266
+ );
267
+
268
+ // Typography
225
269
  //
226
270
  // Font, line-height, and color for body text, headings, and more.
227
271
 
228
272
  // 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;
273
+ $font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
230
274
  $font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default;
231
275
  $font-family-base: $font-family-sans-serif !default;
232
276
  // stylelint-enable value-keyword-case
233
277
 
234
278
  $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;
279
+ $font-size-lg: $font-size-base * 1.25 !default;
280
+ $font-size-sm: $font-size-base * .875 !default;
237
281
 
282
+ $font-weight-lighter: lighter !default;
238
283
  $font-weight-light: 300 !default;
239
284
  $font-weight-normal: 400 !default;
240
285
  $font-weight-bold: 700 !default;
286
+ $font-weight-bolder: bolder !default;
241
287
 
242
288
  $font-weight-base: $font-weight-normal !default;
243
289
  $line-height-base: 1.5 !default;
@@ -249,11 +295,11 @@ $h4-font-size: $font-size-base * 1.5 !default;
249
295
  $h5-font-size: $font-size-base * 1.25 !default;
250
296
  $h6-font-size: $font-size-base !default;
251
297
 
252
- $headings-margin-bottom: ($spacer / 2) !default;
253
- $headings-font-family: inherit !default;
298
+ $headings-margin-bottom: $spacer / 2 !default;
299
+ $headings-font-family: null !default;
254
300
  $headings-font-weight: 500 !default;
255
301
  $headings-line-height: 1.2 !default;
256
- $headings-color: inherit !default;
302
+ $headings-color: null !default;
257
303
 
258
304
  $display1-size: 6rem !default;
259
305
  $display2-size: 5.5rem !default;
@@ -266,7 +312,7 @@ $display3-weight: 300 !default;
266
312
  $display4-weight: 300 !default;
267
313
  $display-line-height: $headings-line-height !default;
268
314
 
269
- $lead-font-size: ($font-size-base * 1.25) !default;
315
+ $lead-font-size: $font-size-base * 1.25 !default;
270
316
  $lead-font-weight: 300 !default;
271
317
 
272
318
  $small-font-size: 80% !default;
@@ -274,7 +320,8 @@ $small-font-size: 80% !default;
274
320
  $text-muted: $gray-600 !default;
275
321
 
276
322
  $blockquote-small-color: $gray-600 !default;
277
- $blockquote-font-size: ($font-size-base * 1.25) !default;
323
+ $blockquote-small-font-size: $small-font-size !default;
324
+ $blockquote-font-size: $font-size-base * 1.25 !default;
278
325
 
279
326
  $hr-border-color: rgba($black, .1) !default;
280
327
  $hr-border-width: $border-width !default;
@@ -300,22 +347,33 @@ $hr-margin-y: $spacer !default;
300
347
  $table-cell-padding: .75rem !default;
301
348
  $table-cell-padding-sm: .3rem !default;
302
349
 
303
- $table-bg: transparent !default;
350
+ $table-color: $body-color !default;
351
+ $table-bg: null !default;
304
352
  $table-accent-bg: rgba($black, .05) !default;
353
+ $table-hover-color: $table-color !default;
305
354
  $table-hover-bg: rgba($black, .075) !default;
306
355
  $table-active-bg: $table-hover-bg !default;
307
356
 
308
357
  $table-border-width: $border-width !default;
309
- $table-border-color: $gray-300 !default;
358
+ $table-border-color: $border-color !default;
310
359
 
311
360
  $table-head-bg: $gray-200 !default;
312
361
  $table-head-color: $gray-700 !default;
313
362
 
314
- $table-dark-bg: $gray-900 !default;
363
+ $table-dark-color: $white !default;
364
+ $table-dark-bg: $gray-800 !default;
315
365
  $table-dark-accent-bg: rgba($white, .05) !default;
366
+ $table-dark-hover-color: $table-dark-color !default;
316
367
  $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;
368
+ $table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;
369
+ $table-dark-color: $white !default;
370
+
371
+ $table-striped-order: odd !default;
372
+
373
+ $table-caption-color: $text-muted !default;
374
+
375
+ $table-bg-level: -9 !default;
376
+ $table-border-level: -6 !default;
319
377
 
320
378
 
321
379
  // Buttons + Forms
@@ -324,6 +382,8 @@ $table-dark-color: $body-bg !default;
324
382
 
325
383
  $input-btn-padding-y: .375rem !default;
326
384
  $input-btn-padding-x: .75rem !default;
385
+ $input-btn-font-family: null !default;
386
+ $input-btn-font-size: $font-size-base !default;
327
387
  $input-btn-line-height: $line-height-base !default;
328
388
 
329
389
  $input-btn-focus-width: .2rem !default;
@@ -332,10 +392,12 @@ $input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-colo
332
392
 
333
393
  $input-btn-padding-y-sm: .25rem !default;
334
394
  $input-btn-padding-x-sm: .5rem !default;
395
+ $input-btn-font-size-sm: $font-size-sm !default;
335
396
  $input-btn-line-height-sm: $line-height-sm !default;
336
397
 
337
398
  $input-btn-padding-y-lg: .5rem !default;
338
399
  $input-btn-padding-x-lg: 1rem !default;
400
+ $input-btn-font-size-lg: $font-size-lg !default;
339
401
  $input-btn-line-height-lg: $line-height-lg !default;
340
402
 
341
403
  $input-btn-border-width: $border-width !default;
@@ -347,14 +409,18 @@ $input-btn-border-width: $border-width !default;
347
409
 
348
410
  $btn-padding-y: $input-btn-padding-y !default;
349
411
  $btn-padding-x: $input-btn-padding-x !default;
412
+ $btn-font-family: $input-btn-font-family !default;
413
+ $btn-font-size: $input-btn-font-size !default;
350
414
  $btn-line-height: $input-btn-line-height !default;
351
415
 
352
416
  $btn-padding-y-sm: $input-btn-padding-y-sm !default;
353
417
  $btn-padding-x-sm: $input-btn-padding-x-sm !default;
418
+ $btn-font-size-sm: $input-btn-font-size-sm !default;
354
419
  $btn-line-height-sm: $input-btn-line-height-sm !default;
355
420
 
356
421
  $btn-padding-y-lg: $input-btn-padding-y-lg !default;
357
422
  $btn-padding-x-lg: $input-btn-padding-x-lg !default;
423
+ $btn-font-size-lg: $input-btn-font-size-lg !default;
358
424
  $btn-line-height-lg: $input-btn-line-height-lg !default;
359
425
 
360
426
  $btn-border-width: $input-btn-border-width !default;
@@ -380,16 +446,23 @@ $btn-transition: color .15s ease-in-out, background-color .15s ease
380
446
 
381
447
  // Forms
382
448
 
449
+ $label-margin-bottom: .5rem !default;
450
+
383
451
  $input-padding-y: $input-btn-padding-y !default;
384
452
  $input-padding-x: $input-btn-padding-x !default;
453
+ $input-font-family: $input-btn-font-family !default;
454
+ $input-font-size: $input-btn-font-size !default;
455
+ $input-font-weight: $font-weight-base !default;
385
456
  $input-line-height: $input-btn-line-height !default;
386
457
 
387
458
  $input-padding-y-sm: $input-btn-padding-y-sm !default;
388
459
  $input-padding-x-sm: $input-btn-padding-x-sm !default;
460
+ $input-font-size-sm: $input-btn-font-size-sm !default;
389
461
  $input-line-height-sm: $input-btn-line-height-sm !default;
390
462
 
391
463
  $input-padding-y-lg: $input-btn-padding-y-lg !default;
392
464
  $input-padding-x-lg: $input-btn-padding-x-lg !default;
465
+ $input-font-size-lg: $input-btn-font-size-lg !default;
393
466
  $input-line-height-lg: $input-btn-line-height-lg !default;
394
467
 
395
468
  $input-bg: $white !default;
@@ -411,17 +484,17 @@ $input-focus-width: $input-btn-focus-width !default;
411
484
  $input-focus-box-shadow: $input-btn-focus-box-shadow !default;
412
485
 
413
486
  $input-placeholder-color: $gray-600 !default;
487
+ $input-plaintext-color: $body-color !default;
414
488
 
415
489
  $input-height-border: $input-border-width * 2 !default;
416
490
 
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;
491
+ $input-height-inner: calc(#{$input-line-height * 1em} + #{$input-padding-y * 2}) !default;
492
+ $input-height-inner-half: calc(#{$input-line-height * .5em} + #{$input-padding-y}) !default;
493
+ $input-height-inner-quarter: calc(#{$input-line-height * .25em} + #{$input-padding-y / 2}) !default;
419
494
 
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;
495
+ $input-height: calc(#{$input-line-height * 1em} + #{$input-padding-y * 2} + #{$input-height-border}) !default;
496
+ $input-height-sm: calc(#{$input-line-height-sm * 1em} + #{$input-btn-padding-y-sm * 2} + #{$input-height-border}) !default;
497
+ $input-height-lg: calc(#{$input-line-height-lg * 1em} + #{$input-btn-padding-y-lg * 2} + #{$input-height-border}) !default;
425
498
 
426
499
  $input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
427
500
 
@@ -434,80 +507,131 @@ $form-check-input-margin-x: .25rem !default;
434
507
  $form-check-inline-margin-x: .75rem !default;
435
508
  $form-check-inline-input-margin-x: .3125rem !default;
436
509
 
510
+ $form-grid-gutter-width: 10px !default;
437
511
  $form-group-margin-bottom: 1rem !default;
438
512
 
439
513
  $input-group-addon-color: $input-color !default;
440
514
  $input-group-addon-bg: $gray-200 !default;
441
515
  $input-group-addon-border-color: $input-border-color !default;
442
516
 
443
- $custom-control-gutter: 1.5rem !default;
517
+ $custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
518
+
519
+ $custom-control-gutter: .5rem !default;
444
520
  $custom-control-spacer-x: 1rem !default;
445
521
 
446
522
  $custom-control-indicator-size: 1rem !default;
447
- $custom-control-indicator-bg: $gray-300 !default;
523
+ $custom-control-indicator-bg: $input-bg !default;
524
+
448
525
  $custom-control-indicator-bg-size: 50% 50% !default;
449
- $custom-control-indicator-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;
526
+ $custom-control-indicator-box-shadow: $input-box-shadow !default;
527
+ $custom-control-indicator-border-color: $gray-500 !default;
528
+ $custom-control-indicator-border-width: $input-border-width !default;
450
529
 
451
- $custom-control-indicator-disabled-bg: $gray-200 !default;
452
- $custom-control-label-disabled-color: $gray-600 !default;
530
+ $custom-control-indicator-disabled-bg: $input-disabled-bg !default;
531
+ $custom-control-label-disabled-color: $gray-600 !default;
453
532
 
454
533
  $custom-control-indicator-checked-color: $component-active-color !default;
455
534
  $custom-control-indicator-checked-bg: $component-active-bg !default;
456
535
  $custom-control-indicator-checked-disabled-bg: rgba(theme-color("primary"), .5) !default;
457
536
  $custom-control-indicator-checked-box-shadow: none !default;
537
+ $custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;
458
538
 
459
- $custom-control-indicator-focus-box-shadow: 0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;
539
+ $custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;
540
+ $custom-control-indicator-focus-border-color: $input-focus-border-color !default;
460
541
 
461
542
  $custom-control-indicator-active-color: $component-active-color !default;
462
543
  $custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;
463
544
  $custom-control-indicator-active-box-shadow: none !default;
545
+ $custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;
464
546
 
465
547
  $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;
548
+ $custom-checkbox-indicator-icon-checked: str-replace(url("data:image/svg+xml,%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;
467
549
 
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;
550
+ $custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;
551
+ $custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;
552
+ $custom-checkbox-indicator-icon-indeterminate: str-replace(url("data:image/svg+xml,%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;
553
+ $custom-checkbox-indicator-indeterminate-box-shadow: none !default;
554
+ $custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;
472
555
 
473
556
  $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;
557
+ $custom-radio-indicator-icon-checked: str-replace(url("data:image/svg+xml,%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;
558
+
559
+ $custom-switch-width: $custom-control-indicator-size * 1.75 !default;
560
+ $custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;
561
+ $custom-switch-indicator-size: calc(#{$custom-control-indicator-size} - #{$custom-control-indicator-border-width * 4}) !default;
475
562
 
476
- $custom-select-padding-y: .375rem !default;
477
- $custom-select-padding-x: .75rem !default;
563
+ $custom-select-padding-y: $input-padding-y !default;
564
+ $custom-select-padding-x: $input-padding-x !default;
565
+ $custom-select-font-family: $input-font-family !default;
566
+ $custom-select-font-size: $input-font-size !default;
478
567
  $custom-select-height: $input-height !default;
479
568
  $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;
569
+ $custom-select-font-weight: $input-font-weight !default;
570
+ $custom-select-line-height: $input-line-height !default;
481
571
  $custom-select-color: $input-color !default;
482
572
  $custom-select-disabled-color: $gray-600 !default;
483
- $custom-select-bg: $white !default;
573
+ $custom-select-bg: $input-bg !default;
484
574
  $custom-select-disabled-bg: $gray-200 !default;
485
575
  $custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions
486
576
  $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;
577
+ $custom-select-indicator: str-replace(url("data:image/svg+xml,%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;
578
+ $custom-select-background: $custom-select-indicator no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)
579
+
580
+ $custom-select-feedback-icon-padding-right: calc((1em + #{2 * $custom-select-padding-y}) * 3 / 4 + #{$custom-select-padding-x + $custom-select-indicator-padding}) !default;
581
+ $custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;
582
+ $custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;
583
+
584
+ $custom-select-border-width: $input-border-width !default;
489
585
  $custom-select-border-color: $input-border-color !default;
490
586
  $custom-select-border-radius: $border-radius !default;
587
+ $custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;
491
588
 
492
589
  $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;
590
+ $custom-select-focus-width: $input-focus-width !default;
591
+ $custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;
494
592
 
495
- $custom-select-font-size-sm: 75% !default;
593
+ $custom-select-padding-y-sm: $input-padding-y-sm !default;
594
+ $custom-select-padding-x-sm: $input-padding-x-sm !default;
595
+ $custom-select-font-size-sm: $input-font-size-sm !default;
496
596
  $custom-select-height-sm: $input-height-sm !default;
497
597
 
498
- $custom-select-font-size-lg: 125% !default;
598
+ $custom-select-padding-y-lg: $input-padding-y-lg !default;
599
+ $custom-select-padding-x-lg: $input-padding-x-lg !default;
600
+ $custom-select-font-size-lg: $input-font-size-lg !default;
499
601
  $custom-select-height-lg: $input-height-lg !default;
500
602
 
603
+ $custom-range-track-width: 100% !default;
604
+ $custom-range-track-height: .5rem !default;
605
+ $custom-range-track-cursor: pointer !default;
606
+ $custom-range-track-bg: $gray-300 !default;
607
+ $custom-range-track-border-radius: 1rem !default;
608
+ $custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;
609
+
610
+ $custom-range-thumb-width: 1rem !default;
611
+ $custom-range-thumb-height: $custom-range-thumb-width !default;
612
+ $custom-range-thumb-bg: $component-active-bg !default;
613
+ $custom-range-thumb-border: 0 !default;
614
+ $custom-range-thumb-border-radius: 1rem !default;
615
+ $custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;
616
+ $custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;
617
+ $custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge
618
+ $custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;
619
+ $custom-range-thumb-disabled-bg: $gray-500 !default;
620
+
501
621
  $custom-file-height: $input-height !default;
622
+ $custom-file-height-inner: $input-height-inner !default;
502
623
  $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;
624
+ $custom-file-focus-box-shadow: $input-focus-box-shadow !default;
625
+ $custom-file-disabled-bg: $input-disabled-bg !default;
626
+
627
+ $custom-file-padding-y: $input-padding-y !default;
628
+ $custom-file-padding-x: $input-padding-x !default;
629
+ $custom-file-line-height: $input-line-height !default;
630
+ $custom-file-font-family: $input-font-family !default;
631
+ $custom-file-font-weight: $input-font-weight !default;
508
632
  $custom-file-color: $input-color !default;
509
633
  $custom-file-bg: $input-bg !default;
510
- $custom-file-border-width: $input-btn-border-width !default;
634
+ $custom-file-border-width: $input-border-width !default;
511
635
  $custom-file-border-color: $input-border-color !default;
512
636
  $custom-file-border-radius: $input-border-radius !default;
513
637
  $custom-file-box-shadow: $input-box-shadow !default;
@@ -519,40 +643,32 @@ $custom-file-text: (
519
643
 
520
644
 
521
645
  // Form validation
646
+
522
647
  $form-feedback-margin-top: $form-text-margin-top !default;
523
648
  $form-feedback-font-size: $small-font-size !default;
524
649
  $form-feedback-valid-color: theme-color("success") !default;
525
650
  $form-feedback-invalid-color: theme-color("danger") !default;
526
651
 
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
-
652
+ $form-feedback-icon-valid-color: $form-feedback-valid-color !default;
653
+ $form-feedback-icon-valid: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath 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'/%3e%3c/svg%3e"), "#", "%23") !default;
654
+ $form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;
655
+ $form-feedback-icon-invalid: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$form-feedback-icon-invalid-color}' viewBox='-2 -2 7 7'%3e%3cpath stroke='#{$form-feedback-icon-invalid-color}' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E"), "#", "%23") !default;
656
+
657
+ $form-validation-states: () !default;
658
+ // stylelint-disable-next-line scss/dollar-variable-default
659
+ $form-validation-states: map-merge(
660
+ (
661
+ "valid": (
662
+ "color": $form-feedback-valid-color,
663
+ "icon": $form-feedback-icon-valid
664
+ ),
665
+ "invalid": (
666
+ "color": $form-feedback-invalid-color,
667
+ "icon": $form-feedback-icon-invalid
668
+ ),
669
+ ),
670
+ $form-validation-states
671
+ );
556
672
 
557
673
  // Z-index master list
558
674
  //
@@ -567,6 +683,7 @@ $zindex-modal: 1050 !default;
567
683
  $zindex-popover: 1060 !default;
568
684
  $zindex-tooltip: 1070 !default;
569
685
 
686
+
570
687
  // Navs
571
688
 
572
689
  $nav-link-padding-y: .5rem !default;
@@ -585,16 +702,20 @@ $nav-pills-border-radius: $border-radius !default;
585
702
  $nav-pills-link-active-color: $component-active-color !default;
586
703
  $nav-pills-link-active-bg: $component-active-bg !default;
587
704
 
705
+ $nav-divider-color: $gray-200 !default;
706
+ $nav-divider-margin-y: $spacer / 2 !default;
707
+
708
+
588
709
  // Navbar
589
710
 
590
- $navbar-padding-y: ($spacer / 2) !default;
711
+ $navbar-padding-y: $spacer / 2 !default;
591
712
  $navbar-padding-x: $spacer !default;
592
713
 
593
714
  $navbar-nav-link-padding-x: .5rem !default;
594
715
 
595
716
  $navbar-brand-font-size: $font-size-lg !default;
596
717
  // 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;
718
+ $nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;
598
719
  $navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;
599
720
  $navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;
600
721
 
@@ -607,16 +728,55 @@ $navbar-dark-color: rgba($white, .5) !default;
607
728
  $navbar-dark-hover-color: rgba($white, .75) !default;
608
729
  $navbar-dark-active-color: $white !default;
609
730
  $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;
731
+ $navbar-dark-toggler-icon-bg: str-replace(url("data:image/svg+xml,%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;
611
732
  $navbar-dark-toggler-border-color: rgba($white, .1) !default;
612
733
 
613
734
  $navbar-light-color: rgba($black, .5) !default;
614
735
  $navbar-light-hover-color: rgba($black, .7) !default;
615
736
  $navbar-light-active-color: rgba($black, .9) !default;
616
737
  $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;
738
+ $navbar-light-toggler-icon-bg: str-replace(url("data:image/svg+xml,%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;
618
739
  $navbar-light-toggler-border-color: rgba($black, .1) !default;
619
740
 
741
+ $navbar-light-brand-color: $navbar-light-active-color !default;
742
+ $navbar-light-brand-hover-color: $navbar-light-active-color !default;
743
+ $navbar-dark-brand-color: $navbar-dark-active-color !default;
744
+ $navbar-dark-brand-hover-color: $navbar-dark-active-color !default;
745
+
746
+
747
+ // Dropdowns
748
+ //
749
+ // Dropdown menu container and contents.
750
+
751
+ $dropdown-min-width: 10rem !default;
752
+ $dropdown-padding-y: .5rem !default;
753
+ $dropdown-spacer: .125rem !default;
754
+ $dropdown-font-size: $font-size-base !default;
755
+ $dropdown-color: $body-color !default;
756
+ $dropdown-bg: $white !default;
757
+ $dropdown-border-color: rgba($black, .15) !default;
758
+ $dropdown-border-radius: $border-radius !default;
759
+ $dropdown-border-width: $border-width !default;
760
+ $dropdown-inner-border-radius: calc(#{$dropdown-border-radius} - #{$dropdown-border-width}) !default;
761
+ $dropdown-divider-bg: $gray-200 !default;
762
+ $dropdown-divider-margin-y: $nav-divider-margin-y !default;
763
+ $dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;
764
+
765
+ $dropdown-link-color: $gray-900 !default;
766
+ $dropdown-link-hover-color: darken($gray-900, 5%) !default;
767
+ $dropdown-link-hover-bg: $gray-100 !default;
768
+
769
+ $dropdown-link-active-color: $component-active-color !default;
770
+ $dropdown-link-active-bg: $component-active-bg !default;
771
+
772
+ $dropdown-link-disabled-color: $gray-600 !default;
773
+
774
+ $dropdown-item-padding-y: .25rem !default;
775
+ $dropdown-item-padding-x: 1.5rem !default;
776
+
777
+ $dropdown-header-color: $gray-600 !default;
778
+
779
+
620
780
  // Pagination
621
781
 
622
782
  $pagination-padding-y: .5rem !default;
@@ -633,6 +793,7 @@ $pagination-border-width: $border-width !default;
633
793
  $pagination-border-color: $gray-300 !default;
634
794
 
635
795
  $pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;
796
+ $pagination-focus-outline: 0 !default;
636
797
 
637
798
  $pagination-hover-color: $link-hover-color !default;
638
799
  $pagination-hover-bg: $gray-200 !default;
@@ -650,6 +811,7 @@ $pagination-disabled-border-color: $gray-300 !default;
650
811
  // Jumbotron
651
812
 
652
813
  $jumbotron-padding: 2rem !default;
814
+ $jumbotron-color: null !default;
653
815
  $jumbotron-bg: $gray-200 !default;
654
816
 
655
817
 
@@ -662,11 +824,13 @@ $card-border-radius: $border-radius !default;
662
824
  $card-border-color: rgba($black, .125) !default;
663
825
  $card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;
664
826
  $card-cap-bg: rgba($black, .03) !default;
827
+ $card-cap-color: null !default;
828
+ $card-color: null !default;
665
829
  $card-bg: $white !default;
666
830
 
667
831
  $card-img-overlay-padding: 1.25rem !default;
668
832
 
669
- $card-group-margin: ($grid-gutter-width / 2) !default;
833
+ $card-group-margin: $grid-gutter-width / 2 !default;
670
834
  $card-deck-margin: $card-group-margin !default;
671
835
 
672
836
  $card-columns-count: 3 !default;
@@ -676,19 +840,27 @@ $card-columns-margin: $card-spacer-y !default;
676
840
 
677
841
  // Tooltips
678
842
 
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;
843
+ $tooltip-font-size: $font-size-sm !default;
844
+ $tooltip-max-width: 200px !default;
845
+ $tooltip-color: $white !default;
846
+ $tooltip-bg: $black !default;
847
+ $tooltip-border-radius: $border-radius !default;
848
+ $tooltip-opacity: .9 !default;
849
+ $tooltip-padding-y: .25rem !default;
850
+ $tooltip-padding-x: .5rem !default;
851
+ $tooltip-margin: 0 !default;
852
+
853
+ $tooltip-arrow-width: .8rem !default;
854
+ $tooltip-arrow-height: .4rem !default;
855
+ $tooltip-arrow-color: $tooltip-bg !default;
856
+
857
+ // Form tooltips must come after regular tooltips
858
+ $form-feedback-tooltip-padding-y: $tooltip-padding-y !default;
859
+ $form-feedback-tooltip-padding-x: $tooltip-padding-x !default;
860
+ $form-feedback-tooltip-font-size: $tooltip-font-size !default;
861
+ $form-feedback-tooltip-line-height: $line-height-base !default;
862
+ $form-feedback-tooltip-opacity: $tooltip-opacity !default;
863
+ $form-feedback-tooltip-border-radius: $tooltip-border-radius !default;
692
864
 
693
865
 
694
866
  // Popovers
@@ -717,6 +889,24 @@ $popover-arrow-color: $popover-bg !default;
717
889
  $popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;
718
890
 
719
891
 
892
+ // Toasts
893
+
894
+ $toast-max-width: 350px !default;
895
+ $toast-padding-x: .75rem !default;
896
+ $toast-padding-y: .25rem !default;
897
+ $toast-font-size: .875rem !default;
898
+ $toast-color: null !default;
899
+ $toast-background-color: rgba($white, .85) !default;
900
+ $toast-border-width: 1px !default;
901
+ $toast-border-color: rgba(0, 0, 0, .1) !default;
902
+ $toast-border-radius: .25rem !default;
903
+ $toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;
904
+
905
+ $toast-header-color: $gray-600 !default;
906
+ $toast-header-background-color: rgba($white, .85) !default;
907
+ $toast-header-border-color: rgba(0, 0, 0, .05) !default;
908
+
909
+
720
910
  // Badges
721
911
 
722
912
  $badge-font-size: 75% !default;
@@ -725,6 +915,9 @@ $badge-padding-y: .25em !default;
725
915
  $badge-padding-x: .4em !default;
726
916
  $badge-border-radius: $border-radius !default;
727
917
 
918
+ $badge-transition: $btn-transition !default;
919
+ $badge-focus-width: $input-btn-focus-width !default;
920
+
728
921
  $badge-pill-padding-x: .6em !default;
729
922
  // Use a higher than normal value to ensure completely rounded edges when
730
923
  // customizing padding or font-size on labels.
@@ -734,31 +927,38 @@ $badge-pill-border-radius: 10rem !default;
734
927
  // Modals
735
928
 
736
929
  // Padding applied to the modal body
737
- $modal-inner-padding: 1rem !default;
930
+ $modal-inner-padding: 1rem !default;
738
931
 
739
- $modal-dialog-margin: .5rem !default;
740
- $modal-dialog-margin-y-sm-up: 1.75rem !default;
932
+ $modal-dialog-margin: .5rem !default;
933
+ $modal-dialog-margin-y-sm-up: 1.75rem !default;
741
934
 
742
935
  $modal-title-line-height: $line-height-base !default;
743
936
 
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;
749
-
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;
757
-
937
+ $modal-content-color: null !default;
938
+ $modal-content-bg: $white !default;
939
+ $modal-content-border-color: rgba($black, .2) !default;
940
+ $modal-content-border-width: $border-width !default;
941
+ $modal-content-border-radius: $border-radius-lg !default;
942
+ $modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;
943
+ $modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;
944
+
945
+ $modal-backdrop-bg: $black !default;
946
+ $modal-backdrop-opacity: .5 !default;
947
+ $modal-header-border-color: $border-color !default;
948
+ $modal-footer-border-color: $modal-header-border-color !default;
949
+ $modal-header-border-width: $modal-content-border-width !default;
950
+ $modal-footer-border-width: $modal-header-border-width !default;
951
+ $modal-header-padding-y: 1rem !default;
952
+ $modal-header-padding-x: 1rem !default;
953
+ $modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility
954
+
955
+ $modal-xl: 1140px !default;
758
956
  $modal-lg: 800px !default;
759
957
  $modal-md: 500px !default;
760
958
  $modal-sm: 300px !default;
761
959
 
960
+ $modal-fade-transform: translate(0, -50px) !default;
961
+ $modal-show-transform: none !default;
762
962
  $modal-transition: transform .3s ease-out !default;
763
963
 
764
964
 
@@ -781,7 +981,7 @@ $alert-color-level: 6 !default;
781
981
  // Progress bars
782
982
 
783
983
  $progress-height: 1rem !default;
784
- $progress-font-size: ($font-size-base * .75) !default;
984
+ $progress-font-size: $font-size-base * .75 !default;
785
985
  $progress-bg: $gray-200 !default;
786
986
  $progress-border-radius: $border-radius !default;
787
987
  $progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;
@@ -790,8 +990,10 @@ $progress-bar-bg: theme-color("primary") !default;
790
990
  $progress-bar-animation-timing: 1s linear infinite !default;
791
991
  $progress-bar-transition: width .6s ease !default;
792
992
 
993
+
793
994
  // List group
794
995
 
996
+ $list-group-color: null !default;
795
997
  $list-group-bg: $white !default;
796
998
  $list-group-border-color: rgba($black, .125) !default;
797
999
  $list-group-border-width: $border-width !default;
@@ -842,29 +1044,47 @@ $breadcrumb-margin-bottom: 1rem !default;
842
1044
  $breadcrumb-bg: $gray-200 !default;
843
1045
  $breadcrumb-divider-color: $gray-600 !default;
844
1046
  $breadcrumb-active-color: $gray-600 !default;
845
- $breadcrumb-divider: "/" !default;
1047
+ $breadcrumb-divider: quote("/") !default;
1048
+
1049
+ $breadcrumb-border-radius: $border-radius !default;
846
1050
 
847
1051
 
848
1052
  // Carousel
849
1053
 
850
- $carousel-control-color: $white !default;
851
- $carousel-control-width: 15% !default;
852
- $carousel-control-opacity: .5 !default;
1054
+ $carousel-control-color: $white !default;
1055
+ $carousel-control-width: 15% !default;
1056
+ $carousel-control-opacity: .5 !default;
1057
+ $carousel-control-hover-opacity: .9 !default;
1058
+ $carousel-control-transition: opacity .15s ease !default;
1059
+
1060
+ $carousel-indicator-width: 30px !default;
1061
+ $carousel-indicator-height: 3px !default;
1062
+ $carousel-indicator-hit-area-height: 10px !default;
1063
+ $carousel-indicator-spacer: 3px !default;
1064
+ $carousel-indicator-active-bg: $white !default;
1065
+ $carousel-indicator-transition: opacity .6s ease !default;
1066
+
1067
+ $carousel-caption-width: 70% !default;
1068
+ $carousel-caption-color: $white !default;
1069
+
1070
+ $carousel-control-icon-width: 20px !default;
853
1071
 
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;
1072
+ $carousel-control-prev-icon-bg: str-replace(url("data:image/svg+xml,%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;
1073
+ $carousel-control-next-icon-bg: str-replace(url("data:image/svg+xml,%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;
858
1074
 
859
- $carousel-caption-width: 70% !default;
860
- $carousel-caption-color: $white !default;
1075
+ $carousel-transition-duration: .6s !default;
1076
+ $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
1077
 
862
- $carousel-control-icon-width: 20px !default;
863
1078
 
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;
1079
+ // Spinners
866
1080
 
867
- $carousel-transition: transform .6s ease !default;
1081
+ $spinner-width: 2rem !default;
1082
+ $spinner-height: $spinner-width !default;
1083
+ $spinner-border-width: .25em !default;
1084
+
1085
+ $spinner-width-sm: 1rem !default;
1086
+ $spinner-height-sm: $spinner-width-sm !default;
1087
+ $spinner-border-width-sm: .2em !default;
868
1088
 
869
1089
 
870
1090
  // Close
@@ -874,6 +1094,7 @@ $close-font-weight: $font-weight-bold !default;
874
1094
  $close-color: $black !default;
875
1095
  $close-text-shadow: 0 1px 0 $white !default;
876
1096
 
1097
+
877
1098
  // Code
878
1099
 
879
1100
  $code-font-size: 87.5% !default;
@@ -889,6 +1110,14 @@ $pre-color: $gray-900 !default;
889
1110
  $pre-scrollable-max-height: 340px !default;
890
1111
 
891
1112
 
1113
+ // Utilities
1114
+
1115
+ $displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;
1116
+ $overflows: auto, hidden !default;
1117
+ $positions: static, relative, absolute, fixed, sticky !default;
1118
+
1119
+
892
1120
  // Printing
1121
+
893
1122
  $print-page-size: a3 !default;
894
1123
  $print-body-min-width: map-get($grid-breakpoints, "lg") !default;