dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
为 DeepSeek Harness Web UI 做的整套视觉换肤:绯红、灰烬与金瞳的配色,宋体标题,酒红选中态,以及出现在空状态、侧栏、对话两侧的若娜瓦 Q 版贴纸。
这是一个纯客户端插件 Bundle(Host 半边为空),不改动 Harness 的任何宿主逻辑,卸载后界面立即回到原样。
| 深色 · 新对话 | 深色 · 对话 |
|---|---|
![]() | ![]() |
| 浅色 · 新对话 | 浅色 · 对话 |
|---|---|
![]() | ![]() |
截图取自 2462×1702 的原始界面,仓库里存放的是 1600px 宽、WebP 质量 82 的版本(合计约 220 KB)。
#EADCD8 灰烬纸底 / #120A0C 深墨底,酒红主色 #8A1220hr 为两端渐隐的金线,列表标记酒红RONOVA / HARNESS 字标设置里新增「若娜瓦」分区,所有调节即时生效并持久化在 localStorage(键 ronova.settings.v1):
| 设置项 | 档位 | 说明 |
|---|---|---|
| 色浓度 | 淡 / 标准 / 浓 | 侧栏与顶栏酒红晕染强度 |
| 角色贴纸 | 显示 / 隐藏 | 关闭后隐藏对话两侧贴纸、等待动画与空状态贴纸;品牌标和头像保留 |
| 明暗 | 浅色 / 深色 | 等价于点侧栏头像切换 |
| 飘落羽毛 | 关 / 少 20 / 标准 34 / 多 52 | 同屏羽毛数量 |
| 羽毛浓淡 | 淡 0.6 / 标准 1 / 浓 1.45 | 乘在每层透明度上 |
| 羽毛大小 | 小 0.75 / 标准 1 / 大 1.4 | 尺寸缩放 |
| 羽毛形态 | 混合 / 长羽 / 短羽 | 尺寸分布偏好 |
底部「恢复默认」可一键回到初始值。
本包通过 package.json 里的 dsh.bundle.patch 声明自己是一个 Bundle,安装时由插件管理器把下面这条插进 Harness 的插件树:
- insert:
- id: ronova
name: '@local/ronova'
@local/ronova 是本地开发时用的包名,没有发布到 npm,在注册表里搜不到。安装请走 GitHub 仓库或本地目录。
推荐流程(GitHub):
github:iKode423/dsh-ronova-theme也接受这些写法:
/Users/you/code/ronovahttps://github.com/iKode423/dsh-ronova-theme#,例如 github:iKode423/dsh-ronova-theme#main更新:从 GitHub 安装拿到的是某个提交的快照,不是版本范围,仓库 HEAD 前进不会自动跟随。升级时先在插件页卸载,再用同样的地址重装,然后刷新页面。
网络:安装前 DSH 会先用 git ls-remote 探一次 GitHub(超时 5 秒),因此本机需要有 git 且能连上 github.com 与 codeload.github.com。连不上会直接失败并标记 failedAt: 'spec-host',与包名、scope 无关。
手动方式(开发时常用):
node_modules(pnpm link 或 pnpm add file:../ronova)insert插件依赖三个客户端包:@deepseek-ai/dsh-client-ui-theme、@deepseek-ai/dsh-client-ui-sidebar、@deepseek-ai/dsh-client-ui-conversation,它们在 package.json 的 dsh.client.inject 中声明,缺失时插件不会加载。
client.js 里(base64 WebP),所以插件不依赖任何静态资源路由;代价是文件偏大sidebar.brand.mark / sidebar.brand.name)是 Harness 的单槽位,本插件用 priority: -1 抢占;同优先级的注册会抛错并回滚整个插件theme.overrideTokens,卸载即恢复;样式表挂在 shell.overlay 的 ronova.skin 上prefers-reduced-motion)时,羽毛不再生成,贴纸脉动也会停ronova/
├── package.json # 包信息、dsh.bundle / dsh.client 声明
├── cordis.patch.yml # Bundle 的插入补丁
├── index.js # Host 半边(空实现)
├── client.js # 全部实现:CSS、令牌、组件、羽毛动画
├── icon.png # 插件列表图标
├── locale/{zh,en}.json # 插件元信息文案
├── docs/preview/ # README 用的四张预览图
├── LICENSE # MIT
└── README.md
client.js 是手写的 ESM 模块,直接以 window.__ModuleLoader__.load 注册client.js 会热重载,不用刷新页面client.js 的 CSS 模板字符串里,按注释分段:令牌 → 侧栏细节 → 正文排版 → 卡片/浮层 → 输入区 → 空状态与设置页 → 羽毛 → 贴纸OVERRIDES 对象里,只包含 Harness 暴露的 14 个别名令牌;更深层的静态色板(--dsw-static-*)在 CSS 里直接覆盖React.createElement,没有 JSX,也没有除 react 之外的依赖改动建议一次一个主题(例如「只调代码块」)提交,方便回退。
.app 包内的 icon.icns,插件层没有对应接口_7514NG_sectionLabel),升级 Harness 后可能失效,需要重新对照代码以 MIT 协议开源:可以自由使用、修改、再分发,保留版权声明即可。
素材不受此协议覆盖:
本项目是个人兴趣作品,与 DeepSeek 及角色版权方均无关联,非官方项目。
feat: 新功能、style: 纯视觉调整、fix: 修复、docs: 文档、chore: 杂项