覆盖 SASS 颜色,例如使用数据属性
Overwrite SASS colors, e.g with data-attributes
我正在尝试实现与这里类似的东西:,不同之处在于我使用的是 SCSS。
定义了一些顶级变量:
$content-primary: #000000;
$content-secondary: #FFFFFF;
我想覆盖这些值,具体取决于客户端上的信息(localStorage
,媒体查询)。我首先将数据属性设置为 html
元素,例如document.documentElement.setAttribute("data-theme", "dark");
.
// Some SCSS magic here checking data attributes
// When data-theme="dark" is set, the following should be applied:
$content-primary: #F1F1F1;
$content-secondary: #222222;
我尝试使用与相关问题中相同的逻辑,但这不起作用。
[data-theme="dark"] {
$content-primary: #F1F1F1;
$content-secondary: #222222;
}
这有可能吗?
我在一个项目上做了主题化并使用了!default
Click here to read documentation
不过看你要做什么,我建议你用native CSS var(--content-primary)
这个基本 CSS 变量不仅可以基于 attribute/class/parent 等被覆盖,而且还可以基于媒体查询被覆盖,这使它们成为一个令人难以置信的多功能工具。
我正在尝试实现与这里类似的东西:
定义了一些顶级变量:
$content-primary: #000000;
$content-secondary: #FFFFFF;
我想覆盖这些值,具体取决于客户端上的信息(localStorage
,媒体查询)。我首先将数据属性设置为 html
元素,例如document.documentElement.setAttribute("data-theme", "dark");
.
// Some SCSS magic here checking data attributes
// When data-theme="dark" is set, the following should be applied:
$content-primary: #F1F1F1;
$content-secondary: #222222;
我尝试使用与相关问题中相同的逻辑,但这不起作用。
[data-theme="dark"] {
$content-primary: #F1F1F1;
$content-secondary: #222222;
}
这有可能吗?
我在一个项目上做了主题化并使用了!default
Click here to read documentation
不过看你要做什么,我建议你用native CSS var(--content-primary)
这个基本 CSS 变量不仅可以基于 attribute/class/parent 等被覆盖,而且还可以基于媒体查询被覆盖,这使它们成为一个令人难以置信的多功能工具。