首页 文章

如何使用vmware清晰度动态切换主题

提问于
浏览
3

Vmware Clarity 0.10.16刚刚发布了新的黑暗主题 . 这很棒!

他们描述了如何添加新主题,但没有关于在页面内动态更改它的可能性 . 是因为它不可行吗?

如果是,我怎么能用Angular 4呢?任何可以帮我解释如何实现的网站?

提前致谢!

2 回答

  • 4

    Clarity现在提供了明暗主题的样式表 . 我们将使用 angular-cliwebpack 构建配置来记录如何使用它们here . 这意味着一旦构建了应用程序,这只是它的风格 .

    我有一些关于如何实现主题切换器以在两者之间切换的想法 . 这是一个粗略的想法,我可能会开始我的原型:

    • 构建没有任何主题css文件的应用程序(根本没有清晰的风格)

    • 将两个css文件复制到assets文件夹(在构建期间)

    • 编写一个指令或组件,可以在 <head> 中为样式表获取src的 @Input

    • 将两个路径 /path/to/light.css/path/to/dark.css 存储在服务中,以便应用程序可以传递活动主题值并在需要时进行修改 .

    • 将服务添加到我们希望用户更新主题的应用程序组件中 .

    这会为您的应用提供一些想法吗?

    我有一个原型工作后我会在这里更新,所以你可以看到它在行动中并找到源代码 .

  • 2

    我已经 Build 了一个概念证明,你如何做到这一点,但它确实有一些局限性 . 由于您一次只能包含一个主题文件,因此正确的主题渲染可能会有一些延迟,因为它会在Angular渲染周期中稍后发生 . 当浏览器的缓存为空时,这只会是一件大事,因为随后的访问会很快呈现,但这是一个主要的考虑因素 . 它是一个开始,你可以 Build 一个更强大的东西 .

    https://stackblitz.com/edit/clarity-theme-switcher?file=app%2Fapp.component.ts

相关问题