diff --git a/scss/_functions.scss b/scss/_functions.scss index e04b5c61b39f..eda2f2f04b03 100644 --- a/scss/_functions.scss +++ b/scss/_functions.scss @@ -1,3 +1,6 @@ +@use "sass:color"; +@use "sass:math"; + // Bootstrap functions // // Utility mixins and functions for evaluating source code across our variables, maps, and mixins. @@ -34,7 +37,7 @@ // Colors @function to-rgb($value) { - @return red($value), green($value), blue($value); + @return math.round(color.channel($value, "red", $space: rgb)), math.round(color.channel($value, "green", $space: rgb)), math.round(color.channel($value, "blue", $space: rgb)); } // stylelint-disable scss/dollar-variable-pattern @@ -182,9 +185,9 @@ $_luminance-list: .0008 .001 .0011 .0013 .0015 .0017 .002 .0022 .0025 .0027 .003 // See https://www.w3.org/TR/WCAG/#dfn-contrast-ratio @function luminance($color) { $rgb: ( - "r": red($color), - "g": green($color), - "b": blue($color) + "r": math.round(color.channel($color, "red", $space: rgb)), // stylelint-disable-line scss/at-function-named-arguments + "g": math.round(color.channel($color, "green", $space: rgb)), // stylelint-disable-line scss/at-function-named-arguments + "b": math.round(color.channel($color, "blue", $space: rgb)) // stylelint-disable-line scss/at-function-named-arguments ); @each $name, $value in $rgb { diff --git a/scss/tests/mixins/_color-modes.test.scss b/scss/tests/mixins/_color-modes.test.scss index 9ecc628deabe..eb604cc15e9c 100644 --- a/scss/tests/mixins/_color-modes.test.scss +++ b/scss/tests/mixins/_color-modes.test.scss @@ -17,7 +17,7 @@ } } @include color-mode(dark, true) { - --custom-color: #{mix($indigo, $blue, 50%)}; + --custom-color: #{$indigo}; } } @include expect() { @@ -26,7 +26,7 @@ background-color: var(--bs-primary-bg-subtle); } [data-bs-theme=dark] { - --custom-color: #3a3ff8; + --custom-color: #6610f2; } } } @@ -46,7 +46,7 @@ } } @include color-mode(dark, true) { - --custom-color: #{mix($indigo, $blue, 50%)}; + --custom-color: #{$indigo} } } @include expect() { @@ -58,7 +58,7 @@ } @media (prefers-color-scheme: dark) { :root { - --custom-color: #3a3ff8; + --custom-color: #6610f2; } } } diff --git a/scss/tests/sass-true/runner.js b/scss/tests/sass-true/runner.js index bef870ac6b13..edf9ac43043a 100644 --- a/scss/tests/sass-true/runner.js +++ b/scss/tests/sass-true/runner.js @@ -6,7 +6,7 @@ const { runSass } = require('sass-true') module.exports = (filename, { describe, it }) => { const data = fs.readFileSync(filename, 'utf8') - const TRUE_SETUP = '$true-terminal-output: false; @import "true";' + const TRUE_SETUP = '$true-terminal-output: false; @use "true" as *;' const sassString = TRUE_SETUP + data runSass(