主题

MoriUI 的主题状态只写在根元素的 data-theme 属性上。组件读取同一组语义 Token,因此业务页面无需为浅色和深色分别维护样式分支。

主题入口

浅色模式使用:

<html data-theme="light">

深色模式使用:

<html data-theme="dark">

不要同时维护额外的 .dark 选择器;一个明确的根属性更容易被服务端渲染、持久化逻辑和自动化测试共同识别。

切换模式

主题切换只需要更新 document.documentElement.dataset.theme。在 Nuxt 中,建议用客户端安全的组合式函数保存选择,并在首次渲染前恢复它,避免页面闪烁。

保持一致

页面布局优先使用 bg-backgroundtext-foregroundbg-mutedtext-muted-foreground 等语义工具类。不要在局部组件重新声明主题变量;这样新增组件时会自然继承当前模式。