若娜瓦主题:为 DeepSeek Harness Web UI 做的整套视觉换肤

前言

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 安装:

  1. 打开 Harness 的「插件」页,在安装框填写仓库地址:
github:iKode423/dsh-ronova-theme
  1. 确认插件列表里出现「若娜瓦主题」。
  2. 刷新页面,主题生效。

也接受:本地绝对路径(如 /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 进当前 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。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