aiko-dsh-theme
v0.1.0
Published
Aiko orange and charcoal theme with the collaboration-core brand for aiko-dsh.
Readme
aiko-dsh-theme
为 aiko-dsh 提供 Aiko 的浅色橙色、深色金色与炭灰主题。插件通过现有主题服务注册可撤销的颜色覆盖,并在侧栏和空白会话中显示官方协作核心 SVG。展开侧栏显示 aiko-dsh。
安装
需要 Node.js ^22.19.0 || >=24.0.0 和 pnpm 11.7.0。依赖固定为已发布的 npm 版本,构建不依赖本机 Harness 源码目录。插件适配 DSH 0.1.5-alpha.2 的主题变量覆盖与侧栏/会话品牌插槽。
git clone https://github.com/aiko-dsh-plugins/aiko-dsh-theme.git
cd aiko-dsh-theme
pnpm install --frozen-lockfile
pnpm run check
npm pack --ignore-scripts在生成的 aiko-dsh-theme-0.1.0.tgz 所在目录,将安装包加入目标 DSH profile:
dsh plugin --profile web add ./aiko-dsh-theme-0.1.0.tgz使用 DSH 源码启动的环境,可在 Harness 目录运行 pnpm dsh,传入安装包绝对路径。本地插件开发可在构建后使用 link:<插件绝对路径>。GitHub Actions 提供可下载的安装包;npm 发布流程支持版本标签发布和手动预演,正式发布需要配置仓库的 NPM_TOKEN secret。
在目标 profile 的 package.json 中向 dsh.profile.bundles 追加 aiko-dsh-theme,保留其他 bundle,然后通过 pnpm dsh --profile web 重启。此 bundle 注册 aiko-theme 插件。在 profile patch 中为 id: aiko-theme 设置 disabled: true 可以禁用,移除覆盖后恢复;修改 profile 的 bundle 清单后需要重启。
外观
继续通过“设置 → 通用 → 外观”选择浅色、深色或跟随系统。安装主题不会改变已有外观选择或正文大小。暗色下的金色主按钮使用深色文字;链接采用对比度更高的铜色/金色。成功、警告和错误保留各自的状态含义。
主题覆盖导航、按钮、输入区域、消息气泡、Markdown 背景和滚动条颜色。组件保留既有尺寸和交互。Studio 保留原生组件,通过需求工程插件跟随同一个亮暗主题选择。本插件不改动 Agent、模型、认证凭据或服务端数据。
界面文字、标题、Copilot 和弹窗统一使用系统无衬线字体;代码、技术标识和资源预览统一使用代码字体。主题同时提供 DSH 预览字体别名和 Studio 的 --studio-font-ui / --studio-font-code 属性,Studio 组件包需要包含这两个属性的支持。卸载主题后,Studio 恢复原字体回退。图标字体、文件类型图形以及文档自身的原型和 PDF 排版保持独立。
侧栏和会话标识复用官方小尺寸 SVG,并作为 data URL 打包,无需运行文档站、字体服务或图片服务。浏览器页签标题及初始加载页由宿主构建负责,主题不会与会话标题更新逻辑争抢标题。
设计来源
aiko-docs 中正式设计规范为 DESIGN.md,快速索引为 DESIGN-TOKENS.md。scripts/sync-design.mjs 读取 app/global.css 的品牌变量、已安装的 Fumadocs 中性色以及 public/brand/core/aiko-core-ui-{light,dark}.svg,生成 src/design.json,包含完整亮暗色值、SVG 和来源 SHA-256。
pnpm sync-design /path/to/aiko-docs
pnpm build
pnpm testsrc/tokens.ts 将原始设计变量映射到 DSH 语义变量;悬浮和选中背景通过 color-mix 从品牌色派生。字体使用规范中的系统字体栈,代码字体在通用等宽字体前保留 Windows 中文回退。设计源更新后,需要主动同步并重新构建插件。
验证与卸载
pnpm run check 检查类型并构建两个入口,然后验证实际产物中的 Host ESM、浏览器模块加载协议、运行时依赖、亮暗色对、内嵌品牌素材和字体变量。CI 执行相同命令并上传安装包。
完整组件联调测试单独保留,因为 DSH 发布的 Client 模块使用浏览器加载器,且不包含测试所需的源码文件。将 AIKO_DSH_SOURCE 设置为已安装依赖的兼容 Harness 源码目录,再运行 pnpm test:integration,即可使用真实 Client 插槽运行时、主题服务和 DOM 应用器,验证字号与外观保留、品牌渲染、卸载及重新挂载。品牌插槽由包内快照记录。
$env:AIKO_DSH_SOURCE = 'C:/path/to/deepseek-harness'
pnpm test:integration颜色覆盖、词典、样式节点和插槽注册都由插件生命周期管理。卸载恢复底层主题及默认品牌,保留用户已保存的外观设置。品牌素材归 Aiko 所有,本包未授予第三方再分发许可。
