colors - Sass 将字符串转换为颜色

标签 colors sass

我正在使用 mdl ,其中有颜色变量设置,如 $color-primary: '255, 0, 0' !default;
这让我很难接受那种颜色并使其变亮。

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

Argument $color of lighten($color, $amount) must be a color


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

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

最佳答案

这是一个有趣的问题。您已在 MDL source 中找到那个$color-primary实际上只是一个包含引号的字符串:"63,81,181" .

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

unquote('rgb(#{$color-primary})')

不返回 SASS rgb() instance method ,它只返回一个普通的 ol' 字符串。

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

enter image description here

关于colors - Sass 将字符串转换为颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46308709/

相关文章:

css - Sass 将映射传递给函数不是有效的 CSS 值

css - 删除元素和类之间的空间

Javascript 颜色渐变

android - 每个特定字符的不同颜色

iphone - iPhone 上的色彩平衡

CSS/SCSS 自定义工具提示效果

python - 在 Python 中按颜色搜索图像

linux - 改变 Vim 背景颜色 - 而不是文本颜色

css - 较大设备上的 Ionic 3 Grid 无法按预期工作(希望我做错了)

css - SASS 是动态的还是静态的?