返回目录
组件详情入口
工具
@vean/ui
SThemeModeToggle

ThemeModeToggle

ThemeModeToggle 属于 工具 分类。建议先看演示与用法,再对照 API 表格完成接入和样式调整。

先用快捷跳转面板找到概述、用法、演示和 API,再往下细读完整文档内容。

快速跳转

同分类组件

如果你在同一类交互里做组合,这些组件通常会一起出现。

主题模式切换按钮

概述

SThemeModeToggle 是一个绑定到当前 SConfigProvider 主题的上下文循环按钮。每次点击在 auto → light → dark → auto 之间推进偏好,图标始终显示当前偏好(显示器 / 太阳 / 月亮)。当头部或工具栏里下拉太重、而二元开关又无法表达 auto 时,用它作为单按钮方案切换。

用法

特性

  • 🔁 每次点击在 auto → light → dark → auto 之间推进
  • 🖼 图标反映当前偏好,三种状态都可区分
  • 🎚 通过共享主题上下文写入偏好 —— 不接受 modelValue
  • ♿ 可访问名称为本地化的 配色方案: <当前> 文本(可用 ariaLabel 覆盖),同时作为提示文字
  • 🎨 继承 SButtonIcon 的 size / color / variant / shape

演示

Basic

Click to cycle auto → light → dark

API

Aria 层

1

ThemeModeToggle

5 属性
属性
属性名类型默认值描述
size
ThemeSize
'md'
按钮的视觉尺寸。
color
ThemeColor
'accent'
按钮的主题颜色。
variant
ButtonVariant
'ghost'
该按钮的视觉变体。
shape
ButtonShape
'square'
按钮的形状。
ariaLabel
string
—
按钮的无障碍标签。默认显示本地化的 `Scheme: <当前首选项>` 文本,该文本同时用于生成 `title` 工具提示。

注意事项

适用范围

与 SThemeModeSelect、SThemeModeSwitch、SThemeModeSegment 类似,SThemeModeToggle 属于主题层组件,直接操作父级 SConfigProvider 的主题上下文。它不接受 modelValue;偏好由 provider 持有并在所有主题组件间共享。它是 SThemeModeSegment 的单按钮版本:同样三种偏好,没有下拉也没有可见选项列表。

提醒

  • 组件必须渲染在提供主题上下文的 SConfigProvider 内部,否则 useTheme 会抛出异常。
  • 与 SThemeModeSwitch 不同,它跟踪的是偏好而不是生效方案:处于 auto 时图标仍是显示器,即使解析出的方案是浅色或深色。
  • 循环只向前推进,选中某个特定偏好最多需要点击两次;需要直接选择请用 SThemeModeSelect 或 SThemeModeSegment。

更新日志

版本记录按发布版本分组,便于快速查看这个组件在不同版本里的实际变更。

v0.51.4

2026-10-30

对比版本

新功能

添加一个循环切换主题模式的按钮

范围: theme-mode-toggle作者: soybeanjs查看提交ca020