From 7eac83f95500fcf020b427facf0a74df7bc7dac2 Mon Sep 17 00:00:00 2001 From: c Date: Thu, 8 Jun 2023 15:20:45 +0200 Subject: [PATCH] upgrade to bootstrap 5.3.0 --- _sass/bootstrap/_accordion.scss | 9 + _sass/bootstrap/_alert.scss | 19 +- _sass/bootstrap/_button-group.scss | 4 +- _sass/bootstrap/_buttons.scss | 6 +- _sass/bootstrap/_card.scss | 5 + _sass/bootstrap/_carousel.scss | 22 +- _sass/bootstrap/_close.scss | 43 +- _sass/bootstrap/_dropdown.scss | 1 + _sass/bootstrap/_functions.scss | 2 +- _sass/bootstrap/_grid.scss | 6 + _sass/bootstrap/_helpers.scss | 2 + _sass/bootstrap/_list-group.scss | 19 +- _sass/bootstrap/_maps.scss | 120 +++++ _sass/bootstrap/_mixins.scss | 3 +- _sass/bootstrap/_nav.scss | 43 +- _sass/bootstrap/_navbar.scss | 19 +- _sass/bootstrap/_offcanvas.scss | 6 +- _sass/bootstrap/_pagination.scss | 2 +- _sass/bootstrap/_progress.scss | 11 +- _sass/bootstrap/_reboot.scss | 6 +- _sass/bootstrap/_root.scss | 131 +++++- _sass/bootstrap/_tables.scss | 29 +- _sass/bootstrap/_tooltip.scss | 9 +- _sass/bootstrap/_utilities.scss | 185 +++++++- _sass/bootstrap/_variables-dark.scss | 85 ++++ _sass/bootstrap/_variables.scss | 411 +++++++++++------- _sass/bootstrap/bootstrap-grid.scss | 4 +- _sass/bootstrap/bootstrap-reboot.scss | 1 + _sass/bootstrap/bootstrap-utilities.scss | 1 + _sass/bootstrap/bootstrap.scss | 1 + _sass/bootstrap/forms/_floating-labels.scss | 25 +- _sass/bootstrap/forms/_form-check.scss | 35 +- _sass/bootstrap/forms/_form-control.scss | 26 +- _sass/bootstrap/forms/_form-select.scss | 13 +- _sass/bootstrap/forms/_input-group.scss | 2 +- _sass/bootstrap/helpers/_color-bg.scss | 2 - _sass/bootstrap/helpers/_colored-links.scss | 22 +- _sass/bootstrap/helpers/_focus-ring.scss | 5 + _sass/bootstrap/helpers/_icon-link.scss | 25 ++ _sass/bootstrap/mixins/_alert.scss | 5 +- _sass/bootstrap/mixins/_banner.scss | 6 +- _sass/bootstrap/mixins/_caret.scss | 55 +-- _sass/bootstrap/mixins/_color-mode.scss | 21 + _sass/bootstrap/mixins/_forms.scss | 15 +- _sass/bootstrap/mixins/_list-group.scss | 2 + _sass/bootstrap/mixins/_utilities.scss | 2 +- _sass/bootstrap/mixins/_visually-hidden.scss | 6 +- _sass/bootstrap/tests/jasmine.js | 16 + .../tests/mixins/_color-modes.test.scss | 69 +++ .../_media-query-color-mode-full.test.scss | 8 + .../tests/mixins/_utilities.test.scss | 393 +++++++++++++++++ _sass/bootstrap/tests/sass-true/register.js | 14 + _sass/bootstrap/tests/sass-true/runner.js | 17 + .../bootstrap/tests/utilities/_api.test.scss | 75 ++++ _sass/bootstrap/vendor/_rfs.scss | 348 +++++++++++++++ 55 files changed, 2104 insertions(+), 308 deletions(-) create mode 100644 _sass/bootstrap/_variables-dark.scss create mode 100644 _sass/bootstrap/helpers/_focus-ring.scss create mode 100644 _sass/bootstrap/helpers/_icon-link.scss create mode 100644 _sass/bootstrap/mixins/_color-mode.scss create mode 100644 _sass/bootstrap/tests/jasmine.js create mode 100644 _sass/bootstrap/tests/mixins/_color-modes.test.scss create mode 100644 _sass/bootstrap/tests/mixins/_media-query-color-mode-full.test.scss create mode 100644 _sass/bootstrap/tests/mixins/_utilities.test.scss create mode 100644 _sass/bootstrap/tests/sass-true/register.js create mode 100644 _sass/bootstrap/tests/sass-true/runner.js create mode 100644 _sass/bootstrap/tests/utilities/_api.test.scss create mode 100644 _sass/bootstrap/vendor/_rfs.scss diff --git a/_sass/bootstrap/_accordion.scss b/_sass/bootstrap/_accordion.scss index f09601b..75588a5 100644 --- a/_sass/bootstrap/_accordion.scss +++ b/_sass/bootstrap/_accordion.scss @@ -147,3 +147,12 @@ } } } + +@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/_sass/bootstrap/_alert.scss b/_sass/bootstrap/_alert.scss index c8bc91b..b8cff9b 100644 --- a/_sass/bootstrap/_alert.scss +++ b/_sass/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/_sass/bootstrap/_button-group.scss b/_sass/bootstrap/_button-group.scss index 79b100c..55ae3f6 100644 --- a/_sass/bootstrap/_button-group.scss +++ b/_sass/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/_sass/bootstrap/_buttons.scss b/_sass/bootstrap/_buttons.scss index f2c4c13..cbc0784 100644 --- a/_sass/bootstrap/_buttons.scss +++ b/_sass/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; @@ -169,8 +169,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: #{to-rgb(mix(color-contrast($link-color), $link-color, 15%))}; text-decoration: $link-decoration; @if $enable-gradients { diff --git a/_sass/bootstrap/_card.scss b/_sass/bootstrap/_card.scss index ce8c02f..d3535a9 100644 --- a/_sass/bootstrap/_card.scss +++ b/_sass/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/_sass/bootstrap/_carousel.scss b/_sass/bootstrap/_carousel.scss index 858b836..0ac8f87 100644 --- a/_sass/bootstrap/_carousel.scss +++ b/_sass/bootstrap/_carousel.scss @@ -165,7 +165,6 @@ margin-right: $carousel-control-width; margin-bottom: 1rem; margin-left: $carousel-control-width; - list-style: none; [data-bs-target] { box-sizing: content-box; @@ -210,7 +209,7 @@ // Dark mode carousel -.carousel-dark { +@mixin carousel-dark() { .carousel-control-prev-icon, .carousel-control-next-icon { filter: $carousel-dark-control-icon-filter; @@ -224,3 +223,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/_sass/bootstrap/_close.scss b/_sass/bootstrap/_close.scss index a0813de..4d6e73c 100644 --- a/_sass/bootstrap/_close.scss +++ b/_sass/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/_sass/bootstrap/_dropdown.scss b/_sass/bootstrap/_dropdown.scss index 8899d25..587ebb4 100644 --- a/_sass/bootstrap/_dropdown.scss +++ b/_sass/bootstrap/_dropdown.scss @@ -184,6 +184,7 @@ white-space: nowrap; // prevent links from randomly breaking onto new lines background-color: transparent; // For `