elixir-toolkit-theme 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/contributor-carousel-selection.html +2 -3
  3. data/_includes/contributor-minitiles-page.html +2 -3
  4. data/_includes/contributor-tiles-all.html +2 -3
  5. data/_includes/news.html +1 -1
  6. data/_includes/resource-table-all.html +1 -1
  7. data/_includes/section-navigation-tiles.html +20 -2
  8. data/_layouts/default.html +2 -2
  9. data/_layouts/page.html +1 -1
  10. data/_sass/bootstrap/_accordion.scss +9 -0
  11. data/_sass/bootstrap/_alert.scss +8 -11
  12. data/_sass/bootstrap/_button-group.scss +2 -2
  13. data/_sass/bootstrap/_buttons.scss +3 -3
  14. data/_sass/bootstrap/_card.scss +5 -0
  15. data/_sass/bootstrap/_carousel.scss +20 -2
  16. data/_sass/bootstrap/_close.scss +32 -9
  17. data/_sass/bootstrap/_dropdown.scss +1 -0
  18. data/_sass/bootstrap/_functions.scss +1 -1
  19. data/_sass/bootstrap/_grid.scss +6 -0
  20. data/_sass/bootstrap/_helpers.scss +2 -0
  21. data/_sass/bootstrap/_list-group.scss +12 -7
  22. data/_sass/bootstrap/_maps.scss +120 -0
  23. data/_sass/bootstrap/_mixins.scss +1 -2
  24. data/_sass/bootstrap/_nav.scss +42 -17
  25. data/_sass/bootstrap/_navbar.scss +15 -4
  26. data/_sass/bootstrap/_offcanvas.scss +4 -2
  27. data/_sass/bootstrap/_pagination.scss +1 -1
  28. data/_sass/bootstrap/_progress.scss +10 -1
  29. data/_sass/bootstrap/_reboot.scss +7 -7
  30. data/_sass/bootstrap/_root.scss +121 -10
  31. data/_sass/bootstrap/_tables.scss +18 -11
  32. data/_sass/bootstrap/_tooltip.scss +4 -5
  33. data/_sass/bootstrap/_utilities.scss +172 -13
  34. data/_sass/bootstrap/_variables-dark.scss +85 -0
  35. data/_sass/bootstrap/_variables.scss +268 -157
  36. data/_sass/bootstrap/bootstrap-grid.scss +1 -3
  37. data/_sass/bootstrap/bootstrap-reboot.scss +1 -0
  38. data/_sass/bootstrap/bootstrap-utilities.scss +1 -0
  39. data/_sass/bootstrap/bootstrap.scss +1 -0
  40. data/_sass/bootstrap/forms/_floating-labels.scss +23 -3
  41. data/_sass/bootstrap/forms/_form-check.scss +25 -12
  42. data/_sass/bootstrap/forms/_form-control.scss +24 -4
  43. data/_sass/bootstrap/forms/_form-range.scss +3 -3
  44. data/_sass/bootstrap/forms/_form-select.scss +12 -3
  45. data/_sass/bootstrap/forms/_input-group.scss +1 -1
  46. data/_sass/bootstrap/helpers/_color-bg.scss +1 -4
  47. data/_sass/bootstrap/helpers/_colored-links.scss +20 -2
  48. data/_sass/bootstrap/helpers/_focus-ring.scss +5 -0
  49. data/_sass/bootstrap/helpers/_icon-link.scss +25 -0
  50. data/_sass/bootstrap/helpers/_vr.scss +1 -1
  51. data/_sass/bootstrap/mixins/_alert.scss +4 -1
  52. data/_sass/bootstrap/mixins/_banner.scss +2 -4
  53. data/_sass/bootstrap/mixins/_caret.scss +30 -25
  54. data/_sass/bootstrap/mixins/_color-mode.scss +21 -0
  55. data/_sass/bootstrap/mixins/_forms.scss +8 -7
  56. data/_sass/bootstrap/mixins/_list-group.scss +2 -0
  57. data/_sass/bootstrap/mixins/_utilities.scss +1 -1
  58. data/_sass/bootstrap/mixins/_visually-hidden.scss +5 -1
  59. data/_sass/bootstrap/tests/jasmine.js +16 -0
  60. data/_sass/bootstrap/tests/mixins/_color-modes.test.scss +69 -0
  61. data/_sass/bootstrap/tests/mixins/_media-query-color-mode-full.test.scss +8 -0
  62. data/_sass/bootstrap/tests/mixins/_utilities.test.scss +393 -0
  63. data/_sass/bootstrap/tests/sass-true/register.js +14 -0
  64. data/_sass/bootstrap/tests/sass-true/runner.js +17 -0
  65. data/_sass/bootstrap/tests/utilities/_api.test.scss +75 -0
  66. data/_sass/bootstrap/vendor/_rfs.scss +23 -29
  67. data/assets/css/dataTables.bootstrap5.min.css +2 -2
  68. data/assets/css/main.scss +13 -1
  69. data/assets/js/anchor.min.js +3 -3
  70. data/assets/js/bootstrap.bundle.min.js +3 -3
  71. data/assets/js/bootstrap.bundle.min.js.map +1 -1
  72. data/assets/js/dataTables.bootstrap5.min.js +4 -14
  73. data/assets/js/jquery.dataTables.min.js +4 -187
  74. data/assets/js/jquery.min.js +2 -2
  75. data/assets/js/jquery.min.map +1 -1
  76. metadata +13 -2
