Sass 将字符串转换为颜色

Get*_*awn 7 sass colors

我正在使用mdl,它具有颜色变量设置,如$color-primary: '255, 0, 0' !default;

这让我很难接受那种颜色并使其变亮。

我试过使用unquote(),但它给了我一个错误:

论证$colorlighten($color, $amount)必须是一种颜色

$color-primary: '255, 0, 0' !default;
$light-accent: lighten(unquote('rgb(#{$color-primary})'), 13.5%) !default;
Run Code Online (Sandbox Code Playgroud)

有什么办法可以将其转换为颜色吗?

Fra*_*ney 2

这是一个有趣的问题。您在MDL 源代码中发现,它$color-primary实际上只是一个包含引号的字符串:"63,81,181"

这是棘手的部分:MDL 到处都在使用这些字符串。他们实际上并没有以 SASS 理解的方式评估这些颜色。所以这:

unquote('rgb(#{$color-primary})')
Run Code Online (Sandbox Code Playgroud)

不返回 SASSrgb()实例方法,它只返回一个普通的字符串。

这是很长的说法,我认为你不能做你想做的事。不过,您可以按照格式(来自material.io的照片)使用MDL$palette-indigo中的其他颜色。$palette-indigo-xxx

在此输入图像描述