dsh-vae-theme
《庐州月 · 许嵩》— DeepSeek Harness 国风水墨主题插件 | 夜色水墨长卷 · 金丝九宫格边框 · VAE 书法标志 · 全屏雨幕 · 国风歌词竖排轮播
- Stars
- 0
- Language
- JavaScript
- Created
- Sep 10, 2026
- Updated
- Sep 11, 2026
Introduction
效果展示
整体界面

主视觉:夜色水墨长卷
远山四层淡墨、层间云带留白、月轮、水面涟漪、岸苇。

七个区域

金丝边框
边框的四角与四边分开绘制,所以输入框无论拉多长多高,花纹大小恒定,四边始终完整环绕。

落在输入区上的实际效果(半透明玻璃 + 贴边金丝):

艺术字

侧边栏与 Cordis 面板
| 侧边栏 | Cordis 面板 |
|---|---|
![]() | ![]() |
这是什么
一套以许嵩《庐州月》为题的 DeepSeek Harness 界面主题,面向许嵩粉丝社区。
界面语言取自中国画的留白与淡墨:主视觉是一幅夜色水墨长卷,界面各处点缀金丝边框与书法字, 再用雨幕和国风歌词把静态的界面带活。
主题覆盖 DSH 的七个区域,并额外加入四项页面特效。
有什么
七个区域
| 区域 | 内容 |
|---|---|
| 主界面 | 夜色水墨长卷(不含文字,避免与正文抢视觉) |
| 侧边栏 | 墨调肖像,上下淡出 |
| 输入区 | 半透明玻璃 + 金丝边框 |
| 新会话按钮 | 玻璃底 + 纯金框 |
| 设置面板 | 专辑墙 |
| Cordis 面板 | 独立绘制的水墨夜景(月牙 + 横排题字) |
| 浮窗面板 | 长卷的一段裁切 |
四项特效
| 特效 | 说明 |
|---|---|
| VAE 书法标志 | 替换左上角官方标志;侧边栏收起时自动换成「嵩」字小标 |
| 顶部金色艺术字 | 「音乐纯粹,爱V绝对」;右侧栏展开时自动让位 |
| 全屏雨幕 | 细密的斜雨,叠在整幅长卷之上 |
| 国风歌词轮播 | 对话区右侧留白,竖排显示歌词与出处 |
设计细节
配色
| 名称 | 值 | 用途 |
|---|---|---|
| 夜墨 | #080D12 / #0B1016 | 主背景、玻璃底 |
| 月白 | #DCE5EA / #F6FAFC | 正文、歌词主栏 |
| 黛青 | #22343F | 中景山体、次要文字 |
| 灰蓝 | #8FA5B3 / #CBDCE6 | 弱化文字、歌词副栏 |
| 朱砂 | #B23A2E | 仅作强调色(全局不使用印章图形) |
| 金 | #F9EDBC → #C9A03C | 金丝边框、艺术字 |
歌词
对话区右侧留白竖排显示,主栏是歌词、左邻副栏是出处——传统竖排自右向左阅读,所以正文在右、落款在左。
收录 24 首许嵩本人作词的中国风作品、共 160 句,逐字核对多个来源。播放为纯随机抽取, 不会连续重复同一句。
创作理念
我是许嵩的听众,喜欢很多年了。他的国风作品里那种把情绪全藏在景物里的写法——「三月一路烟霞莺飞草长」,我很喜欢。
在 DSH 里用久了,就想着给它做一套自己的皮。没什么复杂的动机,就是想把喜欢的东西放进每天都会打开的界面里:一幅夜色水墨,几笔金丝,下雨的时候有雨,翻过去的时候有他的词。
于是有了这套主题。开源出来,希望同样喜欢许嵩的人用着顺手。做得不好的地方,欢迎提 issue。
怎么用
前置
- DeepSeek Harness(Web 端)
- 已安装
dsh-theme-customizer
方式一:装成 DSH 插件(推荐,效果完整)
cd ~/.dsh/profiles/web
npm install dsh-vae-theme
然后把 dsh-vae-theme 加进同目录 package.json 的 dsh.profile.bundles 数组,重启 DSH。
装好后自动生效,不需要手动导入预设。
方式二:从源码本地挂载(想改东西的人用)
git clone https://github.com/StevenZha0/dsh-vae-theme.git
cd ~/.dsh/profiles/web
npm install link:/绝对路径/dsh-vae-theme
package.json:
{
"dependencies": { "dsh-vae-theme": "link:/绝对路径/dsh-vae-theme" },
"dsh": { "profile": { "bundles": ["...", "dsh-vae-theme"] } }
}
方式三:只导入主题预设(最省事,但不含特效)
lib/theme.tczp 是标准的 dsh-theme-customizer 预设文件。把它发给别人,
在定制器面板点 📥 导入预设 即可。
这种方式只有配色和七个区域的背景图,没有书法标志、金色艺术字、雨幕和歌词轮播。
确认装好了
浏览器打开 http://127.0.0.1:3080/vae-theme-status,看到 "verdict": "✅ 已就绪" 就对了。
暂时关掉特效
浏览器控制台执行后刷新:
localStorage.setItem('vae-theme-fx', 'off')
目录结构
.
├── README.md
├── LICENSE MIT(仅覆盖代码,见「版权说明」)
├── 版权说明.md 第三方素材清单与处理建议
├── package.json
├── cordis.patch.yml 安装时告诉 DSH 加载本插件
├── lyrics.mjs 歌词库(24 首 / 160 句)
├── lib/
│ ├── index.js 插件本体
│ ├── runtime.js 页面特效
│ └── theme.tczp 主题预设(七个区域配置 + 图片)
├── docs/ 效果图
└── tools/ 资产生成脚本(可选,想重做背景图时才用)
怎么拓展
一、扩充歌词库(最常见)
歌词全部在 lyrics.mjs,按曲目分组:
export const SONGS = [
{
title: '山水之间',
lines: [
'昨夜同门云集 推杯又换盏',
'隐居山水之间 誓与浮名散',
// 一首歌想放几句就放几句
],
},
// 继续追加曲目……
]
改完跑一遍:
node tools/make-runtime.mjs # 生成 lib/runtime.js
node tools/make-theme.mjs # 重新打包 lib/theme.tczp
刷新页面即可。
收录建议:只收国风曲目、只收许嵩本人作词的作品,并逐字核对来源。 曲目的排列顺序不影响播放——播放是纯随机的。
二、换配色
配色在 tools/make-theme.mjs 顶部的 C 对象里:
const C = {
ink: '#080D12', // 夜墨
moon: '#DCE5EA', // 月白
dai: '#22343F', // 黛青
aux: '#8FA5B3', // 灰蓝
accent: '#B23A2E', // 朱砂
}
改完 node tools/make-theme.mjs。
三、换某个区域的图
每个区域在主题预设里形如:
{
"mode": "image",
"opacity": 0.10,
"image": { "dataURI": "data:image/webp;base64,...", "fit": "cover" }
}
⚠️ 透明度是反的:数值越大越透明(
opacity: 0是完全不透明,1才是全透明)。 这是dsh-theme-customizer的约定,容易踩坑。
也可以直接把 mode 改成 "color" 用纯色,或 "none" 不用图。
四、重做背景图
npm install sharp # tools/ 需要
node tools/make-scroll.mjs # 水墨长卷(约 2–3 分钟)
node tools/make-frames.mjs # 金丝边框 + Cordis 面板
node tools/make-logo.mjs # VAE 标志 + 金色艺术字
node tools/make-panels-v2.mjs # 输入区 / 新会话 / 浮窗
node tools/make-runtime.mjs # 页面特效
node tools/make-theme.mjs # 打包预设
侧边栏肖像与专辑墙需要自备素材,放在:
raw/web/ 侧边栏肖像等
raw/albums/ 专辑封面(设置面板的专辑墙)
⚠️
tools/里的脚本含中文,请用编辑器修改,不要用 PowerShell 的Get-Content -Raw读写——它会按 ANSI 解码,导致注释乱码并吃掉换行。
五、改特效的样子
特效都在 tools/make-runtime.mjs:
| 想改什么 | 找哪里 |
|---|---|
| 雨滴数量 / 速度 | startRain() |
| 歌词轮播快慢 | show() 里的两个 setTimeout |
| 歌词字号、颜色、透明度 | .vae-vcol / .vae-vline / .vae-vsrc 这几条样式 |
| 歌词的上下位置 | place() 里的 vh * 0.34 |
| 歌词的左右位置 | place() 里的 gutter / 2 - 30 |
| VAE 标志大小 | .vae-brand 的 max-width 与 height |
| 欢迎页标题文案 | heroSwap() 里的 HERO_TEXT |
| 输入区上方分隔线 | chatDivider() 与 #vae-chat-divider 样式 |
改完跑 node tools/make-runtime.mjs。
版权说明
代码以 MIT 授权。但主题里的图像与文本来源不同:
| 类别 | 内容 | 授权 |
|---|---|---|
| 主题画面 | 水墨长卷、金丝边框、Cordis 面板夜景、VAE 标志、金色艺术字、输入区 / 新会话 / 浮窗 | 随 MIT 分发 |
| 第三方素材 | 侧边栏肖像照片、设置面板专辑封面、lyrics.mjs 歌词文本 | 版权属各自权利人 |
本仓库是粉丝向非商业作品,与许嵩先生及其经纪公司、与 DeepSeek 均无任何关联, 不使用任何官方标识。第三方素材版权归各自权利人所有,如权利人提出异议将立即移除。
详见 版权说明.md。
致谢
- 歌词全部来自许嵩本人作词的中国风作品,版权归许嵩先生所有
- 界面载体为 DeepSeek Harness,主题通过
dsh-theme-customizer承载 - 图像生成使用 sharp
License
MIT © 2026