@@ -5,9 +5,9 @@ $include-column-box-sizing: true !default;
5
5
 
6
6
  @import "functions";
7
7
  @import "variables";
8
+ @import "variables-dark";
8
9
  @import "maps";
9
10
 
10
- @import "mixins/lists";
11
11
  @import "mixins/breakpoints";
12
12
  @import "mixins/container";
13
13
  @import "mixins/grid";
@@ -15,8 +15,6 @@ $include-column-box-sizing: true !default;
15
15
 
16
16
  @import "vendor/rfs";
17
17
 
18
- @import "root";
19
-
20
18
  @import "containers";
21
19
  @import "grid";
22
20
 
@@ -3,6 +3,7 @@
3
3
 
4
4
  @import "functions";
5
5
  @import "variables";
6
+ @import "variables-dark";
6
7
  @import "maps";
7
8
  @import "mixins";
8
9
  @import "root";
@@ -4,6 +4,7 @@
4
4
  // Configuration
5
5
  @import "functions";
6
6
  @import "variables";
7
+ @import "variables-dark";
7
8
  @import "maps";
8
9
  @import "mixins";
9
10
  @import "utilities";
@@ -6,6 +6,7 @@
6
6
  // Configuration
7
7
  @import "functions";
8
8
  @import "variables";
9
+ @import "variables-dark";
9
10
  @import "maps";
10
11
  @import "mixins";
11
12
  @import "utilities";
@@ -5,6 +5,7 @@
5
5
  > .form-control-plaintext,
6
6
  > .form-select {
7
7
  height: $form-floating-height;
8
+ min-height: $form-floating-height;
8
9
  line-height: $form-floating-line-height;
9
10
  }
10
11
 
@@ -12,7 +13,7 @@
12
13
  position: absolute;
13
14
  top: 0;
14
15
  left: 0;
15
- width: 100%;
16
+ z-index: 2;
16
17
  height: 100%; // allow textareas
17
18
  padding: $form-floating-padding-y $form-floating-padding-x;
18
19
  overflow: hidden;
@@ -55,14 +56,24 @@
55
56
  > .form-control-plaintext,
56
57
  > .form-select {
57
58
  ~ label {
58
- opacity: $form-floating-label-opacity;
59
+ color: rgba(var(--#{$prefix}body-color-rgb), #{$form-floating-label-opacity});
59
60
  transform: $form-floating-label-transform;
61
+
62
+ &::after {
63
+ position: absolute;
64
+ inset: $form-floating-padding-y ($form-floating-padding-x * .5);
65
+ z-index: -1;
66
+ height: $form-floating-label-height;
67
+ content: "";
68
+ background-color: $input-bg;
69
+ @include border-radius($input-border-radius);
70
+ }
60
71
  }
61
72
  }
62
73
  // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
63
74
  > .form-control:-webkit-autofill {
64
75
  ~ label {
65
- opacity: $form-floating-label-opacity;
76
+ color: rgba(var(--#{$prefix}body-color-rgb), #{$form-floating-label-opacity});
66
77
  transform: $form-floating-label-transform;
67
78
  }
68
79
  }
@@ -72,4 +83,13 @@
72
83
  border-width: $input-border-width 0; // Required to properly position label text - as explained above
73
84
  }
74
85
  }
86
+
87
+ > :disabled ~ label,
88
+ > .form-control:disabled ~ label { // Required for `.form-control`s because of specificity
89
+ color: $form-floating-label-disabled-color;
90
+
91
+ &::after {
92
+ background-color: $input-disabled-bg;
93
+ }
94
+ }
75
95
  }
@@ -27,16 +27,19 @@
27
27
  }
