@xwink/ui

ThemeToggle

明暗档切换。组件只是 useTheme() 的一个操作面——状态、持久化与 DOM 应用都在 composable 里, 同页放几个都是同一份状态。默认三档(浅色 / 深色 / 跟随系统),modes 可裁成纯手动两档。

下面的 demo 会真的改掉文档站的明暗档并记住选择:组件写的是 html[data-theme]color-scheme,和右上角调试面板作用于同一个元素(面板刷新即回默认,这里的选择会留下)。

基础

三档 / 两档
主题
只给两档

状态从哪来

状态、持久化与 DOM 应用都在 useTheme 里——组件本身不持有明暗档, modes 只决定这一处露出几个档位。

API

Props

名称类型默认值说明
labelstring | undefinedundefined覆盖默认标签文案
modesUiThemePreference[] | undefined["light", "dark", "auto"]可选档位,按给定顺序渲染;只给 light / dark 就是纯手动切换
disabledboolean | undefinedfalse
size"mini" | "small" | "medium" | "large" | "super" | undefinedundefined尺寸:mini / small / medium(默认) / large / super;不传则跟随环境 data-size