前言¶
DeepSeek Harness(DSH)的 Web UI 默认是一套中性、偏工程化的界面。日常写智能体、调对话时,很多人只想换配色和氛围,又不想动宿主逻辑或 fork 前端。社区插件 ikode423/dsh-ronova-theme(若娜瓦主题)走另一条路:纯客户端 Bundle,通过主题令牌和样式覆盖改视觉,卸载后界面立刻回到原样。
下面按「是什么 → 能做什么 → 怎么装 → 怎么用」说明,事实均来自仓库 README 与 package.json。
这是什么¶
- 名称:若娜瓦主题 · RONOVA(插件列表里显示「若娜瓦主题」)
- 维护者:iKode423
- 分类:趣味换装(社区目录 SkillHub 插件页)
- 定位:基于原神若娜瓦的设计元素,为 DeepSeek Harness Web UI 做的整套视觉换肤——绯红、灰烬与金瞳配色,宋体标题,酒红选中态,以及空状态、侧栏、对话两侧的 Q 版贴纸。
- 实现方式:纯客户端插件 Bundle(Host 半边为空),不改动 Harness 的任何宿主逻辑;代码以 MIT 开源,角色素材有单独声明(见文末注意)。
当前仓库版本为 0.1.1,包名 @local/ronova,未发布到 npm。
核心功能¶
配色与层次¶
深浅两套主题令牌已重新定义,例如灰烬纸底 #EADCD8、深墨底 #120A0C、酒红主色 #8A1220。侧栏与顶栏有随时间稳定的酒红晕染(深浅可在设置里调);选中会话行、激活标签页、发送按钮统一为实心酒红;用户消息与中途插入消息的气泡为暖酒红,而非默认中性灰。
排版与正文¶
标题(h1–h4)用宋体,正文用 Avenir Next / 苹方,代码用 SF Mono。代码块为暖纸底、金色细边与暖色标题栏;表格表头淡酒红、金色横线、无纵线;引用块金色左线 + 宋体斜体;行内代码为金棕描边小标签。
角色元素¶
- 空状态贴纸下方有宋体副题「死之执政 · RONOVA」。
- 侧栏品牌位为随机贴纸 +
RONOVA / HARNESS字标。 - 助手侧足够高的步骤与运行中的过程分组(思考/读取块)左侧可挂 60px 贴纸;过矮的单行不挂,避免叠在一起;展开/收起时贴纸淡入淡出并带轻微缩放。
- 生成中时,输入区下方有脉动贴纸徽标。
- 全窗口飘落程序生成的黑色羽毛(不对称羽枝轮廓);深色模式下靠酒红轮廓光可见。
设置页「若娜瓦」分区¶
调节即时生效,并持久化在 localStorage,键名为 ronova.settings.v1:
| 设置项 | 档位 | 说明 |
|---|---|---|
| 色浓度 | 淡 / 标准 / 浓 | 侧栏与顶栏酒红晕染强度 |
| 角色贴纸 | 显示 / 隐藏 | 关闭后隐藏对话两侧贴纸、等待动画与空状态贴纸;品牌标和头像保留 |
| 明暗 | 浅色 / 深色 | 等价于点侧栏头像切换 |
| 飘落羽毛 | 关 / 少 20 / 标准 34 / 多 52 | 同屏羽毛数量 |
| 羽毛浓淡 | 淡 0.6 / 标准 1 / 浓 1.45 | 乘在每层透明度上 |
| 羽毛大小 | 小 0.75 / 标准 1 / 大 1.4 | 尺寸缩放 |
| 羽毛形态 | 混合 / 长羽 / 短羽 | 尺寸分布偏好 |
底部「恢复默认」可一键回到初始值。
技术要点(与卸载行为)¶
- 主题令牌走
theme.overrideTokens,样式表挂在shell.overlay的ronova.skin上;卸载即恢复。 - 贴纸素材内嵌在
client.js(base64 WebP),不依赖静态资源路由。 - 依赖三个客户端包(在
package.json的dsh.client.inject中声明):@deepseek-ai/dsh-client-ui-theme、@deepseek-ai/dsh-client-ui-sidebar、@deepseek-ai/dsh-client-ui-conversation;缺失时插件不会加载。 - 开启系统「减少动态效果」(
prefers-reduced-motion)时,羽毛不再生成,贴纸脉动也会停;窗口不可见时羽毛动画暂停。
安装与启用¶
本包通过 package.json 里的 dsh.bundle.patch 声明为 Bundle,安装时由插件管理器向 Harness 插件树插入:
- insert:
- id: ronova
name: '@local/ronova'
@local/ronova 仅用于本地开发包名,注册表里搜不到。推荐从 GitHub 安装:
- 打开 Harness 的「插件」页,在安装框填写仓库地址:
github:iKode423/dsh-ronova-theme
- 确认插件列表里出现「若娜瓦主题」。
- 刷新页面,主题生效。
也接受:本地绝对路径(如 /Users/you/code/ronova)、完整 URL https://github.com/iKode423/dsh-ronova-theme,或在地址后加 # 指定分支/标签/提交,例如 github:iKode423/dsh-ronova-theme#main。
安装前 DSH 会用 git ls-remote 探测 GitHub(超时 5 秒),本机需有 git 且能访问 github.com 与 codeload.github.com。
更新:从 GitHub 安装的是某次提交的快照,不会自动跟随 HEAD。升级时先在插件页卸载,再用同一地址重装,然后刷新。
源码仓库:https://github.com/iKode423/dsh-ronova-theme
典型用法¶
快捷操作¶
- 点侧栏中部的若娜瓦头像:切换浅色 / 深色(侧栏收起时头像缩为 36px,仍可点)。
- 在设置 →「若娜瓦」里调色浓度、贴纸、羽毛等;无需重启。
开发侧 link(可选)¶
若本地改主题,可 link 进当前 profile 的 node_modules(pnpm link 或 pnpm add file:../ronova),在 profile 的 Cordis 配置里加入上面的 insert,再重启 Harness 或刷新 Web UI。改 client.js 可热重载,无需整页刷新。
适用场景与注意¶
适合谁:长期在 DSH Web UI 里写对话、看 Markdown 与代码块,希望界面有统一酒红/灰烬视觉和可选角色贴纸,且不想改 Harness 核心代码的用户。
安装前建议:插件以当前 DSH 进程权限在浏览器端运行,安装前可浏览 GitHub 源码与 MIT 许可证;角色形象、Q 版贴纸著作权归原权利方,仓库声明素材不随 MIT 授权、不宜商业用途,与 DeepSeek 及角色版权方均无关联。
已知限制(README 原文):无法改 macOS Dock / 访达里的应用图标;部分原生控件类名带构建哈希,Harness 升级后样式可能需对照维护;品牌位为 Harness 单槽位,本插件用 priority: -1 抢占,同优先级冲突会抛错并回滚整个插件。
结尾¶
若娜瓦主题把 DSH「一切皆插件」的思路用在纯视觉层:令牌 + 客户端注入,不动 Host。需要整套换肤时,在插件页填 github:iKode423/dsh-ronova-theme 安装并刷新即可;细节与预览图见仓库 README。