Back to home@Junhousheng-Serena

celtic-adventure-skin

No description

Stars
0
Language
JavaScript
Created
Aug 21, 2026
Updated
Aug 21, 2026

Introduction

Celtic Adventure — a Dark Middle-earth-adventure Skin for DeepSeek Harness

一个「中土世界冒险风」的暗夜皮肤(凯尔特主题)。深色夜幕底色 + 远山/城堡线稿 + 酒馆灯笼暖光 + 星空月影,底部一排六枚金色纹章徽记(城堡 / 游侠 / 商贩 / 猎人 / 勇者 / 酒馆)。所有装饰都在点击穿透的覆盖层上,不影响操作;停用即全部还原。

A dark "Middle-earth adventure" skin (Celtic theme) for DeepSeek Harness. Twilight night palette, castle/tower line-art, tavern lantern glow, a dim starfield and moon, and a frieze of six gold heraldic medallions (castle, ranger, merchant, hunter, hero, tavern). Everything lives on a click-through overlay, so the UI stays fully usable; stopping the plugin restores the default look.

scene


它做了什么 / What it does

  • 注册一个主题 celtic-adventurecolorScheme: dark),覆盖 13 个 DSH 别名色值 → 暗夜基调、暖金强调、烛光羊皮纸文字。
  • 注入手稿衬线字体Palatino / Georgia(仅在选中该主题时生效)。
  • 挂在 shell.overlay 上的装饰层(全部 pointer-events: none):
    • 全屏淡金凯尔特绳结纹理;
    • 底部分布:远山双线 + 左右城堡塔楼(垛口、绿/金旗、透光塔窗)+ 中央城门拱影 + 墙头火盆;
    • 左端「酒馆招牌」(带灯笼暖光光晕);
    • 城墙上一字排开六枚金纹章(城堡、游侠、商贩、猎人、勇者、酒馆);
    • 全屏星点 + 右上角淡月 + 暗角渐晕 + 底部篝火暖光 + 一圈描金内框。

全部副作用都绑定在插件 Fiber 上:stopping / unloading 会自动注销主题、移除覆盖层、还原字体。


如何在 Harness 里加载 / How to load it

当前以「动态 Cordis 插件」形式加载(会话内、进程内,重启消失)。在 Harness 的插件创建界面里:

  1. New plugin → kind: new,语义前缀随便填(例如 celts);
  2. code.client 粘贴本仓库 plugin/skin.jsapply 函数体的 return { ... }(就是那份 return { apply(ctx) { ... } } 的完整函数体字符串);
  3. cordis_definecordis_run 激活,授权后即生效。

说明:plugin/skin.js自包含的(SVG 以 base64 内嵌,浏览器可直接运行,无 node:fs/import)。assets/*.svg 是可读的源图,改完重新 base64 内嵌即可。

以后如果想做成可 dsh plugin add 的 bundle 安装,需要把这份代码接到包级的 dsh.bundle + dsh/client.js(参照 @liustack/modlens 的结构)并走 cordis.patch.yml,属于额外一步。


自定义 / Customize

  • 文字/配色:改 plugin/skin.js 里的 TOKENS
  • 场景:编辑 assets/adventure-scene.svg(山线、塔楼、窗户、纹章等都在里面),改完转成 base64 替换 SCENE 常量;
  • 星空assets/night-stars.svgSTARS
  • 绳结纹样assets/knot-dark.svgKNOT
  • 字体FONT_CSS
  • 装饰强度:按喜好调整 opacity 或各覆盖层背景(radial-gradient 的透明度)。

SVG 转 base64(PowerShell):

[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes((Get-Content assets/adventure-scene.svg -Raw) -replace '>\s+<','><'))

License

MIT © 2025