diff options
Diffstat (limited to 'vendor/twbs/bootstrap/scss')
33 files changed, 542 insertions, 277 deletions
diff --git a/vendor/twbs/bootstrap/scss/_alert.scss b/vendor/twbs/bootstrap/scss/_alert.scss index 8647851b1..b8cff9b71 100644 --- a/vendor/twbs/bootstrap/scss/_alert.scss +++ b/vendor/twbs/bootstrap/scss/_alert.scss @@ -59,10 +59,10 @@ // Generate contextual modifier classes for colorizing the alert @each $state in map-keys($theme-colors) { .alert-#{$state} { - --#{$prefix}alert-color: var(--#{$prefix}#{$state}-text); + --#{$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); + --#{$prefix}alert-link-color: var(--#{$prefix}#{$state}-text-emphasis); } } // scss-docs-end alert-modifiers diff --git a/vendor/twbs/bootstrap/scss/_button-group.scss b/vendor/twbs/bootstrap/scss/_button-group.scss index eb7969a2d..55ae3f65d 100644 --- a/vendor/twbs/bootstrap/scss/_button-group.scss +++ b/vendor/twbs/bootstrap/scss/_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: calc($btn-border-width * -1); // stylelint-disable-line function-disallowed-list + 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: calc($btn-border-width * -1); // stylelint-disable-line function-disallowed-list + margin-top: calc(#{$btn-border-width} * -1); // stylelint-disable-line function-disallowed-list } // Reset rounded corners diff --git a/vendor/twbs/bootstrap/scss/_buttons.scss b/vendor/twbs/bootstrap/scss/_buttons.scss index f2c4c13a9..cbc0784a4 100644 --- a/vendor/twbs/bootstrap/scss/_buttons.scss +++ b/vendor/twbs/bootstrap/scss/_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/vendor/twbs/bootstrap/scss/_card.scss b/vendor/twbs/bootstrap/scss/_card.scss index 70279df9e..d3535a98b 100644 --- a/vendor/twbs/bootstrap/scss/_card.scss +++ b/vendor/twbs/bootstrap/scss/_card.scss @@ -30,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; diff --git a/vendor/twbs/bootstrap/scss/_carousel.scss b/vendor/twbs/bootstrap/scss/_carousel.scss index 7f28061eb..0ac8f8714 100644 --- a/vendor/twbs/bootstrap/scss/_carousel.scss +++ b/vendor/twbs/bootstrap/scss/_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; @@ -231,8 +230,15 @@ @if $enable-dark-mode { @include color-mode(dark) { - .carousel { - @include carousel-dark(); + @if $color-mode-type == "media-query" { + .carousel { + @include carousel-dark(); + } + } @else { + .carousel, + &.carousel { + @include carousel-dark(); + } } } } diff --git a/vendor/twbs/bootstrap/scss/_close.scss b/vendor/twbs/bootstrap/scss/_close.scss index 503a105cc..4d6e73c13 100644 --- a/vendor/twbs/bootstrap/scss/_close.scss +++ b/vendor/twbs/bootstrap/scss/_close.scss @@ -4,6 +4,7 @@ // 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}; @@ -12,6 +13,7 @@ --#{$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; diff --git a/vendor/twbs/bootstrap/scss/_functions.scss b/vendor/twbs/bootstrap/scss/_functions.scss index 26c953bae..90296586b 100644 --- a/vendor/twbs/bootstrap/scss/_functions.scss +++ b/vendor/twbs/bootstrap/scss/_functions.scss @@ -188,7 +188,7 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003 ); @each $name, $value in $rgb { - $value: if(divide($value, 255) < .03928, divide(divide($value, 255), 12.92), nth($_luminance-list, $value + 1)); + $value: if(divide($value, 255) < .04045, divide(divide($value, 255), 12.92), nth($_luminance-list, $value + 1)); $rgb: map-merge($rgb, ($name: $value)); } diff --git a/vendor/twbs/bootstrap/scss/_grid.scss b/vendor/twbs/bootstrap/scss/_grid.scss index 0e0ba210a..048f8009a 100644 --- a/vendor/twbs/bootstrap/scss/_grid.scss +++ b/vendor/twbs/bootstrap/scss/_grid.scss @@ -2,6 +2,12 @@ // // Rows contain your columns. +:root { + @each $name, $value in $grid-breakpoints { + --#{$prefix}breakpoint-#{$name}: #{$value}; + } +} + @if $enable-grid-classes { .row { @include make-row(); diff --git a/vendor/twbs/bootstrap/scss/_helpers.scss b/vendor/twbs/bootstrap/scss/_helpers.scss index 644b693fb..13f2752c9 100644 --- a/vendor/twbs/bootstrap/scss/_helpers.scss +++ b/vendor/twbs/bootstrap/scss/_helpers.scss @@ -1,6 +1,8 @@ @import "helpers/clearfix"; @import "helpers/color-bg"; @import "helpers/colored-links"; +@import "helpers/focus-ring"; +@import "helpers/icon-link"; @import "helpers/ratio"; @import "helpers/position"; @import "helpers/stacks"; diff --git a/vendor/twbs/bootstrap/scss/_list-group.scss b/vendor/twbs/bootstrap/scss/_list-group.scss index 3a976d680..455531eec 100644 --- a/vendor/twbs/bootstrap/scss/_list-group.scss +++ b/vendor/twbs/bootstrap/scss/_list-group.scss @@ -182,23 +182,16 @@ @each $state in map-keys($theme-colors) { .list-group-item-#{$state} { - --#{$prefix}list-group-color: var(--#{$prefix}#{$state}-text); + --#{$prefix}list-group-color: var(--#{$prefix}#{$state}-text-emphasis); --#{$prefix}list-group-bg: var(--#{$prefix}#{$state}-bg-subtle); --#{$prefix}list-group-border-color: var(--#{$prefix}#{$state}-border-subtle); - - &.list-group-item-action { - &:hover, - &:focus { - --#{$prefix}list-group-action-hover-color: var(--#{$prefix}emphasis-color); - --#{$prefix}list-group-action-hover-bg: var(--#{$prefix}#{$state}-border-subtle); - } - - &:active { - --#{$prefix}list-group-active-color: var(--#{$prefix}emphasis-color); - --#{$prefix}list-group-active-bg: var(--#{$prefix}#{$state}-text); - --#{$prefix}list-group-active-border-color: var(--#{$prefix}#{$state}-text); - } - } + --#{$prefix}list-group-action-hover-color: var(--#{$prefix}emphasis-color); + --#{$prefix}list-group-action-hover-bg: var(--#{$prefix}#{$state}-border-subtle); + --#{$prefix}list-group-action-active-color: var(--#{$prefix}emphasis-color); + --#{$prefix}list-group-action-active-bg: var(--#{$prefix}#{$state}-border-subtle); + --#{$prefix}list-group-active-color: var(--#{$prefix}#{$state}-bg-subtle); + --#{$prefix}list-group-active-bg: var(--#{$prefix}#{$state}-text-emphasis); + --#{$prefix}list-group-active-border-color: var(--#{$prefix}#{$state}-text-emphasis); } } // scss-docs-end list-group-modifiers diff --git a/vendor/twbs/bootstrap/scss/_maps.scss b/vendor/twbs/bootstrap/scss/_maps.scss index 6418a3f6c..68ee421c2 100644 --- a/vendor/twbs/bootstrap/scss/_maps.scss +++ b/vendor/twbs/bootstrap/scss/_maps.scss @@ -6,17 +6,20 @@ $theme-colors-rgb: map-loop($theme-colors, to-rgb, "$value") !default; // scss-docs-end theme-colors-rgb +// scss-docs-start theme-text-map $theme-colors-text: ( - "primary": $primary-text, - "secondary": $secondary-text, - "success": $success-text, - "info": $info-text, - "warning": $warning-text, - "danger": $danger-text, - "light": $light-text, - "dark": $dark-text, + "primary": $primary-text-emphasis, + "secondary": $secondary-text-emphasis, + "success": $success-text-emphasis, + "info": $info-text-emphasis, + "warning": $warning-text-emphasis, + "danger": $danger-text-emphasis, + "light": $light-text-emphasis, + "dark": $dark-text-emphasis, ) !default; +// scss-docs-end theme-text-map +// scss-docs-start theme-bg-subtle-map $theme-colors-bg-subtle: ( "primary": $primary-bg-subtle, "secondary": $secondary-bg-subtle, @@ -27,7 +30,9 @@ $theme-colors-bg-subtle: ( "light": $light-bg-subtle, "dark": $dark-bg-subtle, ) !default; +// scss-docs-end theme-bg-subtle-map +// scss-docs-start theme-border-subtle-map $theme-colors-border-subtle: ( "primary": $primary-border-subtle, "secondary": $secondary-border-subtle, @@ -38,6 +43,52 @@ $theme-colors-border-subtle: ( "light": $light-border-subtle, "dark": $dark-border-subtle, ) !default; +// scss-docs-end theme-border-subtle-map + +$theme-colors-text-dark: null !default; +$theme-colors-bg-subtle-dark: null !default; +$theme-colors-border-subtle-dark: null !default; + +@if $enable-dark-mode { + // scss-docs-start theme-text-dark-map + $theme-colors-text-dark: ( + "primary": $primary-text-emphasis-dark, + "secondary": $secondary-text-emphasis-dark, + "success": $success-text-emphasis-dark, + "info": $info-text-emphasis-dark, + "warning": $warning-text-emphasis-dark, + "danger": $danger-text-emphasis-dark, + "light": $light-text-emphasis-dark, + "dark": $dark-text-emphasis-dark, + ) !default; + // scss-docs-end theme-text-dark-map + + // scss-docs-start theme-bg-subtle-dark-map + $theme-colors-bg-subtle-dark: ( + "primary": $primary-bg-subtle-dark, + "secondary": $secondary-bg-subtle-dark, + "success": $success-bg-subtle-dark, + "info": $info-bg-subtle-dark, + "warning": $warning-bg-subtle-dark, + "danger": $danger-bg-subtle-dark, + "light": $light-bg-subtle-dark, + "dark": $dark-bg-subtle-dark, + ) !default; + // scss-docs-end theme-bg-subtle-dark-map + + // scss-docs-start theme-border-subtle-dark-map + $theme-colors-border-subtle-dark: ( + "primary": $primary-border-subtle-dark, + "secondary": $secondary-border-subtle-dark, + "success": $success-border-subtle-dark, + "info": $info-border-subtle-dark, + "warning": $warning-border-subtle-dark, + "danger": $danger-border-subtle-dark, + "light": $light-border-subtle-dark, + "dark": $dark-border-subtle-dark, + ) !default; + // scss-docs-end theme-border-subtle-dark-map +} // Utilities maps // @@ -60,14 +111,14 @@ $utilities-text: map-merge( $utilities-text-colors: map-loop($utilities-text, rgba-css-var, "$key", "text") !default; $utilities-text-emphasis-colors: ( - "primary-emphasis": var(--#{$prefix}primary-text), - "secondary-emphasis": var(--#{$prefix}secondary-text), - "success-emphasis": var(--#{$prefix}success-text), - "info-emphasis": var(--#{$prefix}info-text), - "warning-emphasis": var(--#{$prefix}warning-text), - "danger-emphasis": var(--#{$prefix}danger-text), - "light-emphasis": var(--#{$prefix}light-text), - "dark-emphasis": var(--#{$prefix}dark-text) + "primary-emphasis": var(--#{$prefix}primary-text-emphasis), + "secondary-emphasis": var(--#{$prefix}secondary-text-emphasis), + "success-emphasis": var(--#{$prefix}success-text-emphasis), + "info-emphasis": var(--#{$prefix}info-text-emphasis), + "warning-emphasis": var(--#{$prefix}warning-text-emphasis), + "danger-emphasis": var(--#{$prefix}danger-text-emphasis), + "light-emphasis": var(--#{$prefix}light-text-emphasis), + "dark-emphasis": var(--#{$prefix}dark-text-emphasis) ) !default; // scss-docs-end utilities-text-colors @@ -92,13 +143,13 @@ $utilities-bg-subtle: ( "light-subtle": var(--#{$prefix}light-bg-subtle), "dark-subtle": var(--#{$prefix}dark-bg-subtle) ) !default; -// $utilities-bg-subtle-colors: map-loop($utilities-bg-subtle, rgba-css-var, "$key", "bg") !default; // scss-docs-end utilities-bg-colors // scss-docs-start utilities-border-colors $utilities-border: map-merge( $utilities-colors, ( + "black": to-rgb($black), "white": to-rgb($white) ) ) !default; @@ -116,6 +167,8 @@ $utilities-border-subtle: ( ) !default; // scss-docs-end utilities-border-colors +$utilities-links-underline: map-loop($utilities-colors, rgba-css-var, "$key", "link-underline") !default; + $negative-spacers: if($enable-negative-margins, negativify-map($spacers), null) !default; $gutters: $spacers !default; diff --git a/vendor/twbs/bootstrap/scss/_nav.scss b/vendor/twbs/bootstrap/scss/_nav.scss index 9efc03bc8..aedbdba54 100644 --- a/vendor/twbs/bootstrap/scss/_nav.scss +++ b/vendor/twbs/bootstrap/scss/_nav.scss @@ -28,6 +28,8 @@ font-weight: var(--#{$prefix}nav-link-font-weight); color: var(--#{$prefix}nav-link-color); text-decoration: if($link-decoration == none, null, none); + background: none; + border: 0; @include transition($nav-link-transition); &:hover, @@ -36,6 +38,11 @@ text-decoration: if($link-hover-decoration == underline, none, null); } + &:focus-visible { + outline: 0; + box-shadow: $nav-link-focus-box-shadow; + } + // Disabled state lightens text &.disabled { color: var(--#{$prefix}nav-link-disabled-color); @@ -63,7 +70,6 @@ .nav-link { margin-bottom: calc(-1 * var(--#{$prefix}nav-tabs-border-width)); // stylelint-disable-line function-disallowed-list - background: none; border: var(--#{$prefix}nav-tabs-border-width) solid transparent; @include border-top-radius(var(--#{$prefix}nav-tabs-border-radius)); @@ -110,8 +116,6 @@ // scss-docs-end nav-pills-css-vars .nav-link { - background: none; - border: 0; @include border-radius(var(--#{$prefix}nav-pills-border-radius)); &:disabled { @@ -130,6 +134,39 @@ // +// Underline +// + +.nav-underline { + // scss-docs-start nav-underline-css-vars + --#{$prefix}nav-underline-gap: #{$nav-underline-gap}; + --#{$prefix}nav-underline-border-width: #{$nav-underline-border-width}; + --#{$prefix}nav-underline-link-active-color: #{$nav-underline-link-active-color}; + // scss-docs-end nav-underline-css-vars + + gap: var(--#{$prefix}nav-underline-gap); + + .nav-link { + padding-right: 0; + padding-left: 0; + border-bottom: var(--#{$prefix}nav-underline-border-width) solid transparent; + + &:hover, + &:focus { + border-bottom-color: currentcolor; + } + } + + .nav-link.active, + .show > .nav-link { + font-weight: $font-weight-bold; + color: var(--#{$prefix}nav-underline-link-active-color); + border-bottom-color: currentcolor; + } +} + + +// // Justified variants // diff --git a/vendor/twbs/bootstrap/scss/_navbar.scss b/vendor/twbs/bootstrap/scss/_navbar.scss index b65355f44..76ac085c1 100644 --- a/vendor/twbs/bootstrap/scss/_navbar.scss +++ b/vendor/twbs/bootstrap/scss/_navbar.scss @@ -100,9 +100,11 @@ margin-bottom: 0; list-style: none; - .show > .nav-link, - .nav-link.active { - color: var(--#{$prefix}navbar-active-color); + .nav-link { + &.active, + &.show { + color: var(--#{$prefix}navbar-active-color); + } } .dropdown-menu { @@ -279,7 +281,7 @@ @if $enable-dark-mode { @include color-mode(dark) { - .navbar { + .navbar-toggler-icon { --#{$prefix}navbar-toggler-icon-bg: #{escape-svg($navbar-dark-toggler-icon-bg)}; } } diff --git a/vendor/twbs/bootstrap/scss/_pagination.scss b/vendor/twbs/bootstrap/scss/_pagination.scss index ba83d3578..f275a62eb 100644 --- a/vendor/twbs/bootstrap/scss/_pagination.scss +++ b/vendor/twbs/bootstrap/scss/_pagination.scss @@ -75,7 +75,7 @@ margin-left: $pagination-margin-start; } - @if $pagination-margin-start == calc($pagination-border-width * -1) { + @if $pagination-margin-start == calc(#{$pagination-border-width} * -1) { &:first-child { .page-link { @include border-start-radius(var(--#{$prefix}pagination-border-radius)); diff --git a/vendor/twbs/bootstrap/scss/_root.scss b/vendor/twbs/bootstrap/scss/_root.scss index 2d042d30e..e7cff7056 100644 --- a/vendor/twbs/bootstrap/scss/_root.scss +++ b/vendor/twbs/bootstrap/scss/_root.scss @@ -23,7 +23,7 @@ } @each $color, $value in $theme-colors-text { - --#{$prefix}#{$color}-text: #{$value}; + --#{$prefix}#{$color}-text-emphasis: #{$value}; } @each $color, $value in $theme-colors-bg-subtle { @@ -36,8 +36,6 @@ --#{$prefix}white-rgb: #{to-rgb($white)}; --#{$prefix}black-rgb: #{to-rgb($black)}; - --#{$prefix}body-color-rgb: #{to-rgb($body-color)}; - --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)}; // Fonts @@ -56,7 +54,14 @@ @include rfs($font-size-base, --#{$prefix}body-font-size); --#{$prefix}body-font-weight: #{$font-weight-base}; --#{$prefix}body-line-height: #{$line-height-base}; + @if $body-text-align != null { + --#{$prefix}body-text-align: #{$body-text-align}; + } + --#{$prefix}body-color: #{$body-color}; + --#{$prefix}body-color-rgb: #{to-rgb($body-color)}; + --#{$prefix}body-bg: #{$body-bg}; + --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)}; --#{$prefix}emphasis-color: #{$body-emphasis-color}; --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color)}; @@ -70,12 +75,6 @@ --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color)}; --#{$prefix}tertiary-bg: #{$body-tertiary-bg}; --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg)}; - - @if $body-text-align != null { - --#{$prefix}body-text-align: #{$body-text-align}; - } - --#{$prefix}body-bg: #{$body-bg}; - --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)}; // scss-docs-end root-body-variables @if $headings-color != null { @@ -106,7 +105,8 @@ --#{$prefix}border-radius-sm: #{$border-radius-sm}; --#{$prefix}border-radius-lg: #{$border-radius-lg}; --#{$prefix}border-radius-xl: #{$border-radius-xl}; - --#{$prefix}border-radius-2xl: #{$border-radius-2xl}; + --#{$prefix}border-radius-xxl: #{$border-radius-xxl}; + --#{$prefix}border-radius-2xl: var(--#{$prefix}border-radius-xxl); // Deprecated in v5.3.0 for consistency --#{$prefix}border-radius-pill: #{$border-radius-pill}; // scss-docs-end root-border-var @@ -115,22 +115,25 @@ --#{$prefix}box-shadow-lg: #{$box-shadow-lg}; --#{$prefix}box-shadow-inset: #{$box-shadow-inset}; - --#{$prefix}emphasis-color: #{$emphasis-color}; - - // scss-docs-start form-control-vars - --#{$prefix}form-control-bg: var(--#{$prefix}body-bg); - --#{$prefix}form-control-disabled-bg: var(--#{$prefix}secondary-bg); - // scss-docs-end form-control-vars - - --#{$prefix}highlight-bg: #{$mark-bg}; - - @each $name, $value in $grid-breakpoints { - --#{$prefix}breakpoint-#{$name}: #{$value}; - } + // Focus styles + // scss-docs-start root-focus-variables + --#{$prefix}focus-ring-width: #{$focus-ring-width}; + --#{$prefix}focus-ring-opacity: #{$focus-ring-opacity}; + --#{$prefix}focus-ring-color: #{$focus-ring-color}; + // scss-docs-end root-focus-variables + + // scss-docs-start root-form-validation-variables + --#{$prefix}form-valid-color: #{$form-valid-color}; + --#{$prefix}form-valid-border-color: #{$form-valid-border-color}; + --#{$prefix}form-invalid-color: #{$form-invalid-color}; + --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color}; + // scss-docs-end root-form-validation-variables } @if $enable-dark-mode { @include color-mode(dark, true) { + color-scheme: dark; + // scss-docs-start root-dark-mode-vars --#{$prefix}body-color: #{$body-color-dark}; --#{$prefix}body-color-rgb: #{to-rgb($body-color-dark)}; @@ -150,36 +153,21 @@ --#{$prefix}tertiary-bg: #{$body-tertiary-bg-dark}; --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg-dark)}; - --#{$prefix}emphasis-color: #{$emphasis-color-dark}; - - --#{$prefix}primary-text: #{$primary-text-dark}; - --#{$prefix}secondary-text: #{$secondary-text-dark}; - --#{$prefix}success-text: #{$success-text-dark}; - --#{$prefix}info-text: #{$info-text-dark}; - --#{$prefix}warning-text: #{$warning-text-dark}; - --#{$prefix}danger-text: #{$danger-text-dark}; - --#{$prefix}light-text: #{$light-text-dark}; - --#{$prefix}dark-text: #{$dark-text-dark}; - - --#{$prefix}primary-bg-subtle: #{$primary-bg-subtle-dark}; - --#{$prefix}secondary-bg-subtle: #{$secondary-bg-subtle-dark}; - --#{$prefix}success-bg-subtle: #{$success-bg-subtle-dark}; - --#{$prefix}info-bg-subtle: #{$info-bg-subtle-dark}; - --#{$prefix}warning-bg-subtle: #{$warning-bg-subtle-dark}; - --#{$prefix}danger-bg-subtle: #{$danger-bg-subtle-dark}; - --#{$prefix}light-bg-subtle: #{$light-bg-subtle-dark}; - --#{$prefix}dark-bg-subtle: #{$dark-bg-subtle-dark}; - - --#{$prefix}primary-border-subtle: #{$primary-border-subtle-dark}; - --#{$prefix}secondary-border-subtle: #{$secondary-border-subtle-dark}; - --#{$prefix}success-border-subtle: #{$success-border-subtle-dark}; - --#{$prefix}info-border-subtle: #{$info-border-subtle-dark}; - --#{$prefix}warning-border-subtle: #{$warning-border-subtle-dark}; - --#{$prefix}danger-border-subtle: #{$danger-border-subtle-dark}; - --#{$prefix}light-border-subtle: #{$light-border-subtle-dark}; - --#{$prefix}dark-border-subtle: #{$dark-border-subtle-dark}; - - --#{$prefix}heading-color: #{$headings-color-dark}; + @each $color, $value in $theme-colors-text-dark { + --#{$prefix}#{$color}-text-emphasis: #{$value}; + } + + @each $color, $value in $theme-colors-bg-subtle-dark { + --#{$prefix}#{$color}-bg-subtle: #{$value}; + } + + @each $color, $value in $theme-colors-border-subtle-dark { + --#{$prefix}#{$color}-border-subtle: #{$value}; + } + + @if $headings-color-dark != null { + --#{$prefix}heading-color: #{$headings-color-dark}; + } --#{$prefix}link-color: #{$link-color-dark}; --#{$prefix}link-hover-color: #{$link-hover-color-dark}; @@ -190,6 +178,11 @@ --#{$prefix}border-color: #{$border-color-dark}; --#{$prefix}border-color-translucent: #{$border-color-translucent-dark}; + + --#{$prefix}form-valid-color: #{$form-valid-color-dark}; + --#{$prefix}form-valid-border-color: #{$form-valid-border-color-dark}; + --#{$prefix}form-invalid-color: #{$form-invalid-color-dark}; + --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color-dark}; // scss-docs-end root-dark-mode-vars } } diff --git a/vendor/twbs/bootstrap/scss/_tables.scss b/vendor/twbs/bootstrap/scss/_tables.scss index 6c981f6c2..23de7c31b 100644 --- a/vendor/twbs/bootstrap/scss/_tables.scss +++ b/vendor/twbs/bootstrap/scss/_tables.scss @@ -42,7 +42,7 @@ } .table-group-divider { - border-top: calc($table-border-width * 2) solid $table-group-separator-color; // stylelint-disable-line function-disallowed-list + border-top: calc(#{$table-border-width} * 2) solid $table-group-separator-color; // stylelint-disable-line function-disallowed-list } // diff --git a/vendor/twbs/bootstrap/scss/_tooltip.scss b/vendor/twbs/bootstrap/scss/_tooltip.scss index 7da3df3e0..85de90f53 100644 --- a/vendor/twbs/bootstrap/scss/_tooltip.scss +++ b/vendor/twbs/bootstrap/scss/_tooltip.scss @@ -17,7 +17,6 @@ z-index: var(--#{$prefix}tooltip-zindex); display: block; - padding: var(--#{$prefix}tooltip-arrow-height); margin: var(--#{$prefix}tooltip-margin); @include deprecate("`$tooltip-margin`", "v5", "v5.x", true); // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element. @@ -45,7 +44,7 @@ } .bs-tooltip-top .tooltip-arrow { - bottom: 0; + bottom: calc(-1 * var(--#{$prefix}tooltip-arrow-height)); // stylelint-disable-line function-disallowed-list &::before { top: -1px; @@ -56,7 +55,7 @@ /* rtl:begin:ignore */ .bs-tooltip-end .tooltip-arrow { - left: 0; + left: calc(-1 * var(--#{$prefix}tooltip-arrow-height)); // stylelint-disable-line function-disallowed-list width: var(--#{$prefix}tooltip-arrow-height); height: var(--#{$prefix}tooltip-arrow-width); @@ -70,7 +69,7 @@ /* rtl:end:ignore */ .bs-tooltip-bottom .tooltip-arrow { - top: 0; + top: calc(-1 * var(--#{$prefix}tooltip-arrow-height)); // stylelint-disable-line function-disallowed-list &::before { bottom: -1px; @@ -81,7 +80,7 @@ /* rtl:begin:ignore */ .bs-tooltip-start .tooltip-arrow { - right: 0; + right: calc(-1 * var(--#{$prefix}tooltip-arrow-height)); // stylelint-disable-line function-disallowed-list width: var(--#{$prefix}tooltip-arrow-height); height: var(--#{$prefix}tooltip-arrow-width); diff --git a/vendor/twbs/bootstrap/scss/_utilities.scss b/vendor/twbs/bootstrap/scss/_utilities.scss index 4c2c39dd7..e6069c909 100644 --- a/vendor/twbs/bootstrap/scss/_utilities.scss +++ b/vendor/twbs/bootstrap/scss/_utilities.scss @@ -69,7 +69,7 @@ $utilities: map-merge( print: true, property: display, class: d, - values: inline inline-block block grid table table-row table-cell flex inline-flex none + values: inline inline-block block grid inline-grid table table-row table-cell flex inline-flex none ), // scss-docs-end utils-display // scss-docs-start utils-shadow @@ -84,6 +84,14 @@ $utilities: map-merge( ) ), // scss-docs-end utils-shadow + // scss-docs-start utils-focus-ring + "focus-ring": ( + css-var: true, + css-variable-name: focus-ring-color, + class: focus-ring, + values: map-loop($theme-colors-rgb, rgba-css-var, "$key", "focus-ring") + ), + // scss-docs-end utils-focus-ring // scss-docs-start utils-position "position": ( property: position, @@ -169,8 +177,7 @@ $utilities: map-merge( values: $utilities-border-subtle ), "border-width": ( - css-var: true, - css-variable-name: border-width, + property: border-width, class: border, values: $border-widths ), @@ -575,7 +582,7 @@ $utilities: map-merge( values: map-merge( $utilities-text-colors, ( - "muted": $text-muted, // deprecated + "muted": var(--#{$prefix}secondary-color), // deprecated "black-50": rgba($black, .5), // deprecated "white-50": rgba($white, .5), // deprecated "body-secondary": var(--#{$prefix}secondary-color), @@ -601,6 +608,56 @@ $utilities: map-merge( values: $utilities-text-emphasis-colors ), // scss-docs-end utils-color + // scss-docs-start utils-links + "link-opacity": ( + css-var: true, + class: link-opacity, + state: hover, + values: ( + 10: .1, + 25: .25, + 50: .5, + 75: .75, + 100: 1 + ) + ), + "link-offset": ( + property: text-underline-offset, + class: link-offset, + state: hover, + values: ( + 1: .125em, + 2: .25em, + 3: .375em, + ) + ), + "link-underline": ( + property: text-decoration-color, + class: link-underline, + local-vars: ( + "link-underline-opacity": 1 + ), + values: map-merge( + $utilities-links-underline, + ( + null: rgba(var(--#{$prefix}link-color-rgb), var(--#{$prefix}link-underline-opacity, 1)), + ) + ) + ), + "link-underline-opacity": ( + css-var: true, + class: link-underline-opacity, + state: hover, + values: ( + 0: 0, + 10: .1, + 25: .25, + 50: .5, + 75: .75, + 100: 1 + ), + ), + // scss-docs-end utils-links // scss-docs-start utils-bg-color "background-color": ( property: background-color, @@ -614,7 +671,6 @@ $utilities: map-merge( "transparent": transparent, "body-secondary": rgba(var(--#{$prefix}secondary-bg-rgb), var(--#{$prefix}bg-opacity)), "body-tertiary": rgba(var(--#{$prefix}tertiary-bg-rgb), var(--#{$prefix}bg-opacity)), - "body-emphasis": rgba(var(--#{$prefix}emphasis-bg-rgb), var(--#{$prefix}bg-opacity)), ) ) ), @@ -662,7 +718,7 @@ $utilities: map-merge( 2: var(--#{$prefix}border-radius), 3: var(--#{$prefix}border-radius-lg), 4: var(--#{$prefix}border-radius-xl), - 5: var(--#{$prefix}border-radius-2xl), + 5: var(--#{$prefix}border-radius-xxl), circle: 50%, pill: var(--#{$prefix}border-radius-pill) ) @@ -677,7 +733,7 @@ $utilities: map-merge( 2: var(--#{$prefix}border-radius), 3: var(--#{$prefix}border-radius-lg), 4: var(--#{$prefix}border-radius-xl), - 5: var(--#{$prefix}border-radius-2xl), + 5: var(--#{$prefix}border-radius-xxl), circle: 50%, pill: var(--#{$prefix}border-radius-pill) ) @@ -692,7 +748,7 @@ $utilities: map-merge( 2: var(--#{$prefix}border-radius), 3: var(--#{$prefix}border-radius-lg), 4: var(--#{$prefix}border-radius-xl), - 5: var(--#{$prefix}border-radius-2xl), + 5: var(--#{$prefix}border-radius-xxl), circle: 50%, pill: var(--#{$prefix}border-radius-pill) ) @@ -707,7 +763,7 @@ $utilities: map-merge( 2: var(--#{$prefix}border-radius), 3: var(--#{$prefix}border-radius-lg), 4: var(--#{$prefix}border-radius-xl), - 5: var(--#{$prefix}border-radius-2xl), + 5: var(--#{$prefix}border-radius-xxl), circle: 50%, pill: var(--#{$prefix}border-radius-pill) ) @@ -722,7 +778,7 @@ $utilities: map-merge( 2: var(--#{$prefix}border-radius), 3: var(--#{$prefix}border-radius-lg), 4: var(--#{$prefix}border-radius-xl), - 5: var(--#{$prefix}border-radius-2xl), + 5: var(--#{$prefix}border-radius-xxl), circle: 50%, pill: var(--#{$prefix}border-radius-pill) ) @@ -738,11 +794,13 @@ $utilities: map-merge( ) ), // scss-docs-end utils-visibility + // scss-docs-start utils-zindex "z-index": ( property: z-index, class: z, values: $zindex-levels, ) + // scss-docs-end utils-zindex ), $utilities ); diff --git a/vendor/twbs/bootstrap/scss/_variables-dark.scss b/vendor/twbs/bootstrap/scss/_variables-dark.scss index 9a3874fdc..ddc8ba31d 100644 --- a/vendor/twbs/bootstrap/scss/_variables-dark.scss +++ b/vendor/twbs/bootstrap/scss/_variables-dark.scss @@ -7,47 +7,52 @@ // // scss-docs-start sass-dark-mode-vars -$primary-text-dark: $blue-300 !default; -$secondary-text-dark: $gray-300 !default; -$success-text-dark: $green-300 !default; -$info-text-dark: $cyan-300 !default; -$warning-text-dark: $yellow-300 !default; -$danger-text-dark: $red-300 !default; -$light-text-dark: $gray-100 !default; -$dark-text-dark: $gray-300 !default; +// scss-docs-start theme-text-dark-variables +$primary-text-emphasis-dark: tint-color($primary, 40%) !default; +$secondary-text-emphasis-dark: tint-color($secondary, 40%) !default; +$success-text-emphasis-dark: tint-color($success, 40%) !default; +$info-text-emphasis-dark: tint-color($info, 40%) !default; +$warning-text-emphasis-dark: tint-color($warning, 40%) !default; +$danger-text-emphasis-dark: tint-color($danger, 40%) !default; +$light-text-emphasis-dark: $gray-100 !default; +$dark-text-emphasis-dark: $gray-300 !default; +// scss-docs-end theme-text-dark-variables -$primary-bg-subtle-dark: $blue-900 !default; -$secondary-bg-subtle-dark: $gray-900 !default; -$success-bg-subtle-dark: $green-900 !default; -$info-bg-subtle-dark: $cyan-900 !default; -$warning-bg-subtle-dark: $yellow-900 !default; -$danger-bg-subtle-dark: $red-900 !default; +// scss-docs-start theme-bg-subtle-dark-variables +$primary-bg-subtle-dark: shade-color($primary, 80%) !default; +$secondary-bg-subtle-dark: shade-color($secondary, 80%) !default; +$success-bg-subtle-dark: shade-color($success, 80%) !default; +$info-bg-subtle-dark: shade-color($info, 80%) !default; +$warning-bg-subtle-dark: shade-color($warning, 80%) !default; +$danger-bg-subtle-dark: shade-color($danger, 80%) !default; $light-bg-subtle-dark: $gray-800 !default; $dark-bg-subtle-dark: mix($gray-800, $black) !default; +// scss-docs-end theme-bg-subtle-dark-variables -$primary-border-subtle-dark: $blue-700 !default; -$secondary-border-subtle-dark: $gray-700 !default; -$success-border-subtle-dark: $green-700 !default; -$info-border-subtle-dark: $cyan-800 !default; -$warning-border-subtle-dark: $yellow-800 !default; -$danger-border-subtle-dark: $red-700 !default; +// scss-docs-start theme-border-subtle-dark-variables +$primary-border-subtle-dark: shade-color($primary, 40%) !default; +$secondary-border-subtle-dark: shade-color($secondary, 40%) !default; +$success-border-subtle-dark: shade-color($success, 40%) !default; +$info-border-subtle-dark: shade-color($info, 40%) !default; +$warning-border-subtle-dark: shade-color($warning, 40%) !default; +$danger-border-subtle-dark: shade-color($danger, 40%) !default; $light-border-subtle-dark: $gray-700 !default; $dark-border-subtle-dark: $gray-800 !default; +// scss-docs-end theme-border-subtle-dark-variables $body-color-dark: $gray-500 !default; $body-bg-dark: $gray-900 !default; -$body-emphasis-color-dark: $gray-100 !default; $body-secondary-color-dark: rgba($body-color-dark, .75) !default; $body-secondary-bg-dark: $gray-800 !default; $body-tertiary-color-dark: rgba($body-color-dark, .5) !default; $body-tertiary-bg-dark: mix($gray-800, $gray-900, 50%) !default; -$emphasis-color-dark: $white !default; +$body-emphasis-color-dark: $white !default; $border-color-dark: $gray-700 !default; $border-color-translucent-dark: rgba($white, .15) !default; -$headings-color-dark: #fff !default; -$link-color-dark: $blue-300 !default; -$link-hover-color-dark: $blue-200 !default; -$code-color-dark: $pink-300 !default; +$headings-color-dark: null !default; +$link-color-dark: tint-color($primary, 40%) !default; +$link-hover-color-dark: shift-color($link-color-dark, -$link-shade-percentage) !default; +$code-color-dark: tint-color($code-color, 40%) !default; // @@ -60,11 +65,21 @@ $form-select-indicator-dark: url("data:image/svg+xml,<svg xmlns='http://w $form-switch-color-dark: rgba($white, .25) !default; $form-switch-bg-image-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'><circle r='3' fill='#{$form-switch-color-dark}'/></svg>") !default; +// scss-docs-start form-validation-colors-dark +$form-valid-color-dark: $green-300 !default; +$form-valid-border-color-dark: $green-300 !default; +$form-invalid-color-dark: $red-300 !default; +$form-invalid-border-color-dark: $red-300 !default; +// scss-docs-end form-validation-colors-dark + // // Accordion // -$accordion-button-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$primary-text-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; -$accordion-button-active-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$primary-text-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; +$accordion-icon-color-dark: $primary-text-emphasis-dark !default; +$accordion-icon-active-color-dark: $primary-text-emphasis-dark !default; + +$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; +$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; // scss-docs-end sass-dark-mode-vars diff --git a/vendor/twbs/bootstrap/scss/_variables.scss b/vendor/twbs/bootstrap/scss/_variables.scss index 09438a6cb..e311bb0ef 100644 --- a/vendor/twbs/bootstrap/scss/_variables.scss +++ b/vendor/twbs/bootstrap/scss/_variables.scss @@ -321,32 +321,38 @@ $theme-colors: ( ) !default; // scss-docs-end theme-colors-map -$primary-text: $blue-600 !default; -$secondary-text: $gray-600 !default; -$success-text: $green-600 !default; -$info-text: $cyan-700 !default; -$warning-text: $yellow-700 !default; -$danger-text: $red-600 !default; -$light-text: $gray-600 !default; -$dark-text: $gray-700 !default; - -$primary-bg-subtle: $blue-100 !default; -$secondary-bg-subtle: $gray-100 !default; -$success-bg-subtle: $green-100 !default; -$info-bg-subtle: $cyan-100 !default; -$warning-bg-subtle: $yellow-100 !default; -$danger-bg-subtle: $red-100 !default; +// scss-docs-start theme-text-variables +$primary-text-emphasis: shade-color($primary, 60%) !default; +$secondary-text-emphasis: shade-color($secondary, 60%) !default; +$success-text-emphasis: shade-color($success, 60%) !default; +$info-text-emphasis: shade-color($info, 60%) !default; +$warning-text-emphasis: shade-color($warning, 60%) !default; +$danger-text-emphasis: shade-color($danger, 60%) !default; +$light-text-emphasis: $gray-700 !default; +$dark-text-emphasis: $gray-700 !default; +// scss-docs-end theme-text-variables + +// scss-docs-start theme-bg-subtle-variables +$primary-bg-subtle: tint-color($primary, 80%) !default; +$secondary-bg-subtle: tint-color($secondary, 80%) !default; +$success-bg-subtle: tint-color($success, 80%) !default; +$info-bg-subtle: tint-color($info, 80%) !default; +$warning-bg-subtle: tint-color($warning, 80%) !default; +$danger-bg-subtle: tint-color($danger, 80%) !default; $light-bg-subtle: mix($gray-100, $white) !default; $dark-bg-subtle: $gray-400 !default; - -$primary-border-subtle: $blue-200 !default; -$secondary-border-subtle: $gray-200 !default; -$success-border-subtle: $green-200 !default; -$info-border-subtle: $cyan-200 !default; -$warning-border-subtle: $yellow-200 !default; -$danger-border-subtle: $red-200 !default; +// scss-docs-end theme-bg-subtle-variables + +// scss-docs-start theme-border-subtle-variables +$primary-border-subtle: tint-color($primary, 60%) !default; +$secondary-border-subtle: tint-color($secondary, 60%) !default; +$success-border-subtle: tint-color($success, 60%) !default; +$info-border-subtle: tint-color($info, 60%) !default; +$warning-border-subtle: tint-color($warning, 60%) !default; +$danger-border-subtle: tint-color($danger, 60%) !default; $light-border-subtle: $gray-200 !default; $dark-border-subtle: $gray-500 !default; +// scss-docs-end theme-border-subtle-variables // Characters which are escaped by the escape-svg function $escaped-characters: ( @@ -432,15 +438,13 @@ $body-text-align: null !default; $body-color: $gray-900 !default; $body-bg: $white !default; -$body-emphasis-color: $black !default; - $body-secondary-color: rgba($body-color, .75) !default; $body-secondary-bg: $gray-200 !default; $body-tertiary-color: rgba($body-color, .5) !default; $body-tertiary-bg: $gray-100 !default; -$emphasis-color: $black !default; +$body-emphasis-color: $black !default; // Links // @@ -455,6 +459,15 @@ $link-hover-decoration: null !default; $stretched-link-pseudo-element: after !default; $stretched-link-z-index: 1 !default; +// Icon links +// scss-docs-start icon-link-variables +$icon-link-gap: .375rem !default; +$icon-link-underline-offset: .25em !default; +$icon-link-icon-size: 1em !default; +$icon-link-icon-transition: .2s ease-in-out transform !default; +$icon-link-icon-transform: translate3d(.25em, 0, 0) !default; +// scss-docs-end icon-link-variables + // Paragraphs // // Style p element. @@ -535,20 +548,31 @@ $border-radius: .375rem !default; $border-radius-sm: .25rem !default; $border-radius-lg: .5rem !default; $border-radius-xl: 1rem !default; -$border-radius-2xl: 2rem !default; +$border-radius-xxl: 2rem !default; $border-radius-pill: 50rem !default; // scss-docs-end border-radius-variables +// fusv-disable +$border-radius-2xl: $border-radius-xxl !default; // Deprecated in v5.3.0 +// fusv-enable // scss-docs-start box-shadow-variables -$box-shadow: 0 .5rem 1rem rgba(var(--#{$prefix}body-color-rgb), .15) !default; -$box-shadow-sm: 0 .125rem .25rem rgba(var(--#{$prefix}body-color-rgb), .075) !default; -$box-shadow-lg: 0 1rem 3rem rgba(var(--#{$prefix}body-color-rgb), .175) !default; -$box-shadow-inset: inset 0 1px 2px rgba(var(--#{$prefix}body-color-rgb), .075) !default; +$box-shadow: 0 .5rem 1rem rgba($black, .15) !default; +$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default; +$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default; +$box-shadow-inset: inset 0 1px 2px rgba($black, .075) !default; // scss-docs-end box-shadow-variables $component-active-color: $white !default; $component-active-bg: $primary !default; +// scss-docs-start focus-ring-variables +$focus-ring-width: .25rem !default; +$focus-ring-opacity: .25 !default; +$focus-ring-color: rgba($primary, $focus-ring-opacity) !default; +$focus-ring-blur: 0 !default; +$focus-ring-box-shadow: 0 0 $focus-ring-blur $focus-ring-width $focus-ring-color !default; +// scss-docs-end focus-ring-variables + // scss-docs-start caret-variables $caret-width: .3em !default; $caret-vertical-align: $caret-width * .85 !default; @@ -658,7 +682,9 @@ $small-font-size: .875em !default; $sub-sup-font-size: .75em !default; -$text-muted: var(--#{$prefix}secondary-color) !default; +// fusv-disable +$text-muted: var(--#{$prefix}secondary-color) !default; // Deprecated in 5.3.0 +// fusv-enable $initialism-font-size: $small-font-size !default; @@ -731,7 +757,7 @@ $table-striped-columns-order: even !default; $table-group-separator-color: currentcolor !default; -$table-caption-color: $text-muted !default; +$table-caption-color: var(--#{$prefix}secondary-color) !default; $table-bg-scale: -80% !default; // scss-docs-end table-variables @@ -761,11 +787,11 @@ $input-btn-font-family: null !default; $input-btn-font-size: $font-size-base !default; $input-btn-line-height: $line-height-base !default; -$input-btn-focus-width: .25rem !default; -$input-btn-focus-color-opacity: .25 !default; -$input-btn-focus-color: rgba($component-active-bg, $input-btn-focus-color-opacity) !default; -$input-btn-focus-blur: 0 !default; -$input-btn-focus-box-shadow: 0 0 $input-btn-focus-blur $input-btn-focus-width $input-btn-focus-color !default; +$input-btn-focus-width: $focus-ring-width !default; +$input-btn-focus-color-opacity: $focus-ring-opacity !default; +$input-btn-focus-color: $focus-ring-color !default; +$input-btn-focus-blur: $focus-ring-blur !default; +$input-btn-focus-box-shadow: $focus-ring-box-shadow !default; $input-btn-padding-y-sm: .25rem !default; $input-btn-padding-x-sm: .5rem !default; @@ -784,6 +810,7 @@ $input-btn-border-width: var(--#{$prefix}border-width) !default; // For each of Bootstrap's buttons, define text, background, and border color. // scss-docs-start btn-variables +$btn-color: var(--#{$prefix}body-color) !default; $btn-padding-y: $input-btn-padding-y !default; $btn-padding-x: $input-btn-padding-x !default; $btn-font-family: $input-btn-font-family !default; @@ -813,9 +840,9 @@ $btn-link-hover-color: var(--#{$prefix}link-hover-color) !default; $btn-link-disabled-color: $gray-600 !default; // Allows for customizing button radius independently from global border radius -$btn-border-radius: $border-radius !default; -$btn-border-radius-sm: $border-radius-sm !default; -$btn-border-radius-lg: $border-radius-lg !default; +$btn-border-radius: var(--#{$prefix}border-radius) !default; +$btn-border-radius-sm: var(--#{$prefix}border-radius-sm) !default; +$btn-border-radius-lg: var(--#{$prefix}border-radius-lg) !default; $btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default; @@ -837,7 +864,7 @@ $form-text-margin-top: .25rem !default; $form-text-font-size: $small-font-size !default; $form-text-font-style: null !default; $form-text-font-weight: null !default; -$form-text-color: $text-muted !default; +$form-text-color: var(--#{$prefix}secondary-color) !default; // scss-docs-end form-text-variables // scss-docs-start form-label-variables @@ -864,19 +891,19 @@ $input-padding-y-lg: $input-btn-padding-y-lg !default; $input-padding-x-lg: $input-btn-padding-x-lg !default; $input-font-size-lg: $input-btn-font-size-lg !default; -$input-bg: var(--#{$prefix}form-control-bg) !default; +$input-bg: var(--#{$prefix}body-bg) !default; $input-disabled-color: null !default; -$input-disabled-bg: var(--#{$prefix}form-control-disabled-bg) !default; +$input-disabled-bg: var(--#{$prefix}secondary-bg) !default; $input-disabled-border-color: null !default; $input-color: var(--#{$prefix}body-color) !default; -$input-border-color: var(--#{$prefix}border-color) !default; //$gray-400 +$input-border-color: var(--#{$prefix}border-color) !default; $input-border-width: $input-btn-border-width !default; $input-box-shadow: $box-shadow-inset !default; -$input-border-radius: $border-radius !default; -$input-border-radius-sm: $border-radius-sm !default; -$input-border-radius-lg: $border-radius-lg !default; +$input-border-radius: var(--#{$prefix}border-radius) !default; +$input-border-radius-sm: var(--#{$prefix}border-radius-sm) !default; +$input-border-radius-lg: var(--#{$prefix}border-radius-lg) !default; $input-focus-bg: $input-bg !default; $input-focus-border-color: tint-color($component-active-bg, 50%) !default; @@ -887,7 +914,7 @@ $input-focus-box-shadow: $input-btn-focus-box-shadow !default; $input-placeholder-color: var(--#{$prefix}secondary-color) !default; $input-plaintext-color: var(--#{$prefix}body-color) !default; -$input-height-border: calc($input-border-width * 2) !default; // stylelint-disable-line function-disallowed-list +$input-height-border: calc(#{$input-border-width} * 2) !default; // stylelint-disable-line function-disallowed-list $input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default; $input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default; @@ -918,7 +945,7 @@ $form-check-input-border: var(--#{$prefix}border-width) solid va $form-check-input-border-radius: .25em !default; $form-check-radio-border-radius: 50% !default; $form-check-input-focus-border: $input-focus-border-color !default; -$form-check-input-focus-box-shadow: $input-btn-focus-box-shadow !default; +$form-check-input-focus-box-shadow: $focus-ring-box-shadow !default; $form-check-input-checked-color: $component-active-color !default; $form-check-input-checked-bg-color: $component-active-bg !default; @@ -1041,7 +1068,7 @@ $form-floating-padding-x: $input-padding-x !default; $form-floating-padding-y: 1rem !default; $form-floating-input-padding-t: 1.625rem !default; $form-floating-input-padding-b: .625rem !default; -$form-floating-label-height: 1.875em !default; +$form-floating-label-height: 1.5em !default; $form-floating-label-opacity: .65 !default; $form-floating-label-transform: scale(.85) translateY(-.5rem) translateX(.15rem) !default; $form-floating-label-disabled-color: $gray-600 !default; @@ -1063,23 +1090,30 @@ $form-feedback-icon-invalid-color: $form-feedback-invalid-color !default; $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; // scss-docs-end form-feedback-variables +// scss-docs-start form-validation-colors +$form-valid-color: $form-feedback-valid-color !default; +$form-valid-border-color: $form-feedback-valid-color !default; +$form-invalid-color: $form-feedback-invalid-color !default; +$form-invalid-border-color: $form-feedback-invalid-color !default; +// scss-docs-end form-validation-colors + // scss-docs-start form-validation-states $form-validation-states: ( "valid": ( - "color": var(--#{$prefix}success-text), + "color": var(--#{$prefix}form-valid-color), "icon": $form-feedback-icon-valid, "tooltip-color": #fff, "tooltip-bg-color": var(--#{$prefix}success), "focus-box-shadow": 0 0 $input-btn-focus-blur $input-focus-width rgba(var(--#{$prefix}success-rgb), $input-btn-focus-color-opacity), - "border-color": var(--#{$prefix}success), + "border-color": var(--#{$prefix}form-valid-border-color), ), "invalid": ( - "color": var(--#{$prefix}danger-text), + "color": var(--#{$prefix}form-invalid-color), "icon": $form-feedback-icon-invalid, "tooltip-color": #fff, "tooltip-bg-color": var(--#{$prefix}danger), "focus-box-shadow": 0 0 $input-btn-focus-blur $input-focus-width rgba(var(--#{$prefix}danger-rgb), $input-btn-focus-color-opacity), - "border-color": var(--#{$prefix}danger), + "border-color": var(--#{$prefix}form-invalid-border-color), ) ) !default; // scss-docs-end form-validation-states @@ -1124,6 +1158,7 @@ $nav-link-color: var(--#{$prefix}link-color) !default; $nav-link-hover-color: var(--#{$prefix}link-hover-color) !default; $nav-link-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out !default; $nav-link-disabled-color: var(--#{$prefix}secondary-color) !default; +$nav-link-focus-box-shadow: $focus-ring-box-shadow !default; $nav-tabs-border-color: var(--#{$prefix}border-color) !default; $nav-tabs-border-width: var(--#{$prefix}border-width) !default; @@ -1133,9 +1168,13 @@ $nav-tabs-link-active-color: var(--#{$prefix}emphasis-color) !default; $nav-tabs-link-active-bg: var(--#{$prefix}body-bg) !default; $nav-tabs-link-active-border-color: var(--#{$prefix}border-color) var(--#{$prefix}border-color) $nav-tabs-link-active-bg !default; -$nav-pills-border-radius: $border-radius !default; +$nav-pills-border-radius: var(--#{$prefix}border-radius) !default; $nav-pills-link-active-color: $component-active-color !default; $nav-pills-link-active-bg: $component-active-bg !default; + +$nav-underline-gap: 1rem !default; +$nav-underline-border-width: .125rem !default; +$nav-underline-link-active-color: var(--#{$prefix}emphasis-color) !default; // scss-docs-end nav-variables @@ -1165,7 +1204,8 @@ $navbar-light-color: rgba(var(--#{$prefix}emphasis-color-rgb), .6 $navbar-light-hover-color: rgba(var(--#{$prefix}emphasis-color-rgb), .8) !default; $navbar-light-active-color: rgba(var(--#{$prefix}emphasis-color-rgb), 1) !default; $navbar-light-disabled-color: rgba(var(--#{$prefix}emphasis-color-rgb), .3) !default; -$navbar-light-toggler-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke='#{rgba($body-color, .75)}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>") !default; +$navbar-light-icon-color: rgba($body-color, .75) !default; +$navbar-light-toggler-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke='#{$navbar-light-icon-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>") !default; $navbar-light-toggler-border-color: rgba(var(--#{$prefix}emphasis-color-rgb), .15) !default; $navbar-light-brand-color: $navbar-light-active-color !default; $navbar-light-brand-hover-color: $navbar-light-active-color !default; @@ -1196,9 +1236,9 @@ $dropdown-font-size: $font-size-base !default; $dropdown-color: var(--#{$prefix}body-color) !default; $dropdown-bg: var(--#{$prefix}body-bg) !default; $dropdown-border-color: var(--#{$prefix}border-color-translucent) !default; -$dropdown-border-radius: $border-radius !default; +$dropdown-border-radius: var(--#{$prefix}border-radius) !default; $dropdown-border-width: var(--#{$prefix}border-width) !default; -$dropdown-inner-border-radius: calc($dropdown-border-radius - $dropdown-border-width) !default; // stylelint-disable-line function-disallowed-list +$dropdown-inner-border-radius: calc(#{$dropdown-border-radius} - #{$dropdown-border-width}) !default; // stylelint-disable-line function-disallowed-list $dropdown-divider-bg: $dropdown-border-color !default; $dropdown-divider-margin-y: $spacer * .5 !default; $dropdown-box-shadow: $box-shadow !default; @@ -1210,7 +1250,7 @@ $dropdown-link-hover-bg: var(--#{$prefix}tertiary-bg) !default; $dropdown-link-active-color: $component-active-color !default; $dropdown-link-active-bg: $component-active-bg !default; -$dropdown-link-disabled-color: $gray-500 !default; +$dropdown-link-disabled-color: var(--#{$prefix}tertiary-color) !default; $dropdown-item-padding-y: $spacer * .25 !default; $dropdown-item-padding-x: $spacer !default; @@ -1255,12 +1295,12 @@ $pagination-color: var(--#{$prefix}link-color) !default; $pagination-bg: var(--#{$prefix}body-bg) !default; $pagination-border-radius: var(--#{$prefix}border-radius) !default; $pagination-border-width: var(--#{$prefix}border-width) !default; -$pagination-margin-start: calc($pagination-border-width * -1) !default; // stylelint-disable-line function-disallowed-list +$pagination-margin-start: calc(#{$pagination-border-width} * -1) !default; // stylelint-disable-line function-disallowed-list $pagination-border-color: var(--#{$prefix}border-color) !default; $pagination-focus-color: var(--#{$prefix}link-hover-color) !default; $pagination-focus-bg: var(--#{$prefix}secondary-bg) !default; -$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default; +$pagination-focus-box-shadow: $focus-ring-box-shadow !default; $pagination-focus-outline: 0 !default; $pagination-hover-color: var(--#{$prefix}link-hover-color) !default; @@ -1277,8 +1317,8 @@ $pagination-disabled-border-color: var(--#{$prefix}border-color) !default; $pagination-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default; -$pagination-border-radius-sm: $border-radius-sm !default; -$pagination-border-radius-lg: $border-radius-lg !default; +$pagination-border-radius-sm: var(--#{$prefix}border-radius-sm) !default; +$pagination-border-radius-lg: var(--#{$prefix}border-radius-lg) !default; // scss-docs-end pagination-variables @@ -1318,7 +1358,7 @@ $card-group-margin: $grid-gutter-width * .5 !default; // scss-docs-start accordion-variables $accordion-padding-y: 1rem !default; $accordion-padding-x: 1.25rem !default; -$accordion-color: var(--#{$prefix}body-color) !default; // Sass variable because of $accordion-button-icon +$accordion-color: var(--#{$prefix}body-color) !default; $accordion-bg: var(--#{$prefix}body-bg) !default; $accordion-border-width: var(--#{$prefix}border-width) !default; $accordion-border-color: var(--#{$prefix}border-color) !default; @@ -1334,14 +1374,14 @@ $accordion-button-color: var(--#{$prefix}body-color) !default; $accordion-button-bg: var(--#{$prefix}accordion-bg) !default; $accordion-transition: $btn-transition, border-radius .15s ease !default; $accordion-button-active-bg: var(--#{$prefix}primary-bg-subtle) !default; -$accordion-button-active-color: var(--#{$prefix}primary-text) !default; +$accordion-button-active-color: var(--#{$prefix}primary-text-emphasis) !default; $accordion-button-focus-border-color: $input-focus-border-color !default; $accordion-button-focus-box-shadow: $btn-focus-box-shadow !default; $accordion-icon-width: 1.25rem !default; $accordion-icon-color: $body-color !default; -$accordion-icon-active-color: $primary-text !default; +$accordion-icon-active-color: $primary-text-emphasis !default; $accordion-icon-transition: transform .2s ease-in-out !default; $accordion-icon-transform: rotate(-180deg) !default; @@ -1389,7 +1429,7 @@ $popover-max-width: 276px !default; $popover-border-width: var(--#{$prefix}border-width) !default; $popover-border-color: var(--#{$prefix}border-color-translucent) !default; $popover-border-radius: var(--#{$prefix}border-radius-lg) !default; -$popover-inner-border-radius: calc($popover-border-radius - $popover-border-width) !default; // stylelint-disable-line function-disallowed-list +$popover-inner-border-radius: calc(#{$popover-border-radius} - #{$popover-border-width}) !default; // stylelint-disable-line function-disallowed-list $popover-box-shadow: $box-shadow !default; $popover-header-font-size: $font-size-base !default; @@ -1442,7 +1482,7 @@ $badge-font-weight: $font-weight-bold !default; $badge-color: $white !default; $badge-padding-y: .35em !default; $badge-padding-x: .65em !default; -$badge-border-radius: $border-radius !default; +$badge-border-radius: var(--#{$prefix}border-radius) !default; // scss-docs-end badge-variables @@ -1500,7 +1540,7 @@ $modal-scale-transform: scale(1.02) !default; $alert-padding-y: $spacer !default; $alert-padding-x: $spacer !default; $alert-margin-bottom: 1rem !default; -$alert-border-radius: $border-radius !default; +$alert-border-radius: var(--#{$prefix}border-radius) !default; $alert-link-font-weight: $font-weight-bold !default; $alert-border-width: var(--#{$prefix}border-width) !default; $alert-bg-scale: -80% !default; @@ -1661,7 +1701,7 @@ $btn-close-padding-x: .25em !default; $btn-close-padding-y: $btn-close-padding-x !default; $btn-close-color: $black !default; $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; -$btn-close-focus-shadow: $input-btn-focus-box-shadow !default; +$btn-close-focus-shadow: $focus-ring-box-shadow !default; $btn-close-opacity: .5 !default; $btn-close-hover-opacity: .75 !default; $btn-close-focus-opacity: 1 !default; diff --git a/vendor/twbs/bootstrap/scss/bootstrap-grid.scss b/vendor/twbs/bootstrap/scss/bootstrap-grid.scss index 4bfd4723b..52bd577e3 100644 --- a/vendor/twbs/bootstrap/scss/bootstrap-grid.scss +++ b/vendor/twbs/bootstrap/scss/bootstrap-grid.scss @@ -8,17 +8,13 @@ $include-column-box-sizing: true !default; @import "variables-dark"; @import "maps"; -@import "mixins/lists"; @import "mixins/breakpoints"; -@import "mixins/color-mode"; @import "mixins/container"; @import "mixins/grid"; @import "mixins/utilities"; @import "vendor/rfs"; -@import "root"; - @import "containers"; @import "grid"; diff --git a/vendor/twbs/bootstrap/scss/forms/_floating-labels.scss b/vendor/twbs/bootstrap/scss/forms/_floating-labels.scss index aaed53845..7d04723e3 100644 --- a/vendor/twbs/bootstrap/scss/forms/_floating-labels.scss +++ b/vendor/twbs/bootstrap/scss/forms/_floating-labels.scss @@ -1,17 +1,6 @@ .form-floating { position: relative; - &::before:not(.form-control:disabled) { - position: absolute; - top: $input-border-width; - left: $input-border-width; - width: subtract(100%, add($input-height-inner-quarter, $input-height-inner-half)); - height: $form-floating-label-height; - content: ""; - background-color: $input-bg; - @include border-radius($input-border-radius); - } - > .form-control, > .form-control-plaintext, > .form-select { @@ -23,7 +12,7 @@ position: absolute; top: 0; left: 0; - width: 100%; + z-index: 2; height: 100%; // allow textareas padding: $form-floating-padding-y $form-floating-padding-x; overflow: hidden; @@ -66,14 +55,24 @@ > .form-control-plaintext, > .form-select { ~ label { - opacity: $form-floating-label-opacity; + color: rgba(var(--#{$prefix}body-color-rgb), #{$form-floating-label-opacity}); transform: $form-floating-label-transform; + + &::after { + position: absolute; + inset: $form-floating-padding-y ($form-floating-padding-x * .5); + z-index: -1; + height: $form-floating-label-height; + content: ""; + background-color: $input-bg; + @include border-radius($input-border-radius); + } } } // Duplicated because `:-webkit-autofill` invalidates other selectors when grouped > .form-control:-webkit-autofill { ~ label { - opacity: $form-floating-label-opacity; + color: rgba(var(--#{$prefix}body-color-rgb), #{$form-floating-label-opacity}); transform: $form-floating-label-transform; } } @@ -84,7 +83,11 @@ } } - > .form-control:disabled ~ label { + > :disabled ~ label { color: $form-floating-label-disabled-color; + + &::after { + background-color: $input-disabled-bg; + } } } diff --git a/vendor/twbs/bootstrap/scss/forms/_form-control.scss b/vendor/twbs/bootstrap/scss/forms/_form-control.scss index c81e3b4ea..ca2a7df4c 100644 --- a/vendor/twbs/bootstrap/scss/forms/_form-control.scss +++ b/vendor/twbs/bootstrap/scss/forms/_form-control.scss @@ -44,12 +44,24 @@ } } - // Add some height to date inputs on iOS - // https://github.com/twbs/bootstrap/issues/23307 - // TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved &::-webkit-date-and-time-value { + // On Android Chrome, form-control's "width: 100%" makes the input width too small + // Tested under Android 11 / Chrome 89, Android 12 / Chrome 100, Android 13 / Chrome 109 + // + // On iOS Safari, form-control's "appearance: none" + "width: 100%" makes the input width too small + // Tested under iOS 16.2 / Safari 16.2 + min-width: 85px; // Seems to be a good minimum safe width + + // Add some height to date inputs on iOS + // https://github.com/twbs/bootstrap/issues/23307 + // TODO: we can remove this workaround once https://bugs.webkit.org/show_bug.cgi?id=198959 is resolved // Multiply line-height by 1em if it has no unit height: if(unit($input-line-height) == "", $input-line-height * 1em, $input-line-height); + + // Android Chrome type="date" is taller than the other inputs + // because of "margin: 1px 24px 1px 4px" inside the shadow DOM + // Tested under Android 11 / Chrome 89, Android 12 / Chrome 100, Android 13 / Chrome 109 + margin: 0; } // Prevent excessive date input height in Webkit @@ -193,6 +205,7 @@ textarea { } &::-webkit-color-swatch { + border: 0 !important; // stylelint-disable-line declaration-no-important @include border-radius($input-border-radius); } diff --git a/vendor/twbs/bootstrap/scss/forms/_form-select.scss b/vendor/twbs/bootstrap/scss/forms/_form-select.scss index 45b0b2686..0b26323ff 100644 --- a/vendor/twbs/bootstrap/scss/forms/_form-select.scss +++ b/vendor/twbs/bootstrap/scss/forms/_form-select.scss @@ -9,7 +9,6 @@ display: block; width: 100%; padding: $form-select-padding-y $form-select-indicator-padding $form-select-padding-y $form-select-padding-x; - -moz-padding-start: subtract($form-select-padding-x, 3px); // See https://github.com/twbs/bootstrap/issues/32636 font-family: $form-select-font-family; @include font-size($form-select-font-size); font-weight: $form-select-font-weight; diff --git a/vendor/twbs/bootstrap/scss/forms/_input-group.scss b/vendor/twbs/bootstrap/scss/forms/_input-group.scss index d6370ed7f..58e4d409c 100644 --- a/vendor/twbs/bootstrap/scss/forms/_input-group.scss +++ b/vendor/twbs/bootstrap/scss/forms/_input-group.scss @@ -121,7 +121,7 @@ } > :not(:first-child):not(.dropdown-menu)#{$validation-messages} { - margin-left: calc($input-border-width * -1); // stylelint-disable-line function-disallowed-list + margin-left: calc(#{$input-border-width} * -1); // stylelint-disable-line function-disallowed-list @include border-start-radius(0); } diff --git a/vendor/twbs/bootstrap/scss/helpers/_colored-links.scss b/vendor/twbs/bootstrap/scss/helpers/_colored-links.scss index 0e03039bb..6d3595af7 100644 --- a/vendor/twbs/bootstrap/scss/helpers/_colored-links.scss +++ b/vendor/twbs/bootstrap/scss/helpers/_colored-links.scss @@ -1,12 +1,32 @@ +// stylelint-disable function-name-case + +// All-caps `RGBA()` function used because of this Sass bug: https://github.com/sass/node-sass/issues/2251 @each $color, $value in $theme-colors { .link-#{$color} { - color: $value if($enable-important-utilities, !important, null); + color: RGBA(var(--#{$prefix}#{$color}-rgb, var(--#{$prefix}link-opacity, 1))); + text-decoration-color: RGBA(var(--#{$prefix}#{$color}-rgb), var(--#{$prefix}link-underline-opacity, 1)); @if $link-shade-percentage != 0 { &:hover, &:focus { - color: if(color-contrast($value) == $color-contrast-light, shade-color($value, $link-shade-percentage), tint-color($value, $link-shade-percentage)) if($enable-important-utilities, !important, null); + $hover-color: if(color-contrast($value) == $color-contrast-light, shade-color($value, $link-shade-percentage), tint-color($value, $link-shade-percentage)); + color: RGBA(#{to-rgb($hover-color)}, var(--#{$prefix}link-opacity, 1)); + text-decoration-color: RGBA(to-rgb($hover-color), var(--#{$prefix}link-underline-opacity, 1)); } } } } + +// One-off special link helper as a bridge until v6 +.link-body-emphasis { + color: RGBA(var(--#{$prefix}emphasis-color-rgb), var(--#{$prefix}link-opacity, 1)); + text-decoration-color: RGBA(var(--#{$prefix}emphasis-color-rgb), var(--#{$prefix}link-underline-opacity, 1)); + + @if $link-shade-percentage != 0 { + &:hover, + &:focus { + color: RGBA(var(--#{$prefix}emphasis-color-rgb), var(--#{$prefix}link-opacity, .75)); + text-decoration-color: RGBA(var(--#{$prefix}emphasis-color-rgb), var(--#{$prefix}link-underline-opacity, .75)); + } + } +} diff --git a/vendor/twbs/bootstrap/scss/helpers/_focus-ring.scss b/vendor/twbs/bootstrap/scss/helpers/_focus-ring.scss new file mode 100644 index 000000000..26508a8d6 --- /dev/null +++ b/vendor/twbs/bootstrap/scss/helpers/_focus-ring.scss @@ -0,0 +1,5 @@ +.focus-ring:focus { + outline: 0; + // 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 + 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); +} diff --git a/vendor/twbs/bootstrap/scss/helpers/_icon-link.scss b/vendor/twbs/bootstrap/scss/helpers/_icon-link.scss new file mode 100644 index 000000000..3f8bcb335 --- /dev/null +++ b/vendor/twbs/bootstrap/scss/helpers/_icon-link.scss @@ -0,0 +1,25 @@ +.icon-link { + display: inline-flex; + gap: $icon-link-gap; + align-items: center; + text-decoration-color: rgba(var(--#{$prefix}link-color-rgb), var(--#{$prefix}link-opacity, .5)); + text-underline-offset: $icon-link-underline-offset; + backface-visibility: hidden; + + > .bi { + flex-shrink: 0; + width: $icon-link-icon-size; + height: $icon-link-icon-size; + fill: currentcolor; + @include transition($icon-link-icon-transition); + } +} + +.icon-link-hover { + &:hover, + &:focus-visible { + > .bi { + transform: var(--#{$prefix}icon-link-transform, $icon-link-icon-transform); + } + } +} diff --git a/vendor/twbs/bootstrap/scss/mixins/_banner.scss b/vendor/twbs/bootstrap/scss/mixins/_banner.scss index 64d09a2a9..208b98dcb 100644 --- a/vendor/twbs/bootstrap/scss/mixins/_banner.scss +++ b/vendor/twbs/bootstrap/scss/mixins/_banner.scss @@ -1,7 +1,7 @@ @mixin bsBanner($file) { /*! - * Bootstrap #{$file} v5.3.0-alpha1 (https://getbootstrap.com/) - * Copyright 2011-2022 The Bootstrap Authors + * Bootstrap #{$file} v5.3.0-alpha3 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ } diff --git a/vendor/twbs/bootstrap/scss/mixins/_list-group.scss b/vendor/twbs/bootstrap/scss/mixins/_list-group.scss index 5a61f3c24..6274f3431 100644 --- a/vendor/twbs/bootstrap/scss/mixins/_list-group.scss +++ b/vendor/twbs/bootstrap/scss/mixins/_list-group.scss @@ -1,6 +1,5 @@ @include deprecate("`list-group-item-variant()`", "v5.3.0", "v6.0.0"); - // List Groups // scss-docs-start list-group-mixin diff --git a/vendor/twbs/bootstrap/scss/mixins/_utilities.scss b/vendor/twbs/bootstrap/scss/mixins/_utilities.scss index 59a237461..4795e8940 100644 --- a/vendor/twbs/bootstrap/scss/mixins/_utilities.scss +++ b/vendor/twbs/bootstrap/scss/mixins/_utilities.scss @@ -1,6 +1,6 @@ // Utility generator // Used to generate utilities & print utilities -@mixin generate-utility($utility, $infix, $is-rfs-media-query: false) { +@mixin generate-utility($utility, $infix: "", $is-rfs-media-query: false) { $values: map-get($utility, values); // If the values are a list or string, convert it into a map diff --git a/vendor/twbs/bootstrap/scss/mixins/_visually-hidden.scss b/vendor/twbs/bootstrap/scss/mixins/_visually-hidden.scss index 4fc7f49d6..082aeec95 100644 --- a/vendor/twbs/bootstrap/scss/mixins/_visually-hidden.scss +++ b/vendor/twbs/bootstrap/scss/mixins/_visually-hidden.scss @@ -6,7 +6,6 @@ // See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/ @mixin visually-hidden() { - position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; @@ -15,6 +14,11 @@ clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; + + // Fix for positioned table caption that could become anonymous cells + &:not(caption) { + position: absolute !important; + } } // Use to only display content when it's focused, or one of its child elements is focused diff --git a/vendor/twbs/bootstrap/scss/vendor/_rfs.scss b/vendor/twbs/bootstrap/scss/vendor/_rfs.scss index 7e9a6c7a8..aa1f82b96 100644 --- a/vendor/twbs/bootstrap/scss/vendor/_rfs.scss +++ b/vendor/twbs/bootstrap/scss/vendor/_rfs.scss @@ -1,4 +1,4 @@ -// stylelint-disable property-blacklist, scss/dollar-variable-default +// stylelint-disable scss/dimension-no-non-numeric-values // SCSS RFS mixin // @@ -154,8 +154,7 @@ $rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height &.enable-rfs { @content; } - } - @else { + } @else { @content; } } @@ -168,7 +167,7 @@ $rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height @content; } - @include _rfs-media-query { + @include _rfs-media-query () { .enable-rfs &, &.enable-rfs { @content; @@ -182,7 +181,7 @@ $rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height @content; } } - @include _rfs-media-query { + @include _rfs-media-query () { @content; } } @@ -193,12 +192,12 @@ $rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height // Convert to list $values: if(type-of($values) != list, ($values,), $values); - $val: ''; + $val: ""; // Loop over each value and calculate value @each $value in $values { @if $value == 0 { - $val: $val + ' 0'; + $val: $val + " 0"; } @else { // Cache $value unit @@ -206,15 +205,14 @@ $rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height @if $unit == px { // Convert to rem if needed - $val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value); + $val: $val + " " + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value); } @else if $unit == rem { // Convert to px if needed - $val: $val + ' ' + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value); - } - @else { + $val: $val + " " + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value); + } @else { // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value - $val: $val + ' ' + $value; + $val: $val + " " + $value; } } } @@ -228,30 +226,26 @@ $rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height // Convert to list $values: if(type-of($values) != list, ($values,), $values); - $val: ''; + $val: ""; // Loop over each value and calculate value @each $value in $values { @if $value == 0 { - $val: $val + ' 0'; - } - - @else { + $val: $val + " 0"; + } @else { // Cache $value unit $unit: if(type-of($value) == "number", unit($value), false); // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value @if not $unit or $unit != px and $unit != rem { - $val: $val + ' ' + $value; - } - - @else { + $val: $val + " " + $value; + } @else { // Remove unit from $value for calculations $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value))); // Only add the media query if the value is greater than the minimum value @if abs($value) <= $rfs-base-value or not $enable-rfs { - $val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px); + $val: $val + " " + if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px); } @else { // Calculate the minimum value @@ -273,7 +267,7 @@ $rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height $variable-width: #{divide($value-diff * 100, $rfs-breakpoint)}#{$variable-unit}; // Return the calculated value - $val: $val + ' calc(' + $min-width + if($value < 0, ' - ', ' + ') + $variable-width + ')'; + $val: $val + " calc(" + $min-width + if($value < 0, " - ", " + ") + $variable-width + ")"; } } } @@ -287,22 +281,22 @@ $rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height @mixin rfs($values, $property: font-size) { @if $values != null { $val: rfs-value($values); - $fluidVal: rfs-fluid-value($values); + $fluid-val: rfs-fluid-value($values); // Do not print the media query if responsive & non-responsive values are the same - @if $val == $fluidVal { + @if $val == $fluid-val { #{$property}: $val; } @else { - @include _rfs-rule { - #{$property}: if($rfs-mode == max-media-query, $val, $fluidVal); + @include _rfs-rule () { + #{$property}: if($rfs-mode == max-media-query, $val, $fluid-val); // Include safari iframe resize fix if needed min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null); } - @include _rfs-media-query-rule { - #{$property}: if($rfs-mode == max-media-query, $fluidVal, $val); + @include _rfs-media-query-rule () { + #{$property}: if($rfs-mode == max-media-query, $fluid-val, $val); } } } |