在 SCSS 中将十六进制字符串转换为十六进制颜色值

Convert a Hex-String to a Hex-Color value in SCSS

我以json格式存储了很多颜色。我通过 gulp 使用 rootbeer 将它们变成 sass 可以由 scss 处理的地图:

{ "blue": "33A2FF" }

$colors: ( "blue": "33A2FF" );

我可以使用 #{} 语法很好地使用颜色,但是一旦应用任何像 lightness() 这样的颜色函数,编译器就会失败,因为颜色类型完全消失了。

即使使用 unquote() 也不允许 sass 将其视为字符串,但它必须是一种颜色。

我的问题是,是否有任何方法可以强制编译器将其视为一种颜色?另一种方法是省略 built-in color functions.

的所有使用

或者我可以将所有 hey 重写为 rgb,r、g 和 b 具有单独的值,然后使用 rgb() 语法将它们 return 作为颜色,如 here 所示.但这需要进行重大返工。所以也许任何人都知道如何解决这个问题。

我找到了允许将十六进制格式的字符串处理为 rgb() 的实用程序:https://github.com/KittyGiraudel/SassyJSON/tree/master/stylesheets/decode/helpers/color