28
28
 
29
29
  .form-check-input {
30
+ --#{$prefix}form-check-bg: #{$form-check-input-bg};
31
+
30
32
  width: $form-check-input-width;
31
33
  height: $form-check-input-width;
32
34
  margin-top: ($line-height-base - $form-check-input-width) * .5; // line-height minus check height
33
35
  vertical-align: top;
34
- background-color: $form-check-input-bg;
36
+ appearance: none;
37
+ background-color: var(--#{$prefix}form-check-bg);
38
+ background-image: var(--#{$prefix}form-check-bg-image);
35
39
  background-repeat: no-repeat;
36
40
  background-position: center;
37
41
  background-size: contain;
38
42
  border: $form-check-input-border;
39
- appearance: none;
40
43
  print-color-adjust: exact; // Keep themed appearance for print
41
44
  @include transition($form-check-transition);
42
45
 
@@ -65,17 +68,17 @@
65
68
 
66
69
  &[type="checkbox"] {
67
70
  @if $enable-gradients {
68
- background-image: escape-svg($form-check-input-checked-bg-image), var(--#{$prefix}gradient);
71
+ --#{$prefix}form-check-bg-image: #{escape-svg($form-check-input-checked-bg-image)}, var(--#{$prefix}gradient);
69
72
  } @else {
70
- background-image: escape-svg($form-check-input-checked-bg-image);
73
+ --#{$prefix}form-check-bg-image: #{escape-svg($form-check-input-checked-bg-image)};
71
74
  }
72
75
  }
73
76
 
74
77
  &[type="radio"] {
75
78
  @if $enable-gradients {
76
- background-image: escape-svg($form-check-radio-checked-bg-image), var(--#{$prefix}gradient);
79
+ --#{$prefix}form-check-bg-image: #{escape-svg($form-check-radio-checked-bg-image)}, var(--#{$prefix}gradient);
77
80
  } @else {
78
- background-image: escape-svg($form-check-radio-checked-bg-image);
81
+ --#{$prefix}form-check-bg-image: #{escape-svg($form-check-radio-checked-bg-image)};
79
82
  }
80
83
  }
81
84
  }
@@ -85,9 +88,9 @@
85
88
  border-color: $form-check-input-indeterminate-border-color;
86
89
 
87
90
  @if $enable-gradients {
88
- background-image: escape-svg($form-check-input-indeterminate-bg-image), var(--#{$prefix}gradient);
91
+ --#{$prefix}form-check-bg-image: #{escape-svg($form-check-input-indeterminate-bg-image)}, var(--#{$prefix}gradient);
89
92
  } @else {
90
- background-image: escape-svg($form-check-input-indeterminate-bg-image);
93
+ --#{$prefix}form-check-bg-image: #{escape-svg($form-check-input-indeterminate-bg-image)};
91
94
  }
92
95
  }
93
96
 
@@ -121,24 +124,26 @@
121
124
  padding-left: $form-switch-padding-start;
122
125
 
123
126
  .form-check-input {
127
+ --#{$prefix}form-switch-bg: #{escape-svg($form-switch-bg-image)};
128
+
124
129
  width: $form-switch-width;
125
130
  margin-left: $form-switch-padding-start * -1;
126
- background-image: escape-svg($form-switch-bg-image);
131
+ background-image: var(--#{$prefix}form-switch-bg);
127
132
  background-position: left center;
128
133
  @include border-radius($form-switch-border-radius);
129
134
  @include transition($form-switch-transition);
130
135
 
131
136
  &:focus {
132
- background-image: escape-svg($form-switch-focus-bg-image);
137
+ --#{$prefix}form-switch-bg: #{escape-svg($form-switch-focus-bg-image)};
133
138
  }
134
139
 
135
140
  &:checked {
136
141
  background-position: $form-switch-checked-bg-position;
137
142
 
138
143
  @if $enable-gradients {
139
- background-image: escape-svg($form-switch-checked-bg-image), var(--#{$prefix}gradient);
144
+ --#{$prefix}form-switch-bg: #{escape-svg($form-switch-checked-bg-image)}, var(--#{$prefix}gradient);
140
145
  } @else {
141
- background-image: escape-svg($form-switch-checked-bg-image);
146
+ --#{$prefix}form-switch-bg: #{escape-svg($form-switch-checked-bg-image)};
142
147
  }
143
148
  }
144
149
  }
@@ -173,3 +178,11 @@
173
178
  }
174
179
  }
175
180
  }
181
+
182
+ @if $enable-dark-mode {
183
+ @include color-mode(dark) {
184
+ .form-switch .form-check-input:not(:checked):not(:focus) {
185
+ --#{$prefix}form-switch-bg: #{escape-svg($form-switch-bg-image-dark)};
186
+ }
187
+ }
188
+ }
@@ -11,10 +11,10 @@
11
11
  font-weight: $input-font-weight;
12
12
  line-height: $input-line-height;
13
13
  color: $input-color;
14
+ appearance: none; // Fix appearance for date inputs in Safari
14
15
  background-color: $input-bg;
15
16
  background-clip: padding-box;
16
17
  border: $input-border-width solid $input-border-color;
17
- appearance: none; // Fix appearance for date inputs in Safari
18
18
 
19
19
  // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.
20
20
  @include border-radius($input-border-radius, 0);
@@ -44,12 +44,31 @@
44
44
  }
45
45
  }
46
46
 
47
- // Add some height to date inputs on iOS
48
- // https://github.com/twbs/bootstrap/issues/23307
49
- // TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved
50
47
  &::-webkit-date-and-time-value {
48
+ // On Android Chrome, form-control's "width: 100%" makes the input width too small
49
+ // Tested under Android 11 / Chrome 89, Android 12 / Chrome 100, Android 13 / Chrome 109
50
+ //
51
+ // On iOS Safari, form-control's "appearance: none" + "width: 100%" makes the input width too small
52
+ // Tested under iOS 16.2 / Safari 16.2
53
+ min-width: 85px; // Seems to be a good minimum safe width
54
+
55
+ // Add some height to date inputs on iOS
56
+ // https://github.com/twbs/bootstrap/issues/23307
57
+ // TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved
51
58
  // Multiply line-height by 1em if it has no unit
52
59
  height: if(unit($input-line-height) == "", $input-line-height * 1em, $input-line-height);
60
+
61
+ // Android Chrome type="date" is taller than the other inputs
62
+ // because of "margin: 1px 24px 1px 4px" inside the shadow DOM
63
+ // Tested under Android 11 / Chrome 89, Android 12 / Chrome 100, Android 13 / Chrome 109
64
+ margin: 0;
65
+ }
66
+
67
+ // Prevent excessive date input height in Webkit
68
+ // https://github.com/twbs/bootstrap/issues/34433
69
+ &::-webkit-datetime-edit {
70
+ display: block;
71
+ padding: 0;
53
72
  }
54
73
 
55
74
  // Placeholder
@@ -186,6 +205,7 @@ textarea {
186
205
  }
187
206
 
188
207
  &::-webkit-color-swatch {
208
+ border: 0 !important; // stylelint-disable-line declaration-no-important
189
209
  @include border-radius($input-border-radius);
190
210
  }
191
211
 
@@ -8,8 +8,8 @@
8
8
  width: 100%;
9
9
  height: add($form-range-thumb-height, $form-range-thumb-focus-box-shadow-width * 2);
10
10
  padding: 0; // Need to reset padding
11
- background-color: transparent;
12
11
  appearance: none;
12
+ background-color: transparent;
13
13
 
14
14
  &:focus {
15
15
  outline: 0;
@@ -28,12 +28,12 @@
28
28
  width: $form-range-thumb-width;
29
29
  height: $form-range-thumb-height;
30
30
  margin-top: ($form-range-track-height - $form-range-thumb-height) * .5; // Webkit specific
31
+ appearance: none;
31
32
  @include gradient-bg($form-range-thumb-bg);
32
33
  border: $form-range-thumb-border;
33
34
  @include border-radius($form-range-thumb-border-radius);
34
35
  @include box-shadow($form-range-thumb-box-shadow);
35
36
  @include transition($form-range-thumb-transition);
36
- appearance: none;
37
37
 
38
38
  &:active {
39
39
  @include gradient-bg($form-range-thumb-active-bg);
@@ -54,12 +54,12 @@
54
54
  &::-moz-range-thumb {
55
55
  width: $form-range-thumb-width;
56
56
  height: $form-range-thumb-height;
57
+ appearance: none;
57
58
  @include gradient-bg($form-range-thumb-bg);
58
59
  border: $form-range-thumb-border;
59
60
  @include border-radius($form-range-thumb-border-radius);
60
61
  @include box-shadow($form-range-thumb-box-shadow);
61
62
  @include transition($form-range-thumb-transition);
62
- appearance: none;
63
63
 
64
64
  &:active {
65
65
  @include gradient-bg($form-range-thumb-active-bg);
@@ -4,17 +4,19 @@
4
4
  // https://primer.github.io/.
5
5
 
6
6
  .form-select {
7
+ --#{$prefix}form-select-bg-img: #{escape-svg($form-select-indicator)};
8
+
7
9
  display: block;
8
10
  width: 100%;
9
11
  padding: $form-select-padding-y $form-select-indicator-padding $form-select-padding-y $form-select-padding-x;
10
- -moz-padding-start: subtract($form-select-padding-x, 3px); // See https://github.com/twbs/bootstrap/issues/32636
11
12
  font-family: $form-select-font-family;
12
13
  @include font-size($form-select-font-size);
13
14
  font-weight: $form-select-font-weight;
14
15
  line-height: $form-select-line-height;
15
16
  color: $form-select-color;
17
+ appearance: none;
16
18
  background-color: $form-select-bg;
17
- background-image: escape-svg($form-select-indicator);
19
+ background-image: var(--#{$prefix}form-select-bg-img), var(--#{$prefix}form-select-bg-icon, none);
18
20
  background-repeat: no-repeat;
19
21
  background-position: $form-select-bg-position;
20
22
  background-size: $form-select-bg-size;
@@ -22,7 +24,6 @@
22
24
  @include border-radius($form-select-border-radius, 0);
23
25
  @include box-shadow($form-select-box-shadow);
24
26
  @include transition($form-select-transition);
25
- appearance: none;
26
27
 
27
28
  &:focus {
28
29
  border-color: $form-select-focus-border-color;
@@ -69,3 +70,11 @@
69
70
  @include font-size($form-select-font-size-lg);
70
71
  @include border-radius($form-select-border-radius-lg);
71
72
  }
73
+
74
+ @if $enable-dark-mode {
75
+ @include color-mode(dark) {
76
+ .form-select {
77
+ --#{$prefix}form-select-bg-img: #{escape-svg($form-select-indicator-dark)};
78
+ }
79
+ }
80
+ }
@@ -121,7 +121,7 @@
121
121
  }
122
122
 
123
123
  > :not(:first-child):not(.dropdown-menu)#{$validation-messages} {
124
- margin-left: -$input-border-width;
124
+ margin-left: calc(#{$input-border-width} * -1); // stylelint-disable-line function-disallowed-list
125
125
  @include border-start-radius(0);
126
126
  }
127
127
 
@@ -1,10 +1,7 @@
1
- // stylelint-disable function-name-case
2
-
3
1
  // All-caps `RGBA()` function used because of this Sass bug: https://github.com/sass/node-sass/issues/2251
4
2
  @each $color, $value in $theme-colors {
5
- $color-rgb: to-rgb($value);
6
3
  .text-bg-#{$color} {
7
4
  color: color-contrast($value) if($enable-important-utilities, !important, null);
8
- background-color: RGBA($color-rgb, var(--#{$prefix}bg-opacity, 1)) if($enable-important-utilities, !important, null);
5
+ background-color: RGBA(var(--#{$prefix}#{$color}-rgb), var(--#{$prefix}bg-opacity, 1)) if($enable-important-utilities, !important, null);
9
6
  }
10
7
  }
@@ -1,12 +1,30 @@
1
+ // All-caps `RGBA()` function used because of this Sass bug: https://github.com/sass/node-sass/issues/2251
1
2
  @each $color, $value in $theme-colors {
2
3
  .link-#{$color} {
3
- color: $value !important; // stylelint-disable-line declaration-no-important
4
+ color: RGBA(var(--#{$prefix}#{$color}-rgb), var(--#{$prefix}link-opacity, 1)) if($enable-important-utilities, !important, null);
5
+ text-decoration-color: RGBA(var(--#{$prefix}#{$color}-rgb), var(--#{$prefix}link-underline-opacity, 1)) if($enable-important-utilities, !important, null);
4
6
 
5
7
  @if $link-shade-percentage != 0 {
6
8
  &:hover,
7
9
  &:focus {
8
- color: if(color-contrast($value) == $color-contrast-light, shade-color($value, $link-shade-percentage), tint-color($value, $link-shade-percentage)) !important; // stylelint-disable-line declaration-no-important
10
+ $hover-color: if(color-contrast($value) == $color-contrast-light, shade-color($value, $link-shade-percentage), tint-color($value, $link-shade-percentage));
11
+ color: RGBA(#{to-rgb($hover-color)}, var(--#{$prefix}link-opacity, 1)) if($enable-important-utilities, !important, null);
12
+ text-decoration-color: RGBA(to-rgb($hover-color), var(--#{$prefix}link-underline-opacity, 1)) if($enable-important-utilities, !important, null);
9
13
  }
10
14
  }
11
15
  }
12
16
  }
17
+
18
+ // One-off special link helper as a bridge until v6
19
+ .link-body-emphasis {
20
+ color: RGBA(var(--#{$prefix}emphasis-color-rgb), var(--#{$prefix}link-opacity, 1)) if($enable-important-utilities, !important, null);
21
+ text-decoration-color: RGBA(var(--#{$prefix}emphasis-color-rgb), var(--#{$prefix}link-underline-opacity, 1)) if($enable-important-utilities, !important, null);
22
+
23
+ @if $link-shade-percentage != 0 {
24
+ &:hover,
25
+ &:focus {
26
+ color: RGBA(var(--#{$prefix}emphasis-color-rgb), var(--#{$prefix}link-opacity, .75)) if($enable-important-utilities, !important, null);
27
+ text-decoration-color: RGBA(var(--#{$prefix}emphasis-color-rgb), var(--#{$prefix}link-underline-opacity, .75)) if($enable-important-utilities, !important, null);
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,5 @@
1
+ .focus-ring:focus {
2
+ outline: 0;
3
+ // By default, there is no `--bs-focus-ring-x`, `--bs-focus-ring-y`, or `--bs-focus-ring-blur`, but we provide CSS variables with fallbacks to initial `0` values
4
+ box-shadow: var(--#{$prefix}focus-ring-x, 0) var(--#{$prefix}focus-ring-y, 0) var(--#{$prefix}focus-ring-blur, 0) var(--#{$prefix}focus-ring-width) var(--#{$prefix}focus-ring-color);
5
+ }
@@ -0,0 +1,25 @@
1
+ .icon-link {
2
+ display: inline-flex;
3
+ gap: $icon-link-gap;
4
+ align-items: center;
5
+ text-decoration-color: rgba(var(--#{$prefix}link-color-rgb), var(--#{$prefix}link-opacity, .5));
6
+ text-underline-offset: $icon-link-underline-offset;
7
+ backface-visibility: hidden;
8
+
9
+ > .bi {
10
+ flex-shrink: 0;
11
+ width: $icon-link-icon-size;
12
+ height: $icon-link-icon-size;
13
+ fill: currentcolor;
14
+ @include transition($icon-link-icon-transition);
15
+ }
16
+ }
17
+
18
+ .icon-link-hover {
19
+ &:hover,
20
+ &:focus-visible {
21
+ > .bi {
22
+ transform: var(--#{$prefix}icon-link-transform, $icon-link-icon-transform);
23
+ }
24
+ }
25
+ }
@@ -1,7 +1,7 @@
1
1
  .vr {
2
2
  display: inline-block;
3
3
  align-self: stretch;
4
- width: 1px;
4
+ width: $vr-border-width;
5
5
  min-height: 1em;
6
6
  background-color: currentcolor;
7
7
  opacity: $hr-opacity;
@@ -1,15 +1,18 @@
1
+ @include deprecate("`alert-variant()`", "v5.3.0", "v6.0.0");
2
+
1
3
  // scss-docs-start alert-variant-mixin
2
4
  @mixin alert-variant($background, $border, $color) {
3
5
  --#{$prefix}alert-color: #{$color};
4
6
  --#{$prefix}alert-bg: #{$background};
5
7
  --#{$prefix}alert-border-color: #{$border};
8
+ --#{$prefix}alert-link-color: #{shade-color($color, 20%)};
6
9
 
7
10
  @if $enable-gradients {
8
11
  background-image: var(--#{$prefix}gradient);
9
12
  }
10
13
 
11
14
  .alert-link {
12
- color: shade-color($color, 20%);
15
+ color: var(--#{$prefix}alert-link-color);
13
16
  }
14
17
  }
15
18
  // scss-docs-end alert-variant-mixin
@@ -1,9 +1,7 @@
1
1
  @mixin bsBanner($file) {
2
2
  /*!
3
- * Bootstrap #{$file} v5.2.3 (https://getbootstrap.com/)
4
- * Copyright 2011-2022 The Bootstrap Authors
5
- * Copyright 2011-2022 Twitter, Inc.
3
+ * Bootstrap #{$file} v5.3.1 (https://getbootstrap.com/)
4
+ * Copyright 2011-2023 The Bootstrap Authors
6
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
7
6
  */
8
7
  }
9
-
@@ -1,44 +1,49 @@
1
1
  // scss-docs-start caret-mixins
2
- @mixin caret-down {
3
- border-top: $caret-width solid;
4
- border-right: $caret-width solid transparent;
2
+ @mixin caret-down($width: $caret-width) {
3
+ border-top: $width solid;
4
+ border-right: $width solid transparent;
5
5
  border-bottom: 0;
6
- border-left: $caret-width solid transparent;
6
+ border-left: $width solid transparent;
7
7
  }
8
8
 
9
- @mixin caret-up {
9
+ @mixin caret-up($width: $caret-width) {
10
10
  border-top: 0;
11
- border-right: $caret-width solid transparent;
12
- border-bottom: $caret-width solid;
13
- border-left: $caret-width solid transparent;
11
+ border-right: $width solid transparent;
12
+ border-bottom: $width solid;
13
+ border-left: $width solid transparent;
14
14
  }
15
15
 
16
- @mixin caret-end {
17
- border-top: $caret-width solid transparent;
16
+ @mixin caret-end($width: $caret-width) {
17
+ border-top: $width solid transparent;
18
18
  border-right: 0;
19
- border-bottom: $caret-width solid transparent;
20
- border-left: $caret-width solid;
19
+ border-bottom: $width solid transparent;
20
+ border-left: $width solid;
21
21
  }
22
22
 
23
- @mixin caret-start {
24
- border-top: $caret-width solid transparent;
25
- border-right: $caret-width solid;
26
- border-bottom: $caret-width solid transparent;
23
+ @mixin caret-start($width: $caret-width) {
24
+ border-top: $width solid transparent;
25
+ border-right: $width solid;
26
+ border-bottom: $width solid transparent;
27
27
  }
28
28
 
29
- @mixin caret($direction: down) {
29
+ @mixin caret(
30
+ $direction: down,
31
+ $width: $caret-width,
32
+ $spacing: $caret-spacing,
33
+ $vertical-align: $caret-vertical-align
34
+ ) {
30
35
  @if $enable-caret {
31
36
  &::after {
32
37
  display: inline-block;
33
- margin-left: $caret-spacing;
34
- vertical-align: $caret-vertical-align;
38
+ margin-left: $spacing;
39
+ vertical-align: $vertical-align;
35
40
  content: "";
36
41
  @if $direction == down {
37
- @include caret-down();
42
+ @include caret-down($width);
38
43
  } @else if $direction == up {
39
- @include caret-up();
44
+ @include caret-up($width);
40
45
  } @else if $direction == end {
41
- @include caret-end();
46
+ @include caret-end($width);
42
47
  }
43
48
  }
44
49
 
@@ -49,10 +54,10 @@
49
54
 
50
55
  &::before {
51
56
  display: inline-block;
52
- margin-right: $caret-spacing;
53
- vertical-align: $caret-vertical-align;
57
+ margin-right: $spacing;
58
+ vertical-align: $vertical-align;
54
59
  content: "";
55
- @include caret-start();
60
+ @include caret-start($width);
56
61
  }
57
62
  }
58
63
 
@@ -0,0 +1,21 @@
1
+ // scss-docs-start color-mode-mixin
2
+ @mixin color-mode($mode: light, $root: false) {
3
+ @if $color-mode-type == "media-query" {
4
+ @if $root == true {
5
+ @media (prefers-color-scheme: $mode) {
6
+ :root {
7
+ @content;
8
+ }
9
+ }
10
+ } @else {
11
+ @media (prefers-color-scheme: $mode) {
12
+ @content;
13
+ }
14
+ }
15
+ } @else {
16
+ [data-bs-theme="#{$mode}"] {
17
+ @content;
18
+ }
19
+ }
20
+ }
21
+ // scss-docs-end color-mode-mixin
@@ -21,7 +21,8 @@
21
21
  $icon,
22
22
  $tooltip-color: color-contrast($color),
23
23
  $tooltip-bg-color: rgba($color, $form-feedback-tooltip-opacity),
24
- $focus-box-shadow: 0 0 $input-btn-focus-blur $input-focus-width rgba($color, $input-btn-focus-color-opacity)
24
+ $focus-box-shadow: 0 0 $input-btn-focus-blur $input-focus-width rgba($color, $input-btn-focus-color-opacity),
25
+ $border-color: $color
25
26
  ) {
26
27
  .#{$state}-feedback {
27
28
  display: none;
@@ -56,7 +57,7 @@
56
57
 
57
58
  .form-control {
58
59
  @include form-validation-state-selector($state) {
59
- border-color: $color;
60
+ border-color: $border-color;
60
61
 
61
62
  @if $enable-validation-icons {
62
63
  padding-right: $input-height-inner;
@@ -67,7 +68,7 @@
67
68
  }
68
69
 
69
70
  &:focus {
70
- border-color: $color;
71
+ border-color: $border-color;
71
72
  box-shadow: $focus-box-shadow;
72
73
  }
73
74
  }
@@ -85,20 +86,20 @@
85
86
 
86
87
  .form-select {
87
88
  @include form-validation-state-selector($state) {
88
- border-color: $color;
89
+ border-color: $border-color;
89
90
 
90
91
  @if $enable-validation-icons {
91
92
  &:not([multiple]):not([size]),
92
93
  &:not([multiple])[size="1"] {
94
+ --#{$prefix}form-select-bg-icon: #{escape-svg($icon)};
93
95
  padding-right: $form-select-feedback-icon-padding-end;
94
- background-image: escape-svg($form-select-indicator), escape-svg($icon);
95
96
  background-position: $form-select-bg-position, $form-select-feedback-icon-position;
96
97
  background-size: $form-select-bg-size, $form-select-feedback-icon-size;
97
98
  }
98
99
  }
99
100
 
100
101
  &:focus {
101
- border-color: $color;
102
+ border-color: $border-color;
102
103
  box-shadow: $focus-box-shadow;
103
104
  }
104
105
  }
@@ -114,7 +115,7 @@
114
115
 
115
116
  .form-check-input {
116
117
  @include form-validation-state-selector($state) {
117
- border-color: $color;
118
+ border-color: $border-color;
118
119
 
119
120
  &:checked {
120
121
  background-color: $color;
@@ -1,3 +1,5 @@
1
+ @include deprecate("`list-group-item-variant()`", "v5.3.0", "v6.0.0");
2
+
1
3
  // List Groups
2
4
 
3
5
  // scss-docs-start list-group-mixin
@@ -1,6 +1,6 @@
1
1
  // Utility generator
2
2
  // Used to generate utilities & print utilities
3
- @mixin generate-utility($utility, $infix, $is-rfs-media-query: false) {
3
+ @mixin generate-utility($utility, $infix: "", $is-rfs-media-query: false) {
4
4
  $values: map-get($utility, values);
5
5
 
6
6
  // If the values are a list or string, convert it into a map