From 2ea6652a0ea5334b5277ebb5fe9fc34d6383f9d4 Mon Sep 17 00:00:00 2001 From: catborise Date: Sat, 26 Sep 2026 23:57:02 +0300 Subject: [PATCH] chore(frontend): upgrade Bootswatch and Bootstrap SCSS to v5.3.3 - Upgraded Bootswatch SCSS source files across all 25 themes (dev/scss/bootswatch/) to v5.3.3 - Upgraded Bootstrap SCSS source files (dev/scss/bootstrap/) to v5.3.3 to match static/js/bootstrap.bundle.min.js - Updated dev/scss/bootstrap-overrides.scss to import bootstrap/variables-dark - Verified error-free LibSass compilation for all 26 themes (25 Bootswatch + bootstrap-orj) - Recompiled static/css/wvc-main.min.css --- dev/scss/bootstrap-overrides.scss | 38 +- dev/scss/bootstrap/_accordion.scss | 31 +- dev/scss/bootstrap/_alert.scss | 19 +- dev/scss/bootstrap/_button-group.scss | 4 +- dev/scss/bootstrap/_buttons.scss | 15 +- dev/scss/bootstrap/_card.scss | 5 + dev/scss/bootstrap/_carousel.scss | 37 +- dev/scss/bootstrap/_close.scss | 43 +- dev/scss/bootstrap/_dropdown.scss | 1 + dev/scss/bootstrap/_functions.scss | 4 +- dev/scss/bootstrap/_grid.scss | 6 + dev/scss/bootstrap/_helpers.scss | 2 + dev/scss/bootstrap/_list-group.scss | 19 +- dev/scss/bootstrap/_maps.scss | 120 +++++ dev/scss/bootstrap/_mixins.scss | 3 +- dev/scss/bootstrap/_modal.scss | 1 - dev/scss/bootstrap/_nav.scss | 59 ++- dev/scss/bootstrap/_navbar.scss | 19 +- dev/scss/bootstrap/_offcanvas.scss | 11 +- dev/scss/bootstrap/_pagination.scss | 2 +- dev/scss/bootstrap/_progress.scss | 11 +- dev/scss/bootstrap/_reboot.scss | 15 +- dev/scss/bootstrap/_root.scss | 134 ++++- dev/scss/bootstrap/_tables.scss | 31 +- dev/scss/bootstrap/_tooltip.scss | 9 +- dev/scss/bootstrap/_utilities.scss | 191 +++++++- dev/scss/bootstrap/_variables-dark.scss | 87 ++++ dev/scss/bootstrap/_variables.scss | 457 +++++++++++------- dev/scss/bootstrap/bootstrap-grid.scss | 4 +- dev/scss/bootstrap/bootstrap-reboot.scss | 1 + dev/scss/bootstrap/bootstrap-utilities.scss | 4 + dev/scss/bootstrap/bootstrap.scss | 1 + .../bootstrap/forms/_floating-labels.scss | 26 +- dev/scss/bootstrap/forms/_form-check.scss | 40 +- dev/scss/bootstrap/forms/_form-control.scss | 28 +- dev/scss/bootstrap/forms/_form-range.scss | 6 +- dev/scss/bootstrap/forms/_form-select.scss | 15 +- dev/scss/bootstrap/forms/_input-group.scss | 2 +- dev/scss/bootstrap/helpers/_color-bg.scss | 5 +- .../bootstrap/helpers/_colored-links.scss | 22 +- dev/scss/bootstrap/helpers/_focus-ring.scss | 5 + dev/scss/bootstrap/helpers/_icon-link.scss | 25 + dev/scss/bootstrap/helpers/_vr.scss | 2 +- dev/scss/bootstrap/mixins/_alert.scss | 5 +- dev/scss/bootstrap/mixins/_banner.scss | 6 +- dev/scss/bootstrap/mixins/_caret.scss | 55 ++- dev/scss/bootstrap/mixins/_color-mode.scss | 21 + dev/scss/bootstrap/mixins/_forms.scss | 29 +- dev/scss/bootstrap/mixins/_grid.scss | 4 +- dev/scss/bootstrap/mixins/_list-group.scss | 2 + dev/scss/bootstrap/mixins/_utilities.scss | 2 +- .../bootstrap/mixins/_visually-hidden.scss | 6 +- dev/scss/bootstrap/vendor/_rfs.scss | 52 +- .../bootswatch/bootstrap-orj/_bootswatch.scss | 2 +- dev/scss/bootswatch/cerulean/_bootswatch.scss | 26 +- dev/scss/bootswatch/cerulean/_variables.scss | 3 +- dev/scss/bootswatch/cosmo/_bootswatch.scss | 8 +- dev/scss/bootswatch/cosmo/_variables.scss | 2 +- dev/scss/bootswatch/cyborg/_bootswatch.scss | 16 +- dev/scss/bootswatch/cyborg/_variables.scss | 9 +- dev/scss/bootswatch/darkly/_bootswatch.scss | 31 +- dev/scss/bootswatch/darkly/_variables.scss | 13 +- dev/scss/bootswatch/flatly/_bootswatch.scss | 30 +- dev/scss/bootswatch/flatly/_variables.scss | 22 +- dev/scss/bootswatch/journal/_bootswatch.scss | 26 +- dev/scss/bootswatch/journal/_variables.scss | 6 +- dev/scss/bootswatch/litera/_bootswatch.scss | 23 +- dev/scss/bootswatch/litera/_variables.scss | 11 +- dev/scss/bootswatch/lumen/_bootswatch.scss | 20 +- dev/scss/bootswatch/lumen/_variables.scss | 19 +- dev/scss/bootswatch/lux/_bootswatch.scss | 64 ++- dev/scss/bootswatch/lux/_variables.scss | 14 +- dev/scss/bootswatch/materia/_bootswatch.scss | 24 +- dev/scss/bootswatch/materia/_variables.scss | 2 +- dev/scss/bootswatch/minty/_bootswatch.scss | 16 +- dev/scss/bootswatch/minty/_variables.scss | 13 +- dev/scss/bootswatch/morph/_bootswatch.scss | 114 ++++- dev/scss/bootswatch/morph/_variables.scss | 17 +- dev/scss/bootswatch/pulse/_bootswatch.scss | 6 +- dev/scss/bootswatch/pulse/_variables.scss | 7 +- dev/scss/bootswatch/quartz/_bootswatch.scss | 18 +- dev/scss/bootswatch/quartz/_variables.scss | 17 +- .../bootswatch/sandstone/_bootswatch.scss | 8 +- dev/scss/bootswatch/sandstone/_variables.scss | 6 +- dev/scss/bootswatch/simplex/_bootswatch.scss | 9 +- dev/scss/bootswatch/simplex/_variables.scss | 5 +- dev/scss/bootswatch/sketchy/_bootswatch.scss | 23 +- dev/scss/bootswatch/sketchy/_variables.scss | 14 +- dev/scss/bootswatch/slate/_bootswatch.scss | 149 +++--- dev/scss/bootswatch/slate/_variables.scss | 35 +- dev/scss/bootswatch/solar/_bootswatch.scss | 14 +- dev/scss/bootswatch/solar/_variables.scss | 18 +- dev/scss/bootswatch/spacelab/_bootswatch.scss | 10 +- dev/scss/bootswatch/spacelab/_variables.scss | 5 +- .../bootswatch/superhero/_bootswatch.scss | 21 +- dev/scss/bootswatch/superhero/_variables.scss | 74 ++- dev/scss/bootswatch/united/_bootswatch.scss | 8 +- dev/scss/bootswatch/united/_variables.scss | 2 +- dev/scss/bootswatch/vapor/_bootswatch.scss | 45 +- dev/scss/bootswatch/vapor/_variables.scss | 16 +- dev/scss/bootswatch/yeti/_bootswatch.scss | 52 +- dev/scss/bootswatch/yeti/_variables.scss | 29 +- dev/scss/bootswatch/zephyr/_bootswatch.scss | 12 +- dev/scss/bootswatch/zephyr/_variables.scss | 22 +- dev/scss/wvc-main.scss | 6 +- .../wvc-themes/bootstrap-orj/_bootswatch.scss | 2 +- dev/scss/wvc-themes/cerulean/_bootswatch.scss | 2 +- dev/scss/wvc-themes/cerulean/_variables.scss | 2 +- dev/scss/wvc-themes/cosmo/_bootswatch.scss | 2 +- dev/scss/wvc-themes/cyborg/_bootswatch.scss | 2 +- dev/scss/wvc-themes/cyborg/_variables.scss | 2 +- dev/scss/wvc-themes/darkly/_bootswatch.scss | 2 +- dev/scss/wvc-themes/darkly/_variables.scss | 2 +- dev/scss/wvc-themes/flatly/_bootswatch.scss | 2 +- dev/scss/wvc-themes/flatly/_variables.scss | 2 +- dev/scss/wvc-themes/journal/_bootswatch.scss | 2 +- dev/scss/wvc-themes/journal/_variables.scss | 2 +- dev/scss/wvc-themes/litera/_bootswatch.scss | 2 +- dev/scss/wvc-themes/litera/_variables.scss | 2 +- dev/scss/wvc-themes/lumen/_bootswatch.scss | 2 +- dev/scss/wvc-themes/lumen/_variables.scss | 2 +- dev/scss/wvc-themes/lux/_bootswatch.scss | 2 +- dev/scss/wvc-themes/lux/_variables.scss | 2 +- dev/scss/wvc-themes/materia/_bootswatch.scss | 2 +- dev/scss/wvc-themes/materia/_variables.scss | 2 +- dev/scss/wvc-themes/minty/_bootswatch.scss | 2 +- dev/scss/wvc-themes/minty/_variables.scss | 2 +- dev/scss/wvc-themes/morph/_bootswatch.scss | 2 +- dev/scss/wvc-themes/morph/_variables.scss | 2 +- dev/scss/wvc-themes/pulse/_bootswatch.scss | 2 +- dev/scss/wvc-themes/pulse/_variables.scss | 2 +- dev/scss/wvc-themes/quartz/_bootswatch.scss | 2 +- dev/scss/wvc-themes/quartz/_variables.scss | 2 +- .../wvc-themes/sandstone/_bootswatch.scss | 2 +- dev/scss/wvc-themes/sandstone/_variables.scss | 2 +- dev/scss/wvc-themes/simplex/_bootswatch.scss | 2 +- dev/scss/wvc-themes/simplex/_variables.scss | 2 +- dev/scss/wvc-themes/sketchy/_bootswatch.scss | 2 +- dev/scss/wvc-themes/sketchy/_variables.scss | 2 +- dev/scss/wvc-themes/slate/_bootswatch.scss | 2 +- dev/scss/wvc-themes/solar/_bootswatch.scss | 2 +- dev/scss/wvc-themes/solar/_variables.scss | 2 +- dev/scss/wvc-themes/spacelab/_bootswatch.scss | 2 +- dev/scss/wvc-themes/spacelab/_variables.scss | 2 +- .../wvc-themes/superhero/_bootswatch.scss | 2 +- dev/scss/wvc-themes/superhero/_variables.scss | 2 +- dev/scss/wvc-themes/united/_bootswatch.scss | 2 +- dev/scss/wvc-themes/united/_variables.scss | 2 +- dev/scss/wvc-themes/vapor/_bootswatch.scss | 2 +- dev/scss/wvc-themes/vapor/_variables.scss | 2 +- dev/scss/wvc-themes/yeti/_bootswatch.scss | 2 +- dev/scss/wvc-themes/yeti/_variables.scss | 2 +- dev/scss/wvc-themes/zephyr/_bootswatch.scss | 1 - dev/scss/wvc-themes/zephyr/_variables.scss | 2 +- static/css/wvc-main.min.css | 17 +- 155 files changed, 1923 insertions(+), 1095 deletions(-) create mode 100644 dev/scss/bootstrap/_variables-dark.scss create mode 100644 dev/scss/bootstrap/helpers/_focus-ring.scss create mode 100644 dev/scss/bootstrap/helpers/_icon-link.scss create mode 100644 dev/scss/bootstrap/mixins/_color-mode.scss diff --git a/dev/scss/bootstrap-overrides.scss b/dev/scss/bootstrap-overrides.scss index a5ad1478..94e6a0db 100644 --- a/dev/scss/bootstrap-overrides.scss +++ b/dev/scss/bootstrap-overrides.scss @@ -1,31 +1,23 @@ /*! - * Bootstrap v5.2.2 (https://getbootstrap.com/) - * Copyright 2011-2022 The Bootstrap Authors - * Copyright 2011-2022 Twitter, Inc. + * Bootstrap v5.3.3 (https://getbootstrap.com/) + * Copyright 2011-2024 The Bootstrap Authors * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ - $enable-gradients: true; +$enable-gradients: true; + +@import "bootstrap/mixins/banner"; +@include bsBanner(""); -/*! - * Bootstrap v5.2.2 (https://getbootstrap.com/) - * Copyright 2011-2022 The Bootstrap Authors - * Copyright 2011-2022 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */ - - @import "bootstrap/mixins/banner"; - @include bsBanner(""); - - - // scss-docs-start import-stack - // Configuration - @import "bootstrap/functions"; - @import "bootstrap/variables"; - @import "bootstrap/maps"; - @import "bootstrap/mixins"; - @import "bootstrap/utilities"; +// scss-docs-start import-stack +// Configuration +@import "bootstrap/functions"; +@import "bootstrap/variables"; +@import "bootstrap/variables-dark"; +@import "bootstrap/maps"; +@import "bootstrap/mixins"; +@import "bootstrap/utilities"; // Layout & components @import "bootstrap/root"; @@ -65,4 +57,4 @@ // Utilities @import "bootstrap/utilities/api"; - // scss-docs-end import-stack \ No newline at end of file + // scss-docs-end import-stack diff --git a/dev/scss/bootstrap/_accordion.scss b/dev/scss/bootstrap/_accordion.scss index f09601ba..17e5436e 100755 --- a/dev/scss/bootstrap/_accordion.scss +++ b/dev/scss/bootstrap/_accordion.scss @@ -20,7 +20,6 @@ --#{$prefix}accordion-btn-icon-transform: #{$accordion-icon-transform}; --#{$prefix}accordion-btn-icon-transition: #{$accordion-icon-transition}; --#{$prefix}accordion-btn-active-icon: #{escape-svg($accordion-button-active-icon)}; - --#{$prefix}accordion-btn-focus-border-color: #{$accordion-button-focus-border-color}; --#{$prefix}accordion-btn-focus-box-shadow: #{$accordion-button-focus-box-shadow}; --#{$prefix}accordion-body-padding-x: #{$accordion-body-padding-x}; --#{$prefix}accordion-body-padding-y: #{$accordion-body-padding-y}; @@ -74,7 +73,6 @@ &:focus { z-index: 3; - border-color: var(--#{$prefix}accordion-btn-focus-border-color); outline: 0; box-shadow: var(--#{$prefix}accordion-btn-focus-box-shadow); } @@ -92,7 +90,7 @@ &:first-of-type { @include border-top-radius(var(--#{$prefix}accordion-border-radius)); - .accordion-button { + > .accordion-header .accordion-button { @include border-top-radius(var(--#{$prefix}accordion-inner-border-radius)); } } @@ -105,13 +103,13 @@ &:last-of-type { @include border-bottom-radius(var(--#{$prefix}accordion-border-radius)); - .accordion-button { + > .accordion-header .accordion-button { &.collapsed { @include border-bottom-radius(var(--#{$prefix}accordion-inner-border-radius)); } } - .accordion-collapse { + > .accordion-collapse { @include border-bottom-radius(var(--#{$prefix}accordion-border-radius)); } } @@ -127,11 +125,7 @@ // Remove borders and border-radius to keep accordion items edge-to-edge. .accordion-flush { - .accordion-collapse { - border-width: 0; - } - - .accordion-item { + > .accordion-item { border-right: 0; border-left: 0; @include border-radius(0); @@ -139,11 +133,26 @@ &:first-child { border-top: 0; } &:last-child { border-bottom: 0; } - .accordion-button { + // stylelint-disable selector-max-class + > .accordion-header .accordion-button { &, &.collapsed { @include border-radius(0); } } + // stylelint-enable selector-max-class + + > .accordion-collapse { + @include border-radius(0); + } + } +} + +@if $enable-dark-mode { + @include color-mode(dark) { + .accordion-button::after { + --#{$prefix}accordion-btn-icon: #{escape-svg($accordion-button-icon-dark)}; + --#{$prefix}accordion-btn-active-icon: #{escape-svg($accordion-button-active-icon-dark)}; + } } } diff --git a/dev/scss/bootstrap/_alert.scss b/dev/scss/bootstrap/_alert.scss index c8bc91b4..b8cff9b7 100755 --- a/dev/scss/bootstrap/_alert.scss +++ b/dev/scss/bootstrap/_alert.scss @@ -12,6 +12,7 @@ --#{$prefix}alert-border-color: transparent; --#{$prefix}alert-border: #{$alert-border-width} solid var(--#{$prefix}alert-border-color); --#{$prefix}alert-border-radius: #{$alert-border-radius}; + --#{$prefix}alert-link-color: inherit; // scss-docs-end alert-css-vars position: relative; @@ -32,6 +33,7 @@ // Provide class for links that match alerts .alert-link { font-weight: $alert-link-font-weight; + color: var(--#{$prefix}alert-link-color); } @@ -54,18 +56,13 @@ // scss-docs-start alert-modifiers -// Generate contextual modifier classes for colorizing the alert. - -@each $state, $value in $theme-colors { - $alert-background: shift-color($value, $alert-bg-scale); - $alert-border: shift-color($value, $alert-border-scale); - $alert-color: shift-color($value, $alert-color-scale); - - @if (contrast-ratio($alert-background, $alert-color) < $min-contrast-ratio) { - $alert-color: mix($value, color-contrast($alert-background), abs($alert-color-scale)); - } +// Generate contextual modifier classes for colorizing the alert +@each $state in map-keys($theme-colors) { .alert-#{$state} { - @include alert-variant($alert-background, $alert-border, $alert-color); + --#{$prefix}alert-color: var(--#{$prefix}#{$state}-text-emphasis); + --#{$prefix}alert-bg: var(--#{$prefix}#{$state}-bg-subtle); + --#{$prefix}alert-border-color: var(--#{$prefix}#{$state}-border-subtle); + --#{$prefix}alert-link-color: var(--#{$prefix}#{$state}-text-emphasis); } } // scss-docs-end alert-modifiers diff --git a/dev/scss/bootstrap/_button-group.scss b/dev/scss/bootstrap/_button-group.scss index 79b100cb..55ae3f65 100755 --- a/dev/scss/bootstrap/_button-group.scss +++ b/dev/scss/bootstrap/_button-group.scss @@ -39,7 +39,7 @@ // Prevent double borders when buttons are next to each other > :not(.btn-check:first-child) + .btn, > .btn-group:not(:first-child) { - margin-left: -$btn-border-width; + margin-left: calc(#{$btn-border-width} * -1); // stylelint-disable-line function-disallowed-list } // Reset rounded corners @@ -126,7 +126,7 @@ > .btn:not(:first-child), > .btn-group:not(:first-child) { - margin-top: -$btn-border-width; + margin-top: calc(#{$btn-border-width} * -1); // stylelint-disable-line function-disallowed-list } // Reset rounded corners diff --git a/dev/scss/bootstrap/_buttons.scss b/dev/scss/bootstrap/_buttons.scss index f2c4c13a..caa4518a 100755 --- a/dev/scss/bootstrap/_buttons.scss +++ b/dev/scss/bootstrap/_buttons.scss @@ -10,7 +10,7 @@ @include rfs($btn-font-size, --#{$prefix}btn-font-size); --#{$prefix}btn-font-weight: #{$btn-font-weight}; --#{$prefix}btn-line-height: #{$btn-line-height}; - --#{$prefix}btn-color: #{$body-color}; + --#{$prefix}btn-color: #{$btn-color}; --#{$prefix}btn-bg: transparent; --#{$prefix}btn-border-width: #{$btn-border-width}; --#{$prefix}btn-border-color: transparent; @@ -100,6 +100,15 @@ } } + .btn-check:checked:focus-visible + & { + // Avoid using mixin so we can pass custom focus shadow properly + @if $enable-shadows { + box-shadow: var(--#{$prefix}btn-active-shadow), var(--#{$prefix}btn-focus-box-shadow); + } @else { + box-shadow: var(--#{$prefix}btn-focus-box-shadow); + } + } + &:disabled, &.disabled, fieldset:disabled & { @@ -169,8 +178,8 @@ --#{$prefix}btn-active-border-color: transparent; --#{$prefix}btn-disabled-color: #{$btn-link-disabled-color}; --#{$prefix}btn-disabled-border-color: transparent; - --#{$prefix}btn-box-shadow: none; - --#{$prefix}btn-focus-shadow-rgb: #{to-rgb(mix(color-contrast($primary), $primary, 15%))}; + --#{$prefix}btn-box-shadow: 0 0 0 #000; // Can't use `none` as keyword negates all values when used with multiple shadows + --#{$prefix}btn-focus-shadow-rgb: #{$btn-link-focus-shadow-rgb}; text-decoration: $link-decoration; @if $enable-gradients { diff --git a/dev/scss/bootstrap/_card.scss b/dev/scss/bootstrap/_card.scss index ce8c02f1..d3535a98 100755 --- a/dev/scss/bootstrap/_card.scss +++ b/dev/scss/bootstrap/_card.scss @@ -7,6 +7,8 @@ --#{$prefix}card-spacer-y: #{$card-spacer-y}; --#{$prefix}card-spacer-x: #{$card-spacer-x}; --#{$prefix}card-title-spacer-y: #{$card-title-spacer-y}; + --#{$prefix}card-title-color: #{$card-title-color}; + --#{$prefix}card-subtitle-color: #{$card-subtitle-color}; --#{$prefix}card-border-width: #{$card-border-width}; --#{$prefix}card-border-color: #{$card-border-color}; --#{$prefix}card-border-radius: #{$card-border-radius}; @@ -28,6 +30,7 @@ flex-direction: column; min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106 height: var(--#{$prefix}card-height); + color: var(--#{$prefix}body-color); word-wrap: break-word; background-color: var(--#{$prefix}card-bg); background-clip: border-box; @@ -73,11 +76,13 @@ .card-title { margin-bottom: var(--#{$prefix}card-title-spacer-y); + color: var(--#{$prefix}card-title-color); } .card-subtitle { margin-top: calc(-.5 * var(--#{$prefix}card-title-spacer-y)); // stylelint-disable-line function-disallowed-list margin-bottom: 0; + color: var(--#{$prefix}card-subtitle-color); } .card-text:last-child { diff --git a/dev/scss/bootstrap/_carousel.scss b/dev/scss/bootstrap/_carousel.scss index 3d8fb15a..3a135220 100755 --- a/dev/scss/bootstrap/_carousel.scss +++ b/dev/scss/bootstrap/_carousel.scss @@ -42,7 +42,6 @@ display: block; } -/* rtl:begin:ignore */ .carousel-item-next:not(.carousel-item-start), .active.carousel-item-end { transform: translateX(100%); @@ -53,8 +52,6 @@ transform: translateX(-100%); } -/* rtl:end:ignore */ - // // Alternate transitions @@ -135,19 +132,11 @@ background-size: 100% 100%; } -/* rtl:options: { - "autoRename": true, - "stringMap":[ { - "name" : "prev-next", - "search" : "prev", - "replace" : "next" - } ] -} */ .carousel-control-prev-icon { - background-image: escape-svg($carousel-control-prev-icon-bg); + background-image: escape-svg($carousel-control-prev-icon-bg) #{"/*rtl:" + escape-svg($carousel-control-next-icon-bg) + "*/"}; } .carousel-control-next-icon { - background-image: escape-svg($carousel-control-next-icon-bg); + background-image: escape-svg($carousel-control-next-icon-bg) #{"/*rtl:" + escape-svg($carousel-control-prev-icon-bg) + "*/"}; } // Optional indicator pips/controls @@ -168,7 +157,6 @@ margin-right: $carousel-control-width; margin-bottom: 1rem; margin-left: $carousel-control-width; - list-style: none; [data-bs-target] { box-sizing: content-box; @@ -213,7 +201,7 @@ // Dark mode carousel -.carousel-dark { +@mixin carousel-dark() { .carousel-control-prev-icon, .carousel-control-next-icon { filter: $carousel-dark-control-icon-filter; @@ -227,3 +215,22 @@ color: $carousel-dark-caption-color; } } + +.carousel-dark { + @include carousel-dark(); +} + +@if $enable-dark-mode { + @include color-mode(dark) { + @if $color-mode-type == "media-query" { + .carousel { + @include carousel-dark(); + } + } @else { + .carousel, + &.carousel { + @include carousel-dark(); + } + } + } +} diff --git a/dev/scss/bootstrap/_close.scss b/dev/scss/bootstrap/_close.scss index a0813de8..4d6e73c1 100755 --- a/dev/scss/bootstrap/_close.scss +++ b/dev/scss/bootstrap/_close.scss @@ -4,37 +4,60 @@ // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile .btn-close { + // scss-docs-start close-css-vars + --#{$prefix}btn-close-color: #{$btn-close-color}; + --#{$prefix}btn-close-bg: #{ escape-svg($btn-close-bg) }; + --#{$prefix}btn-close-opacity: #{$btn-close-opacity}; + --#{$prefix}btn-close-hover-opacity: #{$btn-close-hover-opacity}; + --#{$prefix}btn-close-focus-shadow: #{$btn-close-focus-shadow}; + --#{$prefix}btn-close-focus-opacity: #{$btn-close-focus-opacity}; + --#{$prefix}btn-close-disabled-opacity: #{$btn-close-disabled-opacity}; + --#{$prefix}btn-close-white-filter: #{$btn-close-white-filter}; + // scss-docs-end close-css-vars + box-sizing: content-box; width: $btn-close-width; height: $btn-close-height; padding: $btn-close-padding-y $btn-close-padding-x; - color: $btn-close-color; - background: transparent escape-svg($btn-close-bg) center / $btn-close-width auto no-repeat; // include transparent for button elements + color: var(--#{$prefix}btn-close-color); + background: transparent var(--#{$prefix}btn-close-bg) center / $btn-close-width auto no-repeat; // include transparent for button elements border: 0; // for button elements @include border-radius(); - opacity: $btn-close-opacity; + opacity: var(--#{$prefix}btn-close-opacity); // Override 's hover style &:hover { - color: $btn-close-color; + color: var(--#{$prefix}btn-close-color); text-decoration: none; - opacity: $btn-close-hover-opacity; + opacity: var(--#{$prefix}btn-close-hover-opacity); } &:focus { outline: 0; - box-shadow: $btn-close-focus-shadow; - opacity: $btn-close-focus-opacity; + box-shadow: var(--#{$prefix}btn-close-focus-shadow); + opacity: var(--#{$prefix}btn-close-focus-opacity); } &:disabled, &.disabled { pointer-events: none; user-select: none; - opacity: $btn-close-disabled-opacity; + opacity: var(--#{$prefix}btn-close-disabled-opacity); } } -.btn-close-white { - filter: $btn-close-white-filter; +@mixin btn-close-white() { + filter: var(--#{$prefix}btn-close-white-filter); +} + +.btn-close-white { + @include btn-close-white(); +} + +@if $enable-dark-mode { + @include color-mode(dark) { + .btn-close { + @include btn-close-white(); + } + } } diff --git a/dev/scss/bootstrap/_dropdown.scss b/dev/scss/bootstrap/_dropdown.scss index 8899d25a..587ebb48 100755 --- a/dev/scss/bootstrap/_dropdown.scss +++ b/dev/scss/bootstrap/_dropdown.scss @@ -184,6 +184,7 @@ white-space: nowrap; // prevent links from randomly breaking onto new lines background-color: transparent; // For `