Skip to main content

use_theme_provider

Function use_theme_provider 

Source
pub fn use_theme_provider() -> Signal<Theme>
Expand description

提供主题上下文的 Hook。

同时提供两个上下文:

  • Signal<Theme>:用户选择的主题意图(Light/Dark/System)。
  • Memo<ResolvedTheme>:实际生效明暗(System 模式下会随系统偏好变化)。

持久化策略:Light/Dark 写入 localStorage;System 移除 localStorage, 使首屏防闪烁脚本回退到 prefers-color-scheme

WASM 端注册 matchMedia('(prefers-color-scheme: dark)')change 监听, 系统偏好变化时更新 system_dark,派生的 resolved memo 自动重算,下游 (CodeMirror 等)通过读取 resolved 即可实时跟随系统。

<html>dark class 不在此处管理。WASM 端由 ThemeToggle 的 onclick 通过 yggdrasil-core.js 的圆形展开动画在 View Transition 回调里同步 toggle。 初始 class 由 ThemePreload 首屏脚本设置,避免闪烁。