Vmware Clarity 0.10.16刚刚发布了新的黑暗主题 . 这很棒!
他们描述了如何添加新主题,但没有关于在页面内动态更改它的可能性 . 是因为它不可行吗?
如果是,我怎么能用Angular 4呢?任何可以帮我解释如何实现的网站?
提前致谢!
Clarity现在提供了明暗主题的样式表 . 我们将使用 angular-cli 或 webpack 构建配置来记录如何使用它们here . 这意味着一旦构建了应用程序,这只是它的风格 .
angular-cli
webpack
我有一些关于如何实现主题切换器以在两者之间切换的想法 . 这是一个粗略的想法,我可能会开始我的原型:
构建没有任何主题css文件的应用程序(根本没有清晰的风格)
将两个css文件复制到assets文件夹(在构建期间)
编写一个指令或组件,可以在 <head> 中为样式表获取src的 @Input
<head>
@Input
将两个路径 /path/to/light.css 和 /path/to/dark.css 存储在服务中,以便应用程序可以传递活动主题值并在需要时进行修改 .
/path/to/light.css
/path/to/dark.css
将服务添加到我们希望用户更新主题的应用程序组件中 .
这会为您的应用提供一些想法吗?
我有一个原型工作后我会在这里更新,所以你可以看到它在行动中并找到源代码 .
我已经 Build 了一个概念证明,你如何做到这一点,但它确实有一些局限性 . 由于您一次只能包含一个主题文件,因此正确的主题渲染可能会有一些延迟,因为它会在Angular渲染周期中稍后发生 . 当浏览器的缓存为空时,这只会是一件大事,因为随后的访问会很快呈现,但这是一个主要的考虑因素 . 它是一个开始,你可以 Build 一个更强大的东西 .
https://stackblitz.com/edit/clarity-theme-switcher?file=app%2Fapp.component.ts
2 回答
Clarity现在提供了明暗主题的样式表 . 我们将使用
angular-cli
或webpack
构建配置来记录如何使用它们here . 这意味着一旦构建了应用程序,这只是它的风格 .我有一些关于如何实现主题切换器以在两者之间切换的想法 . 这是一个粗略的想法,我可能会开始我的原型:
构建没有任何主题css文件的应用程序(根本没有清晰的风格)
将两个css文件复制到assets文件夹(在构建期间)
编写一个指令或组件,可以在
<head>
中为样式表获取src的@Input
将两个路径
/path/to/light.css
和/path/to/dark.css
存储在服务中,以便应用程序可以传递活动主题值并在需要时进行修改 .将服务添加到我们希望用户更新主题的应用程序组件中 .
这会为您的应用提供一些想法吗?
我有一个原型工作后我会在这里更新,所以你可以看到它在行动中并找到源代码 .
我已经 Build 了一个概念证明,你如何做到这一点,但它确实有一些局限性 . 由于您一次只能包含一个主题文件,因此正确的主题渲染可能会有一些延迟,因为它会在Angular渲染周期中稍后发生 . 当浏览器的缓存为空时,这只会是一件大事,因为随后的访问会很快呈现,但这是一个主要的考虑因素 . 它是一个开始,你可以 Build 一个更强大的东西 .
https://stackblitz.com/edit/clarity-theme-switcher?file=app%2Fapp.component.ts