【发布时间】:2016-01-01 02:45:28
【问题描述】:
问题:
是否有将 HEX 值转换为 简单 RGB 字符串的 SASS 函数/技术。
这里的简单意味着只是一个字符串,没有包含在rgb() 中?
例如:#D50000 --> "213,0,0"
为什么我需要这个:
我使用Material Design Lite 作为我的 UI“框架”。更具体地说,我使用的是 SASS 版本,因此我可以根据应用的样式指南调整颜色变量。
由于某种原因,MDL 的_variables.scss 中的颜色变量采用以下格式进行颜色定义:
$color-primary: "0,0,0" !default; // supposed to be black
这真的很奇怪。我预计,最多,类似于
$color-primary: rgba(0,0,0,1) !default;
我的颜色变量存储在另一个名为 _globals.scss 的文件中,我以常规 HEX 格式存储变量,以便在其他地方轻松重复使用它们:
$brand-primary: #FA3166;
$brand-primary-dark: #E02C59;
我不想定义 2 倍的颜色(1 个 HEX 和 1 个 MDL 兼容的 RGB 字符串),因此我需要将 HEX 转换为 RGB 字符串。
【问题讨论】:
-
你应该考虑不要使用这么糟糕的库。这是一个可怕的反模式。谷歌应该为写这篇文章感到羞耻。
-
您是否广泛使用它?或者你是根据它的这个方面来判断的?我问是因为我(想要)相信我只是在遵循错误的方法来自定义调色板
-
我查看了源代码。没有一个头脑正常的人会处理这样的颜色。他们所做的类似于使用字符串来处理货币。
-
@cimmanon 我认为这是有原因的,实际上,情况是我错过了定义颜色的正确途径。我打开了一个 Github 问题 here 问同样的问题
-
这样做的唯一原因是强制它以 RGB 格式输出(请参阅:stackoverflow.com/questions/15757665/…)。这恰好是一种非常糟糕的做法。
标签: sass material-design material-design-lite