背景:
我正在尝试基于 Google 的 Material Theme Builder 3在 SASS 中生成调色板,该调色板需要根据相对亮度而不是亮度/亮度函数生成调色板。
问题:
我可以使用 SCSS 中的以下函数获取亮度值:
@function get-luminance($color) {
$colors: (
'red': red($color),
'green': green($color),
'blue': blue($color),
);
@each $name, $value in $colors {
$adjusted: 0;
$value: $value / 255;
@if $value < 0.03928 {
$value: $value / 12.92;
} @else {
$value: ($value + 0.055) / 1.055;
$value: math.pow($value, 2.4);
}
$colors: map-merge($colors, ($name: $value));
}
@return (map-get($colors, 'red') * 0.2126) + (map-get($colors, 'green') * 0.7152) + (map-get($colors, 'blue') * 0.0722);
}
但我正在寻找的是创建一个可以调整某种颜色亮度的函数,例如
@function adjust-luminance($color, $luminance-value) {
// Calculations required to adjust luminance here
@return $adjusted-luminance-color;
}
$seed-color: #6750A4;
.color-tone-99 {
background: adjust-luminance($seed-color, 97.4); // Output: #FFFBFE
}
我无法弄清楚上面的计算部分。我也遇到过这个在 Figma 中实现的Color Luminance Figma 插件,但它是如何实现的却是个问题。
任何帮助将不胜感激!
谢谢