Shmilyol
galgame-skin
No description
- Stars
- 2
- Language
- JavaScript
- Created
- Aug 14, 2026
- Updated
- Aug 14, 2026
Introduction
樱之语 Sakura VN — galgame 风格 DSH 皮肤插件
把 DeepSeek Harness Web GUI 改造成 galgame 风格的和风界面。
效果
- 主题:暗色使用深色典雅底与朱红/金点缀,亮色使用和纸米白;全局字体切换为衬线体
- 场景:黄昏渐变帷幔、金角边框和飘落的樱花瓣
- 开关:会话头部提供「樱花」按钮;设置页提供「樱之语」总开关
- 无障碍:
prefers-reduced-motion下自动关闭樱花动画;配色对比度均 ≥ 4.5:1
安装 / 激活
这是一个纯 Client 的动态 Cordis 插件,不需要修改 DSH 源码:
- 使用
galgame-plugin.client.js的内容定义插件的code.client - 运行
cordis_run并在 UI 中批准 - 插件激活后主题和场景效果即时生效
动态插件只存在于当前进程;重启后需要用
galgame-plugin.client.js重新定义并挂载。
关闭 / 还原
- 总开关:设置 → 通用 →「樱之语」关闭,即时还原默认外观
- 完全还原:运行
cordis_stop停止插件,移除全部 token 覆盖、CSS 和 Slot 注册
架构
项目当前只有 Client 运行时:
| 模块 | 职责 |
|---|---|
theme.overrideTokens | 覆盖 13 个官方亮色/暗色 token;总开关关闭时移除覆盖层 |
styles.insert | 注入和风皮肤 CSS,并用 body:has(.gal-scene[data-gal-state="on"]) 门控变量 |
shell.overlay | 注册帷幔、樱花和金角边框组成的全屏场景层 |
conversation.session.header.actions | 注册樱花显隐按钮 |
settings.general.item | 注册皮肤总开关 |
模块级内存 store 在场景层、头部按钮和设置项之间同步 skin 与 sakura 状态。所有注册均保留 disposer,停止插件即可还原。
文件清单
galgame-plugin.client.js— Client 端插件源码(code.client函数体)tools/client-template.js— 与 Client 源码同步的定义模板docs/superpowers/specs/— 设计决策记录docs/superpowers/plans/— 实施计划记录
已知限制
- 皮肤依赖
:has()选择器(Chrome 105+ / Safari 15.4+ / Firefox 121+);旧浏览器会使用降级变量层 - 全局字体为衬线体,如不需要可删除
SKIN_CSS中的--dsw-font-family定义