使用 scss 基本文件在 angular 中实现自定义暗模式

Implementing custom dark mode in angular with scss base file

提问人:shernotlock 提问时间:11/15/2023 最后编辑:shernotlock 更新时间:11/15/2023 访问量:47

问:

我正在尝试在不使用材料或其他 css 框架的情况下在我的项目中实现深色模式。在颜色方面,我的项目有一个集中的资源。项目中使用的所有颜色都存储在一个通用的基本文件中,并跨多个组件使用。

我有一个预定义的浅色模式调色板。现在我需要在这个项目中实现深色模式,我正在寻找一种可以以最简约的方式做到这一点的方法。 以某种方式切换调色板,或在主题更改时使用不同的 SCSS 文件。我不确定这是否可能

https://stackblitz.com/edit/angular-dark-mode-test

这是我项目的极简主义版本。

我知道 scss 是一个 css 预处理器,并且在运行时从角度侧切换主题。如果调色板切换是不可能的,那么我可以遵循哪些替代方法来为这样一个具有非常大代码库的项目实现深色模式。

注意:我不打算使用任何外部包或材料主题等。

javascript css angular sass darkmode

评论


答:

0赞 Peca021 11/15/2023 #1

就您的情况而言,我会说实现深色/浅色主题的最简单解决方案是使用 CSS 变量。

您可以将属性或类附加到 body 元素,然后根据该属性/类为 CSS 变量设置值。

稍后,如果您想从深色主题切换到浅色主题(或相反),您可以使用 javascript 更新属性/类