我正在尝试弄清楚如何根据所选的配色方案来设置元素的颜色。以下代码在我的浅色模式下效果很好,但在我的深色模式下效果不佳。
.d-header-icons .d-icon {
width: 100%;
line-height: 1.4;
display: inline-block;
color: var(--secondary);
}
我更希望仅在深色模式下使用以下代码。
color: var(--secondary-low)
这在深色模式下效果很好,但在浅色模式下效果不佳。有没有办法根据所选的配色方案调整 color: 的值?
Don
2
你好,
有几种方法可以做到。
例如:
你可以在 admin/customize/colors/ 中更改配色方案的颜色。只需选择你的暗模式配色方案并更改 secondary 颜色代码。
注意:这将更改所有位置的次要颜色,而不仅仅是标题图标。
或者你可以使用 prefers-color-scheme 媒体查询在暗模式下将 secondary 更改为 secondary-low。
类似这样:
.d-header-icons .d-icon {
width: 100%;
line-height: 1.4;
display: inline-block;
color: var(--secondary);
@media (prefers-color-scheme: dark) {
color: var(--secondary-low);
}
}
或者你可以创建自定义颜色定义:Why might dark-light-choose() not work? - #2 by awesomerobot
希望这有帮助 
2 个赞
感谢您的指导。
这似乎正是我想要做的(只更改标题图标,而不是所有具有 --secondary 颜色的项目)。最后一个问题……如果主题设置为暗黑模式主题并且暗黑模式由操作系统激活,这会起作用,但如果暗黑模式主题被选为“常规”主题,则不起作用。有什么建议吗?
1 个赞
Don
4
哦,是的,如果可以选择深色配色方案,那将无法按此方式工作。
我认为你能做的最好的选择是为此创建一个自定义颜色定义,你可以将此颜色变量用于标题图标。
创建一个主题组件,并将以下内容添加到颜色定义选项卡中
将 secondary-low 颜色代码设置为 $dark-theme-header-icons,将 secondary 颜色代码设置为 $light-theme-header-icons
$dark-theme-header-icons: #e9e9e9;
$light-theme-header-icons: #222;
$header-icons: dark-light-choose($light-theme-header-icons, $dark-theme-header-icons);
:root {
--custom-header-icons: #{$header-icons};
}
在此之后,你可以将此 --custom-header-icons 颜色变量用于标题图标颜色。
.d-header-icons .d-icon {
width: 100%;
line-height: 1.4;
display: inline-block;
color: var(--custom-header-icons);
}
2 个赞
还有一件事……如果我在主题中包含 color_definitions.scss 而不是使用主题组件,这会起作用吗?
1 个赞
system
(system)
关闭
8
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.