我正在尝试在我的 svelte 应用程序中实现主题。一些简单的事情,比如:
{
light: { colorPrimary: "skyblue", colorSecondary: "white" },
dark: { colorPrimary: "white", colorSecondary: "grey" },
}
我可以轻松地将这些信息保存在商店中,还可以通过按钮更改主题。问题是我找不到将这些变量传递给 css 的好方法。它是一个新应用程序,因此我可以随意更改样式实现。我试过了:
那么,在 svelte 中处理像主题这样简单的事情真的没有好方法吗?我是不是错过了什么?
我在js中定义变量,这样我就可以全局更改它们
仅仅因为 Svelte 组件样式默认具有作用域,并不意味着您不能拥有全局样式。
:global(selector)
或 :root
或仅在组件中使用 import
单独的 CSS 文件 <script>
或根引导/布局脚本。
我通常有类似
theme.css
的东西,并根据属性定义变量(例如 html[data-theme=dark]
),可能与 prefers-color-scheme
结合使用。