# dsh-new-ui [English](README.md) | 中文 > DeepSeek Harness(`dsh`)的整站 UI 重写插件:**深邃科技蓝 + 液态玻璃 + 过渡动画**,并**自动拦截 dsh-web-ui**,避免皮肤 / 插槽冲突。 ![logo](./main.png) --- ## 这是什么 / What `dsh-new-ui` 是一个单包 DSH 插件,做两件事: 1. **整站 UI 全面重写** —— 用 `ui-ux-pro-max` 设计的「深邃科技蓝 + 液态玻璃」浅色 / 深色双主题,通过官方 `ThemeRuntime.overrideTokens()` 全量重映射 `--dsw-alias-*` token,并注入液态玻璃样式层(极光背景、磨砂玻璃、150–300ms 过渡动画),右下角常驻俄语标语 **«Пусть технологии изменят мир!»**。 2. **自动拦截 dsh-web-ui** —— 自带 bundle patch 层(`cordis.patch.yml`),在加载源头按行 id 禁用 dsh-web-ui 全家桶(`web-ui-*` + 独立安装的 `@linxin666/*` + 外部 `dsh-better-sidebar`);宿主侧再做运行时冲突检测兜底。 不改 DSH 源码,全部走官方 profile / bundle 机制挂载。 --- ## 特性 / Features | 特性 | 说明 | |---|---| | 🎨 整站 token 重写 | 全量重映射 `--dsw-alias-*`,覆盖背景 / 边框 / 文字 / 按钮 / 状态 / 侧栏等全部语义 token | | 🌗 浅色 + 深色 | 每个 token 携带 `{ light, dark }` 双值,自动跟随系统配色方案 | | 🧊 液态玻璃 | 半透明表面 + `backdrop-filter` 磨砂 + 极光渐变背景 | | ✨ 过渡动画 | 交互元素 150–300ms 平滑过渡,尊重 `prefers-reduced-motion` | | 🛡️ 自动拦截 | `cordis.patch.yml` 禁用 dsh-web-ui 全部行 + 宿主侧运行时告警 | | 🌐 俄语标语 | 右下角 «Пусть технологии изменят мир!»(可交互淡入) | --- ## 安装 / Install 前置:已安装 DeepSeek Harness(`dsh web` 可正常启动)。 ```bash dsh plugin --profile web add dsh-new-ui dsh web ``` 从源码安装(开发调试): ```bash git clone https://github.com/123654qw/dsh-new-ui.git cd dsh-new-ui pnpm install pnpm run build dsh plugin --profile web add link:$(pwd) dsh web ``` --- ## 拦截机制 / How the interception works `dsh-new-ui` 的 `package.json` 声明了 `dsh.bundle.patch = ./cordis.patch.yml`。安装时它作为一层 bundle 叠加进 profile,`cordis.patch.yml` 按行 id 写入 `disabled: true`,覆盖: - 聚合包 `@linxin666/dsh-web-ui-all` 的全部 `web-ui-*` 行(17 条) - 独立安装包 `@linxin666/*` 的各自行 id(15 条) 宿主半侧(`src/index.ts`)通过 `ctx.loader.entries()` 枚举加载行,若仍检测到 active 的 dsh-web-ui 插件,打印明确告警: ``` [dsh-new-ui] detected N dsh-web-ui plugin(s) still active. ... ``` 验证拦截是否生效: ```bash dsh --profile web --dump-config ``` 应看到 `web-ui-*` / `better-sidebar` 等行显示 `disabled: true`。 --- ## UI 重写机制 / How the UI rewrite works - **主题**:`src/client/theme.ts` 导出 `TOKENS`(`ThemeTokenOverrides`),`src/client/index.ts` 调用 `ctx.theme.overrideTokens('dsh-new-ui', TOKENS)`。这一层叠加在活动主题之上,按 `{ light, dark }` 自动取当前配色方案的值,立即可见、可逆(卸载即还原)。 - **氛围**:`src/client/styles.ts` 注入极光背景 + 磨砂玻璃 + 过渡动画 + 右下角俄语标语,作为插件持有的 `