本技能用于更新与维护 GitArbor TUI 的主题系统,覆盖新增主题、调整现有主题颜色、修复主题相关的不一致问题,以及更新主题文档。使用场景包括:用户想为 GitArbor 添加新主题、修改既有主题配色、反馈主题缺陷、询问主题结构或设计令牌、涉及特定配色方案(如 Catppuccin、One Dark),或需要确保所有组件正确使用主题令牌。
主题定义集中在 src/theme.ts,每个主题需完整实现 Theme 接口,包含 name、description,以及 colors(primary、primaryDark、border、borderFocused、background、text、git、status)、spacing(none 到 xl,对应 0 至 5)、borders(style 为 'single')等字段。新增主题需在 themes 导出对象中注册,主题 ID 使用小写加连字符命名,并同步更新 THEMES.md 与 THEME_REFERENCE.md,补充描述、色板与对比表。修改主题时直接改对应颜色值,若变化显著也需同步文档。
组件中禁止硬编码颜色,必须引用 theme.colors.*;可用 grep -r '#[0-9A-Fa-f]{6}' src/components/ 检索硬编码色值。验证方式包括运行类型检查 bun --bun tsc --noEmit、启动应用 bun run start,在设置界面确认主题出现、预览色正确、应用后状态视图、差异视图、状态消息与边框均正常。用户主题偏好保存在 ~/.gitarborrc,也可用 echo '{"theme":"theme-id"}' > ~/.gitarborrc 手动设置。
颜色选择需满足对比度要求:正文与背景至少 4.5:1(WCAG AA),交互元素至少 3:1;Git 状态色保持语义一致(绿=已暂存/新增,黄=已修改,灰或青=未跟踪,红=已删除)。
限制:终端需支持真彩色(24 位),否则配色可能显示异常;边框样式目前仅支持 'single';材料未提供收费、平台支持范围等更多信息。