【发布时间】:2020-03-14 06:34:13
【问题描述】:
我正在尝试为我的项目实施暗模式。请分享任何更好的方法。
我有一个将<html data-theme="light"> 更改为<html data-theme="dark"> 的复选框。然后我使用CSS 更改变量的值,以便它们可以更新使用的位置。
// Light theme colors
html[data-theme="light"]{
--body: #fff;
--primary: #0077FF;
--secondary: #3f3d56;
--danger: #f00;
--text: #707070;
--el-bg: #fff;
--border: #ddd;
--shadow: #ddd;
}
// Dark theme colors
html[data-theme="dark"]{
--body: #111;
--primary: lighten(#0077FF, 10%);
--secondary: #3f3d56;
--danger: #f00;
--text: #eeeeee;
--el-bg: #222;
--border: #000;
--shadow: #000;
}
$body: var(--body);
$primary: var(--primary);
$secondary: var(--secondary);
$danger: var(--danger);
$text: var(--text);
$el-bg: var(--el-bg);
$border: var(--border);
$shadow: var(--shadow);
问题是SCSS variables 不会采用从本机CSS variables 分配的值
我尝试过仅使用 CSS variables,但它们无法在 SCSS functions 内部工作,例如 darken and lighten
【问题讨论】:
-
因为 SASS 是 CSS 之前的预处理器,所以 CSS 变量在这个级别是不存在的
-
知道实现我的目标吗?
-
你根本做不到。要么使用 SASS 变量,要么使用 CSS 变量,不要同时使用两者
-
好的。伊玛试着解决一些问题
标签: javascript html css sass