跳过主要内容
N

dsh-skin-collection

nonchalantludens/dsh-skin-collection

Multi-style skin collection for the DeepSeek Harness (dsh) web GUI. Each skin registers a theme (Settings → Appearance / sidebar picker) plus scoped decoration CSS keyed to its active state.

安装

dsh plugin --profile web add github:nonchalantludens/dsh-skin-collection

README

dsh-skin-collection

npm version license dsh-plugin

Multi-style skin collection for the DeepSeek Harness web GUI. Each skin registers a theme plus scoped decoration CSS; a sidebar picker manages skins and the base color scheme independently — the default style restores the stock UI completely.

English | 简体中文

Skins

Theme idStyleSchemeSignature effects
wabi-sabiWabi-Sabi 侘寂lightEarth palette, paper grain, serif type, sepia images, Enso boot fade, vermillion DSH seal brand mark
terminalTerminal 终端darkPhosphor green on void black, VT323 mono, CRT scanlines + text glow, blocky scrollbar
cyberpunkCyberpunk 赛博朋克darkCyan/magenta/acid neon on deep teal, Space Grotesk, scanlines, chamfered images
film-noirFilm Noir 黑色电影darkChiaroscuro vignette, film grain, Oswald + typewriter body, grayscale photos with hover restore
swissSwiss 国际主义lightOff-white grid, Inter black uppercase headings, Swiss red accents, sharp corners
bauhausBauhaus 包豪斯lightPrimary-color flat geometry (red/blue/yellow), Jost, no shadows, red scrollbar
brutalismBrutalism 野性主义light4px black borders, hard 2D shadows, warning-yellow blocks, grain overlay
dark-glassDark Glass 暗黑玻璃darkDeep navy with blue/violet/cyan ambient glow, frosted code panels, sleek scrollbar
pixel-retroPixel Retro 像素复古darkIndigo arcade, Press Start 2P headings, CRT scanline + vignette, pixel box-shadows

Style sources: uiprompt.dev web-styles design prompts; each skin maps the prompt's palette to --dsw-alias-* tokens and its key visual effects to scoped CSS.

How it works

  • Skin ≠ theme preference. The stock ThemeRuntime persists only light/dark/system; a skin id held there reverts on every settings save or run-mode switch. This plugin keeps the active skin in its own persisted flag driving a body[data-dsh-skin-<id>] attribute — nothing automatic can revert it.
  • The skin owns the scheme. While a skin is active, the base color scheme locks to the skin's design (colorScheme) so dark skins never render light chrome around dark tokens; picking the default style releases the lock and restores your previous preference.
  • Palette travels with the attribute: each skin's --dsw-alias-* tokens are also emitted as plain CSS on that attribute, so colors survive any client-tree rebuild.
  • Base scheme is independent: 跟随系统 / 浅色 / 深色 switch underneath the skin overlay.
  • A skin id picked in the official Settings → Appearance selector is adopted automatically.

Install

# from npm
dsh plugin --profile web add dsh-skin-collection

# or straight from GitHub (prebuilt lib/ committed — no build scripts run)
dsh plugin --profile web add github:NonchalantLudens/dsh-skin-collection

Restart dsh web. Use the 皮肤 button at the sidebar foot to pick a skin; the default style restores the stock look. Skins also appear under Settings → Appearance.

No install-time code execution: the package ships prebuilt artifacts and declares no build scripts.

Structure

  • lib/client.js — shipped client bundle in the loader's closure-factory format (hand-written; no build step required for pure CSS/DOM skins)
  • lib/index.js — node half (no-op cordis plugin stub)
  • src/client/index.ts, src/skins/ — readable source of reference, kept in sync with lib/
  • cordis.patch.yml — inserts the plugin into the web roster on install

Adding a skin

  1. Append an entry to EXTRA_SKINS (id, label, theme.tokens, optional Google-Fonts imports, scoped css) in lib/client.js.
  2. Done — registration, the picker menu, palette emission, and the attribute guard are data-driven.
  3. Bump the version and reinstall.

Note: all skins' Google-Fonts @imports are hoisted to the top of one combined decoration sheet (CSS requires @import before other rules); keep per-skin imports in the skin's imports array rather than inside its CSS body.

License

MIT

相关插件