blue-web 1.11.0 → 1.11.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.
package/dist/merged.scss CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Blue Web v1.11.0 (https://bruegmann.github.io/blue-web)
2
+ * Blue Web v1.11.1 (https://bruegmann.github.io/blue-web)
3
3
  * Licensed under GNU General Public License v3.0 (https://github.com/bruegmann/blue-web/blob/master/LICENSE).
4
4
  */
5
5
 
@@ -214,7 +214,7 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003
214
214
  @return if($l1 > $l2, divide($l1 + .05, $l2 + .05), divide($l2 + .05, $l1 + .05));
215
215
  }
216
216
 
217
- // Return WCAG2.1 relative luminance
217
+ // Return WCAG2.2 relative luminance
218
218
  // See https://www.w3.org/TR/WCAG/#dfn-relative-luminance
219
219
  // See https://www.w3.org/TR/WCAG/#dfn-contrast-ratio
220
220
  @function luminance($color) {
@@ -407,8 +407,8 @@ $colors: (
407
407
  ) !default;
408
408
  // scss-docs-end colors-map
409
409
 
410
- // The contrast ratio to reach against white, to determine if color changes from "light" to "dark". Acceptable values for WCAG 2.0 are 3, 4.5 and 7.
411
- // See https://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast
410
+ // The contrast ratio to reach against white, to determine if color changes from "light" to "dark". Acceptable values for WCAG 2.2 are 3, 4.5 and 7.
411
+ // See https://www.w3.org/TR/WCAG/#contrast-minimum
412
412
  $min-contrast-ratio: 4.5 !default;
413
413
 
414
414
  // Customize the light and dark text colors for use in our color contrast function.
@@ -1431,7 +1431,7 @@ $form-feedback-valid-color: $success !default;
1431
1431
  $form-feedback-invalid-color: $danger !default;
1432
1432
 
1433
1433
  $form-feedback-icon-valid-color: $form-feedback-valid-color !default;
1434
- $form-feedback-icon-valid: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73.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;
1434
+ $form-feedback-icon-valid: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'><path fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73.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.1'/></svg>") !default;
1435
1435
  $form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;
1436
1436
  $form-feedback-icon-invalid: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}'><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;
1437
1437
  // scss-docs-end form-feedback-variables
@@ -1642,7 +1642,7 @@ $pagination-color: var(--#{$prefix}link-color) !default;
1642
1642
  $pagination-bg: var(--#{$prefix}body-bg) !default;
1643
1643
  $pagination-border-radius: var(--#{$prefix}border-radius) !default;
1644
1644
  $pagination-border-width: var(--#{$prefix}border-width) !default;
1645
- $pagination-margin-start: calc(#{$pagination-border-width} * -1) !default; // stylelint-disable-line function-disallowed-list
1645
+ $pagination-margin-start: calc(-1 * #{$pagination-border-width}) !default; // stylelint-disable-line function-disallowed-list
1646
1646
  $pagination-border-color: var(--#{$prefix}border-color) !default;
1647
1647
 
1648
1648
  $pagination-focus-color: var(--#{$prefix}link-hover-color) !default;
@@ -1734,8 +1734,8 @@ $accordion-icon-active-color: $primary-text-emphasis !default;
1734
1734
  $accordion-icon-transition: transform .2s ease-in-out !default;
1735
1735
  $accordion-icon-transform: rotate(-180deg) !default;
1736
1736
 
1737
- $accordion-button-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='#{$accordion-icon-color}' stroke-linecap='round' stroke-linejoin='round'><path d='M2 5L8 11L14 5'/></svg>") !default;
1738
- $accordion-button-active-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='#{$accordion-icon-active-color}' stroke-linecap='round' stroke-linejoin='round'><path d='M2 5L8 11L14 5'/></svg>") !default;
1737
+ $accordion-button-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='#{$accordion-icon-color}' stroke-linecap='round' stroke-linejoin='round'><path d='m2 5 6 6 6-6'/></svg>") !default;
1738
+ $accordion-button-active-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='#{$accordion-icon-active-color}' stroke-linecap='round' stroke-linejoin='round'><path d='m2 5 6 6 6-6'/></svg>") !default;
1739
1739
  // scss-docs-end accordion-variables
1740
1740
 
1741
1741
  // Tooltips
@@ -1847,7 +1847,7 @@ $modal-dialog-margin-y-sm-up: 1.75rem !default;
1847
1847
 
1848
1848
  $modal-title-line-height: $line-height-base !default;
1849
1849
 
1850
- $modal-content-color: null !default;
1850
+ $modal-content-color: var(--#{$prefix}body-color) !default;
1851
1851
  $modal-content-bg: var(--#{$prefix}body-bg) !default;
1852
1852
  $modal-content-border-color: var(--#{$prefix}border-color-translucent) !default;
1853
1853
  $modal-content-border-width: var(--#{$prefix}border-width) !default;
@@ -1992,6 +1992,7 @@ $carousel-control-width: 15% !default;
1992
1992
  $carousel-control-opacity: .5 !default;
1993
1993
  $carousel-control-hover-opacity: .9 !default;
1994
1994
  $carousel-control-transition: opacity .15s ease !default;
1995
+ $carousel-control-icon-filter: null !default;
1995
1996
 
1996
1997
  $carousel-indicator-width: 30px !default;
1997
1998
  $carousel-indicator-height: 3px !default;
@@ -2009,17 +2010,17 @@ $carousel-caption-spacer: 1.25rem !default;
2009
2010
 
2010
2011
  $carousel-control-icon-width: 2rem !default;
2011
2012
 
2012
- $carousel-control-prev-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/></svg>") !default;
2013
- $carousel-control-next-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/></svg>") !default;
2013
+ $carousel-control-prev-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/></svg>") !default;
2014
+ $carousel-control-next-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$carousel-control-color}'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/></svg>") !default;
2014
2015
 
2015
2016
  $carousel-transition-duration: .6s !default;
2016
2017
  $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`)
2017
2018
  // scss-docs-end carousel-variables
2018
2019
 
2019
2020
  // scss-docs-start carousel-dark-variables
2020
- $carousel-dark-indicator-active-bg: $black !default;
2021
- $carousel-dark-caption-color: $black !default;
2022
- $carousel-dark-control-icon-filter: invert(1) grayscale(100) !default;
2021
+ $carousel-dark-indicator-active-bg: $black !default; // Deprecated in v5.3.4
2022
+ $carousel-dark-caption-color: $black !default; // Deprecated in v5.3.4
2023
+ $carousel-dark-control-icon-filter: invert(1) grayscale(100) !default; // Deprecated in v5.3.4
2023
2024
  // scss-docs-end carousel-dark-variables
2024
2025
 
2025
2026
 
@@ -2046,13 +2047,14 @@ $btn-close-height: $btn-close-width !default;
2046
2047
  $btn-close-padding-x: .25em !default;
2047
2048
  $btn-close-padding-y: $btn-close-padding-x !default;
2048
2049
  $btn-close-color: $black !default;
2049
- $btn-close-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>") !default;
2050
+ $btn-close-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414'/></svg>") !default;
2050
2051
  $btn-close-focus-shadow: $focus-ring-box-shadow !default;
2051
2052
  $btn-close-opacity: .5 !default;
2052
2053
  $btn-close-hover-opacity: .75 !default;
2053
2054
  $btn-close-focus-opacity: 1 !default;
2054
2055
  $btn-close-disabled-opacity: .25 !default;
2055
- $btn-close-white-filter: invert(1) grayscale(100%) brightness(200%) !default;
2056
+ $btn-close-filter: null !default;
2057
+ $btn-close-white-filter: invert(1) grayscale(100%) brightness(200%) !default; // Deprecated in v5.3.4
2056
2058
  // scss-docs-end close-variables
2057
2059
 
2058
2060
 
@@ -2172,9 +2174,24 @@ $form-invalid-border-color-dark: $red-300 !default;
2172
2174
  $accordion-icon-color-dark: $primary-text-emphasis-dark !default;
2173
2175
  $accordion-icon-active-color-dark: $primary-text-emphasis-dark !default;
2174
2176
 
2175
- $accordion-button-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-color-dark}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>") !default;
2176
- $accordion-button-active-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-active-color-dark}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>") !default;
2177
+ $accordion-button-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-color-dark}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/></svg>") !default;
2178
+ $accordion-button-active-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-active-color-dark}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/></svg>") !default;
2177
2179
  // scss-docs-end sass-dark-mode-vars
2180
+
2181
+
2182
+ //
2183
+ // Carousel
2184
+ //
2185
+
2186
+ $carousel-indicator-active-bg-dark: $carousel-dark-indicator-active-bg !default;
2187
+ $carousel-caption-color-dark: $carousel-dark-caption-color !default;
2188
+ $carousel-control-icon-filter-dark: $carousel-dark-control-icon-filter !default;
2189
+
2190
+ //
2191
+ // Close button
2192
+ //
2193
+
2194
+ $btn-close-filter-dark: $btn-close-white-filter !default;
2178
2195
  // TODO: can be removed safely in v6, only here to avoid breaking changes in v5.3
2179
2196
 
2180
2197
  // Main color theme. E.g. used for background for body and sidebar.
@@ -2714,8 +2731,8 @@ $sidebar-expanded-breakpoint: 1400px !default;
2714
2731
 
2715
2732
  @mixin bsBanner($file) {
2716
2733
  /*!
2717
- * Bootstrap #{$file} v5.3.3 (https://getbootstrap.com/)
2718
- * Copyright 2011-2024 The Bootstrap Authors
2734
+ * Bootstrap #{$file} v5.3.5 (https://getbootstrap.com/)
2735
+ * Copyright 2011-2025 The Bootstrap Authors
2719
2736
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
2720
2737
  */
2721
2738
  }
@@ -3479,7 +3496,7 @@ $rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height
3479
3496
  // Use to only display content when it's focused, or one of its child elements is focused
3480
3497
  // (i.e. when focus is within the element/container that the class was applied to)
3481
3498
  //
3482
- // Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
3499
+ // Useful for "Skip to main content" links; see https://www.w3.org/WAI/WCAG22/Techniques/general/G1.html
3483
3500
 
3484
3501
  @mixin visually-hidden-focusable() {
3485
3502
  &:not(:focus):not(:focus-within) {
@@ -4253,7 +4270,7 @@ $rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height
4253
4270
  @include media-breakpoint-up($breakpoint, $breakpoints) {
4254
4271
  // Provide basic `.col-{bp}` classes for equal-width flexbox columns
4255
4272
  .col#{$infix} {
4256
- flex: 1 0 0%; // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4
4273
+ flex: 1 0 0;
4257
4274
  }
4258
4275
 
4259
4276
  .row-cols#{$infix}-auto > * {
@@ -5830,9 +5847,9 @@ legend {
5830
5847
  width: 100%;
5831
5848
  padding: 0;
5832
5849
  margin-bottom: $legend-margin-bottom;
5833
- @include font-size($legend-font-size);
5834
5850
  font-weight: $legend-font-weight;
5835
5851
  line-height: inherit;
5852
+ @include font-size($legend-font-size);
5836
5853
 
5837
5854
  + * {
5838
5855
  clear: left; // 2
@@ -5977,11 +5994,11 @@ progress {
5977
5994
  // Type display classes
5978
5995
  @each $display, $font-size in $display-font-sizes {
5979
5996
  .display-#{$display} {
5980
- @include font-size($font-size);
5981
5997
  font-family: $display-font-family;
5982
5998
  font-style: $display-font-style;
5983
5999
  font-weight: $display-font-weight;
5984
6000
  line-height: $display-line-height;
6001
+ @include font-size($font-size);
5985
6002
  }
5986
6003
  }
5987
6004
 
@@ -6988,9 +7005,11 @@ textarea {
6988
7005
  top: 0;
6989
7006
  left: 0;
6990
7007
  z-index: 2;
7008
+ max-width: 100%;
6991
7009
  height: 100%; // allow textareas
6992
7010
  padding: $form-floating-padding-y $form-floating-padding-x;
6993
7011
  overflow: hidden;
7012
+ color: rgba(var(--#{$prefix}body-color-rgb), #{$form-floating-label-opacity});
6994
7013
  text-align: start;
6995
7014
  text-overflow: ellipsis;
6996
7015
  white-space: nowrap;
@@ -7023,6 +7042,7 @@ textarea {
7023
7042
  > .form-select {
7024
7043
  padding-top: $form-floating-input-padding-t;
7025
7044
  padding-bottom: $form-floating-input-padding-b;
7045
+ padding-left: $form-floating-padding-x;
7026
7046
  }
7027
7047
 
7028
7048
  > .form-control:focus,
@@ -7030,27 +7050,30 @@ textarea {
7030
7050
  > .form-control-plaintext,
7031
7051
  > .form-select {
7032
7052
  ~ label {
7033
- color: rgba(var(--#{$prefix}body-color-rgb), #{$form-floating-label-opacity});
7034
7053
  transform: $form-floating-label-transform;
7035
-
7036
- &::after {
7037
- position: absolute;
7038
- inset: $form-floating-padding-y ($form-floating-padding-x * .5);
7039
- z-index: -1;
7040
- height: $form-floating-label-height;
7041
- content: "";
7042
- background-color: $input-bg;
7043
- @include border-radius($input-border-radius);
7044
- }
7045
7054
  }
7046
7055
  }
7047
7056
  // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped
7048
7057
  > .form-control:-webkit-autofill {
7049
7058
  ~ label {
7050
- color: rgba(var(--#{$prefix}body-color-rgb), #{$form-floating-label-opacity});
7051
7059
  transform: $form-floating-label-transform;
7052
7060
  }
7053
7061
  }
7062
+ > textarea:focus,
7063
+ > textarea:not(:placeholder-shown) {
7064
+ ~ label::after {
7065
+ position: absolute;
7066
+ inset: $form-floating-padding-y ($form-floating-padding-x * .5);
7067
+ z-index: -1;
7068
+ height: $form-floating-label-height;
7069
+ content: "";
7070
+ background-color: $input-bg;
7071
+ @include border-radius($input-border-radius);
7072
+ }
7073
+ }
7074
+ > textarea:disabled ~ label::after {
7075
+ background-color: $input-disabled-bg;
7076
+ }
7054
7077
 
7055
7078
  > .form-control-plaintext {
7056
7079
  ~ label {
@@ -7061,10 +7084,6 @@ textarea {
7061
7084
  > :disabled ~ label,
7062
7085
  > .form-control:disabled ~ label { // Required for `.form-control`s because of specificity
7063
7086
  color: $form-floating-label-disabled-color;
7064
-
7065
- &::after {
7066
- background-color: $input-disabled-bg;
7067
- }
7068
7087
  }
7069
7088
  }
7070
7089
 
@@ -7191,7 +7210,7 @@ textarea {
7191
7210
  }
7192
7211
 
7193
7212
  > :not(:first-child):not(.dropdown-menu)#{$validation-messages} {
7194
- margin-left: calc(#{$input-border-width} * -1); // stylelint-disable-line function-disallowed-list
7213
+ margin-left: calc(-1 * #{$input-border-width}); // stylelint-disable-line function-disallowed-list
7195
7214
  @include border-start-radius(0);
7196
7215
  }
7197
7216
 
@@ -7752,7 +7771,7 @@ textarea {
7752
7771
  // Prevent double borders when buttons are next to each other
7753
7772
  > :not(.btn-check:first-child) + .btn,
7754
7773
  > .btn-group:not(:first-child) {
7755
- margin-left: calc(#{$btn-border-width} * -1); // stylelint-disable-line function-disallowed-list
7774
+ margin-left: calc(-1 * #{$btn-border-width}); // stylelint-disable-line function-disallowed-list
7756
7775
  }
7757
7776
 
7758
7777
  // Reset rounded corners
@@ -7839,7 +7858,7 @@ textarea {
7839
7858
 
7840
7859
  > .btn:not(:first-child),
7841
7860
  > .btn-group:not(:first-child) {
7842
- margin-top: calc(#{$btn-border-width} * -1); // stylelint-disable-line function-disallowed-list
7861
+ margin-top: calc(-1 * #{$btn-border-width}); // stylelint-disable-line function-disallowed-list
7843
7862
  }
7844
7863
 
7845
7864
  // Reset rounded corners
@@ -7848,7 +7867,12 @@ textarea {
7848
7867
  @include border-bottom-radius(0);
7849
7868
  }
7850
7869
 
7851
- > .btn ~ .btn,
7870
+ // The top radius should be 0 if the button is:
7871
+ // - the "third or more" child
7872
+ // - the second child and the previous element isn't `.btn-check` (making it the first child visually)
7873
+ // - part of a btn-group which isn't the first child
7874
+ > .btn:nth-child(n + 3),
7875
+ > :not(.btn-check) + .btn,
7852
7876
  > .btn-group:not(:first-child) > .btn {
7853
7877
  @include border-top-radius(0);
7854
7878
  }
@@ -8025,8 +8049,8 @@ textarea {
8025
8049
  .nav-justified {
8026
8050
  > .nav-link,
8027
8051
  .nav-item {
8028
- flex-basis: 0;
8029
8052
  flex-grow: 1;
8053
+ flex-basis: 0;
8030
8054
  text-align: center;
8031
8055
  }
8032
8056
  }
@@ -8193,8 +8217,8 @@ textarea {
8193
8217
  // the default flexbox row orientation. Requires the use of `flex-wrap: wrap`
8194
8218
  // on the `.navbar` parent.
8195
8219
  .navbar-collapse {
8196
- flex-basis: 100%;
8197
8220
  flex-grow: 1;
8221
+ flex-basis: 100%;
8198
8222
  // For always expanded or extra full navbars, ensure content aligns itself
8199
8223
  // properly vertically. Can be easily overridden with flex utilities.
8200
8224
  align-items: center;
@@ -8537,8 +8561,7 @@ textarea {
8537
8561
  // The child selector allows nested `.card` within `.card-group`
8538
8562
  // to display properly.
8539
8563
  > .card {
8540
- // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4
8541
- flex: 1 0 0%;
8564
+ flex: 1 0 0;
8542
8565
  margin-bottom: 0;
8543
8566
 
8544
8567
  + .card {
@@ -8718,17 +8741,12 @@ textarea {
8718
8741
  &:last-child { border-bottom: 0; }
8719
8742
 
8720
8743
  // stylelint-disable selector-max-class
8721
- > .accordion-header .accordion-button {
8722
- &,
8723
- &.collapsed {
8724
- @include border-radius(0);
8725
- }
8726
- }
8727
- // stylelint-enable selector-max-class
8728
-
8729
- > .accordion-collapse {
8744
+ > .accordion-collapse,
8745
+ > .accordion-header .accordion-button,
8746
+ > .accordion-header .accordion-button.collapsed {
8730
8747
  @include border-radius(0);
8731
8748
  }
8749
+ // stylelint-enable selector-max-class
8732
8750
  }
8733
8751
  }
8734
8752
 
@@ -8859,7 +8877,7 @@ textarea {
8859
8877
  margin-left: $pagination-margin-start;
8860
8878
  }
8861
8879
 
8862
- @if $pagination-margin-start == calc(#{$pagination-border-width} * -1) {
8880
+ @if $pagination-margin-start == calc(-1 * #{$pagination-border-width}) {
8863
8881
  &:first-child {
8864
8882
  .page-link {
8865
8883
  @include border-start-radius(var(--#{$prefix}pagination-border-radius));
@@ -9005,7 +9023,7 @@ textarea {
9005
9023
  // scss-docs-start progress-keyframes
9006
9024
  @if $enable-transitions {
9007
9025
  @keyframes progress-bar-stripes {
9008
- 0% { background-position-x: $progress-height; }
9026
+ 0% { background-position-x: var(--#{$prefix}progress-height); }
9009
9027
  }
9010
9028
  }
9011
9029
  // scss-docs-end progress-keyframes
@@ -9114,31 +9132,6 @@ textarea {
9114
9132
  }
9115
9133
  }
9116
9134
 
9117
- // Interactive list items
9118
- //
9119
- // Use anchor or button elements instead of `li`s or `div`s to create interactive
9120
- // list items. Includes an extra `.active` modifier class for selected items.
9121
-
9122
- .list-group-item-action {
9123
- width: 100%; // For `<button>`s (anchors become 100% by default though)
9124
- color: var(--#{$prefix}list-group-action-color);
9125
- text-align: inherit; // For `<button>`s (anchors inherit)
9126
-
9127
- // Hover state
9128
- &:hover,
9129
- &:focus {
9130
- z-index: 1; // Place hover/focus items above their siblings for proper border styling
9131
- color: var(--#{$prefix}list-group-action-hover-color);
9132
- text-decoration: none;
9133
- background-color: var(--#{$prefix}list-group-action-hover-bg);
9134
- }
9135
-
9136
- &:active {
9137
- color: var(--#{$prefix}list-group-action-active-color);
9138
- background-color: var(--#{$prefix}list-group-action-active-bg);
9139
- }
9140
- }
9141
-
9142
9135
  // Individual list items
9143
9136
  //
9144
9137
  // Use on `li`s or `div`s within the `.list-group` parent.
@@ -9186,6 +9179,33 @@ textarea {
9186
9179
  }
9187
9180
  }
9188
9181
 
9182
+ // Interactive list items
9183
+ //
9184
+ // Use anchor or button elements instead of `li`s or `div`s to create interactive
9185
+ // list items. Includes an extra `.active` modifier class for selected items.
9186
+
9187
+ .list-group-item-action {
9188
+ width: 100%; // For `<button>`s (anchors become 100% by default though)
9189
+ color: var(--#{$prefix}list-group-action-color);
9190
+ text-align: inherit; // For `<button>`s (anchors inherit)
9191
+
9192
+ &:not(.active) {
9193
+ // Hover state
9194
+ &:hover,
9195
+ &:focus {
9196
+ z-index: 1; // Place hover/focus items above their siblings for proper border styling
9197
+ color: var(--#{$prefix}list-group-action-hover-color);
9198
+ text-decoration: none;
9199
+ background-color: var(--#{$prefix}list-group-action-hover-bg);
9200
+ }
9201
+
9202
+ &:active {
9203
+ color: var(--#{$prefix}list-group-action-active-color);
9204
+ background-color: var(--#{$prefix}list-group-action-active-bg);
9205
+ }
9206
+ }
9207
+ }
9208
+
9189
9209
  // Horizontal
9190
9210
  //
9191
9211
  // Change the layout of list group items from vertical (default) to horizontal.
@@ -9281,7 +9301,6 @@ textarea {
9281
9301
  --#{$prefix}btn-close-focus-shadow: #{$btn-close-focus-shadow};
9282
9302
  --#{$prefix}btn-close-focus-opacity: #{$btn-close-focus-opacity};
9283
9303
  --#{$prefix}btn-close-disabled-opacity: #{$btn-close-disabled-opacity};
9284
- --#{$prefix}btn-close-white-filter: #{$btn-close-white-filter};
9285
9304
  // scss-docs-end close-css-vars
9286
9305
 
9287
9306
  box-sizing: content-box;
@@ -9290,6 +9309,7 @@ textarea {
9290
9309
  padding: $btn-close-padding-y $btn-close-padding-x;
9291
9310
  color: var(--#{$prefix}btn-close-color);
9292
9311
  background: transparent var(--#{$prefix}btn-close-bg) center / $btn-close-width auto no-repeat; // include transparent for button elements
9312
+ filter: var(--#{$prefix}btn-close-filter);
9293
9313
  border: 0; // for button elements
9294
9314
  @include border-radius();
9295
9315
  opacity: var(--#{$prefix}btn-close-opacity);
@@ -9316,18 +9336,21 @@ textarea {
9316
9336
  }
9317
9337
 
9318
9338
  @mixin btn-close-white() {
9319
- filter: var(--#{$prefix}btn-close-white-filter);
9339
+ --#{$prefix}btn-close-filter: #{$btn-close-filter-dark};
9320
9340
  }
9321
9341
 
9322
9342
  .btn-close-white {
9323
9343
  @include btn-close-white();
9324
9344
  }
9325
9345
 
9346
+ :root,
9347
+ [data-bs-theme="light"] {
9348
+ --#{$prefix}btn-close-filter: #{$btn-close-filter};
9349
+ }
9350
+
9326
9351
  @if $enable-dark-mode {
9327
- @include color-mode(dark) {
9328
- .btn-close {
9329
- @include btn-close-white();
9330
- }
9352
+ @include color-mode(dark, true) {
9353
+ @include btn-close-white();
9331
9354
  }
9332
9355
  }
9333
9356
 
@@ -9466,8 +9489,8 @@ textarea {
9466
9489
 
9467
9490
  // When fading in the modal, animate it to slide down
9468
9491
  .modal.fade & {
9469
- @include transition($modal-transition);
9470
9492
  transform: $modal-fade-transform;
9493
+ @include transition($modal-transition);
9471
9494
  }
9472
9495
  .modal.show & {
9473
9496
  transform: $modal-show-transform;
@@ -9539,7 +9562,11 @@ textarea {
9539
9562
 
9540
9563
  .btn-close {
9541
9564
  padding: calc(var(--#{$prefix}modal-header-padding-y) * .5) calc(var(--#{$prefix}modal-header-padding-x) * .5);
9542
- margin: calc(-.5 * var(--#{$prefix}modal-header-padding-y)) calc(-.5 * var(--#{$prefix}modal-header-padding-x)) calc(-.5 * var(--#{$prefix}modal-header-padding-y)) auto;
9565
+ // Split properties to avoid invalid calc() function if value is 0
9566
+ margin-top: calc(-.5 * var(--#{$prefix}modal-header-padding-y));
9567
+ margin-right: calc(-.5 * var(--#{$prefix}modal-header-padding-x));
9568
+ margin-bottom: calc(-.5 * var(--#{$prefix}modal-header-padding-y));
9569
+ margin-left: auto;
9543
9570
  }
9544
9571
  }
9545
9572
 
@@ -10060,6 +10087,7 @@ textarea {
10060
10087
  color: $carousel-control-color;
10061
10088
  text-align: center;
10062
10089
  background: none;
10090
+ filter: var(--#{$prefix}carousel-control-icon-filter);
10063
10091
  border: 0;
10064
10092
  opacity: $carousel-control-opacity;
10065
10093
  @include transition($carousel-control-transition);
@@ -10129,7 +10157,7 @@ textarea {
10129
10157
  margin-left: $carousel-indicator-spacer;
10130
10158
  text-indent: -999px;
10131
10159
  cursor: pointer;
10132
- background-color: $carousel-indicator-active-bg;
10160
+ background-color: var(--#{$prefix}carousel-indicator-active-bg);
10133
10161
  background-clip: padding-box;
10134
10162
  border: 0;
10135
10163
  // Use transparent borders to increase the hit area by 10px on top and bottom.
@@ -10156,43 +10184,32 @@ textarea {
10156
10184
  left: (100% - $carousel-caption-width) * .5;
10157
10185
  padding-top: $carousel-caption-padding-y;
10158
10186
  padding-bottom: $carousel-caption-padding-y;
10159
- color: $carousel-caption-color;
10187
+ color: var(--#{$prefix}carousel-caption-color);
10160
10188
  text-align: center;
10161
10189
  }
10162
10190
 
10163
10191
  // Dark mode carousel
10164
10192
 
10165
10193
  @mixin carousel-dark() {
10166
- .carousel-control-prev-icon,
10167
- .carousel-control-next-icon {
10168
- filter: $carousel-dark-control-icon-filter;
10169
- }
10170
-
10171
- .carousel-indicators [data-bs-target] {
10172
- background-color: $carousel-dark-indicator-active-bg;
10173
- }
10174
-
10175
- .carousel-caption {
10176
- color: $carousel-dark-caption-color;
10177
- }
10194
+ --#{$prefix}carousel-indicator-active-bg: #{$carousel-indicator-active-bg-dark};
10195
+ --#{$prefix}carousel-caption-color: #{$carousel-caption-color-dark};
10196
+ --#{$prefix}carousel-control-icon-filter: #{$carousel-control-icon-filter-dark};
10178
10197
  }
10179
10198
 
10180
10199
  .carousel-dark {
10181
10200
  @include carousel-dark();
10182
10201
  }
10183
10202
 
10203
+ :root,
10204
+ [data-bs-theme="light"] {
10205
+ --#{$prefix}carousel-indicator-active-bg: #{$carousel-indicator-active-bg};
10206
+ --#{$prefix}carousel-caption-color: #{$carousel-caption-color};
10207
+ --#{$prefix}carousel-control-icon-filter: #{$carousel-control-icon-filter};
10208
+ }
10209
+
10184
10210
  @if $enable-dark-mode {
10185
- @include color-mode(dark) {
10186
- @if $color-mode-type == "media-query" {
10187
- .carousel {
10188
- @include carousel-dark();
10189
- }
10190
- } @else {
10191
- .carousel,
10192
- &.carousel {
10193
- @include carousel-dark();
10194
- }
10195
- }
10211
+ @include color-mode(dark, true) {
10212
+ @include carousel-dark();
10196
10213
  }
10197
10214
  }
10198
10215
 
@@ -10411,7 +10428,11 @@ textarea {
10411
10428
 
10412
10429
  .btn-close {
10413
10430
  padding: calc(var(--#{$prefix}offcanvas-padding-y) * .5) calc(var(--#{$prefix}offcanvas-padding-x) * .5);
10414
- margin: calc(-.5 * var(--#{$prefix}offcanvas-padding-y)) calc(-.5 * var(--#{$prefix}offcanvas-padding-x)) calc(-.5 * var(--#{$prefix}offcanvas-padding-y)) auto;
10431
+ // Split properties to avoid invalid calc() function if value is 0
10432
+ margin-top: calc(-.5 * var(--#{$prefix}offcanvas-padding-y));
10433
+ margin-right: calc(-.5 * var(--#{$prefix}offcanvas-padding-x));
10434
+ margin-bottom: calc(-.5 * var(--#{$prefix}offcanvas-padding-y));
10435
+ margin-left: auto;
10415
10436
  }
10416
10437
  }
10417
10438