SuperAPI AI 工具集

theme-system

前端与建站

查看项目

更新于 10-15 20:10

技能介绍

用途:为前端项目提供基于 CSS 自定义属性(CSS variables)的多主题架构,通过 data-theme 属性切换 studio、earth、athlete、gradient 四套主题,并让组件感知当前主题。

主要能力:在 app/globals.css 的 @layer base 中定义 :root 及各 [data-theme="..."] 选择器下的颜色变量(如 --background、--foreground、--primary、--border、--radius 等),gradient 主题额外提供 --gradient-start 与 --gradient-end。lib/theme.ts 导出 themes 数组、Theme 类型、defaultTheme(studio)与 isValidTheme 校验函数。ThemeProvider 负责读取 URL 参数与 localStorage 并设置 document.documentElement 的 data-theme,setTheme 会同步写入 localStorage 并更新 URL。ThemeSwitcher 仅在非生产环境显示,用于开发时切换。组件可通过 useTheme 读取当前主题,按主题渲染不同样式或背景装饰。

使用方式:在布局中包裹 ThemeProvider 并放置 ThemeSwitcher;通过 ?theme=studio、?theme=earth、?theme=athlete、?theme=gradient 预览对应主题。

适用场景:需要多套视觉风格切换的站点,例如工作室、自然、运动、渐变风格页面。

限制:资料未提供安装命令、依赖版本、浏览器兼容性、性能与无障碍说明,也未说明生产环境主题切换的完整方案。