我正在尝试在我的个性化 CSS 中使用 dark-light-choose($light, $dark) 函数,但即使我将配色方案从浅色(Clara)切换到深色(Oscura),它始终返回 $light:
我在以下链接中提供了关于我的设置的更多详细信息:
到目前为止,我已经双重检查了:
- 我的深色主题中的主色亮度高于辅助色。
- 我按正确的顺序使用了函数参数。
我完全不知道如何调试这个问题。这可能是我的主题中的问题吗?是否还有其他变量需要考虑?
我正在尝试在我的个性化 CSS 中使用 dark-light-choose($light, $dark) 函数,但即使我将配色方案从浅色(Clara)切换到深色(Oscura),它始终返回 $light:
我在以下链接中提供了关于我的设置的更多详细信息:
到目前为止,我已经双重检查了:
我完全不知道如何调试这个问题。这可能是我的主题中的问题吗?是否还有其他变量需要考虑?
我认为,由于 SCSS 的编译方式,自定义的深色/浅色定义需要添加到主题内的 color_definitions.scss 中,而在其他 SCSS 文件中则无法生效。
color_definitions.scss 位于层叠顺序的较高位置(在许多默认样式之前),因此你不应该在那里添加 .modal.history-modal ins 部分。相反,你只需添加颜色定义本身:
$dark-theme-ins: #acf2bd;
$light-theme-ins: #4da06d;
$ins: dark-light-choose($light-theme-ins, $dark-theme-ins);
:root {
--custom-ins: #{$ins};
}
然后在 common 或主题的其他任何文件中,你可以这样写:
.modal.history-modal {
ins {
background: var(--custom-ins);
}
}
非常感谢你,Kris!你真是帮了大忙!现在一切完美运行 ![]()
我一直在尝试使用它,唯一让我困惑的是为什么颜色值必须使用变量插值。例如,如果不加插值,这段代码就无法工作:
$ins: #7f7e7e;
:root {
--custom-ins: $ins;
}
但加上插值后就可以:
$ins: #7f7e7e;
:root {
--custom-ins: #{$ins};
}
如果 $ins 被赋值为另一个变量(例如:$ins: $dark-theme-ins),那么两种写法都能正常工作。
我到底漏掉了什么?
这是在使用 CSS 自定义属性时 SCSS 的要求。更多详情请参见:Sass: Property Declarations