Neumorphic DSH Web theme with light and dark palettes, ambient lighting, material shadows, grain texture, frosted-glass surfaces, and micro-interactions.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-neu-theme
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:Lhy723/dsh-neu-theme
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
dsh-neu-theme
A Neumorphism (soft-UI) theme plugin for DeepSeek Harness web — gentle raised-and-recessed surfaces in a cream light palette and an ink-dark palette, complete with ambient lighting, material gloss, grain texture, glassmorphism and micro-interactions.
中文说明见 README.zh.md。
Features
- Two themes registered into the built-in ThemeRuntime:
neu-light— cream warm-white canvas, soft slate-blue accentneu-dark— ink-blue night canvas, luminous indigo accent
- Lighting — ambient top glow + corner fill painted on the visible surfaces (conversation canvas, sidebar, details column), not just body.
- Material — three-layer shadows (contact + cast + top-edge highlight), 145° gloss gradients aligned to the light direction, code blocks with a backlit inner wall.
- Texture — fine grayscale grain (inline SVG feTurbulence) over the canvas, sidebar, details column and code blocks.
- Glassmorphism — the composer capsule and its popovers (permission
menu, model menu, context panel) share one frosted-glass language: the
card's blur lives on a
::beforepseudo-layer so the nested popovers keep their own realbackdrop-filterblur (the card is not their backdrop root). - Micro-interactions — conversation nodes fade in on mount, bubbles
lift on hover, the composer recess deepens on hover/focus, tool rows and
reasoning rows strengthen on hover; all gated under
@media (prefers-reduced-motion: no-preference). - Settings row — Settings → General gains a Neumorphism picker (Default / Neu Light / Neu Dark), persisted through the Host settings document.
- Default is pristine — selecting Default (or having no saved skin) leaves the document exactly as dsh ships it: no injected stylesheet, no body attribute, native colors and shadows.
Preview
Neu Light
Neu Dark
Install
Install the published package into a dsh profile (works with the web
profile):
dsh plugin --profile web add dsh-neu-theme
# or install manually in the web profile:
cd ~/.dsh/profiles/web
pnpm add dsh-neu-theme
The package is also available on npm.
Then add "dsh-neu-theme" to dsh.profile.bundles in the profile's
package.json, and restart dsh web.
Once running: Settings → General → Neumorphism theme → pick
Default / Neu Light / Neu Dark. The choice is stored in the Host settings
namespace dsh-neu-theme (normally ~/.dsh/settings.yaml); choose Default
to return to the built-in appearance.
The Host-backed settings path requires DSH Web Host 0.1.1-rc.2 or newer.
Remote browsers cannot access the loopback settings API, so their selection
remains process-local by design.
Develop
npm run build # regenerates lib/client.js from src/client.tpl.js + themes/*.json
npm run check # syntax-checks the built bundles
While dsh web runs with the HMR chain mounted, rebuilding
lib/client.js is picked up by the polling watcher and hot-reloads only
this plugin's fiber.
Repository layout
dsh-neu-theme/
├── package.json # dsh.bundle.patch + dsh.client manifest
├── cordis.patch.yml # loader entry insert (id: neu-theme)
├── themes/ # neu-light.json / neu-dark.json — the palettes
├── src/
│ ├── index.js # host half (no-op loader entry)
│ └── client.tpl.js # browser half template (build injects themes)
├── scripts/build.mjs # zero-dependency build
└── lib/ # generated artifacts (gitignored)
License
MIT
Links
More in this category
Small-tailqwq/dsh-deep-whale#maid-atelier★ 2288
Whale-girl skin series for the DSH Web UI (maid-atelier).
elysia395/dsh-wallpaper-engine★ 397
Requires DeepSeek Harness 0.1.5-rc.1+ (DSH Desktop >= 2.0.7) and dsh-better-sidebar >= 0.19.0 - update both before installing or updating this plugin. Plays local Wallpaper Engine Video/Web wallpapers behind the chat, renders Scene wallpapers as extracted static frames, and adds content-rating/type filters, custom uploads and an iOS-style liquid-glass settings window.
d-dev0101/open-sea-skin★ 380
Realtime WebGPU ocean skin with quick controls for waves, daylight, glass opacity, and an automatic day cycle.
kingOfSoySauce/dsh-liang-skin★ 225
Adaptive reasoning slider skin that maps each model's available reasoning efforts onto a 0–30 visual intensity scale, with synchronized portraits, background, and interface colors.
RevolutionLA/dsh-dream-skin★ 195
One-command skin plugin: 8 original themes, translucent wallpaper with opacity/blur, per-user accent, and shareable theme-pack import/export, favorites and surprise-me — purely native on DSH's token system.
GGBond2424648901/deep-whale-day-night-theme★ 117
Non-commercial day/night whale-girl skin for official Harness rc.7: current no-viewport-frame layout, paired crystal-workshop and moon-tide scenes, chibi companions, translucent ornaments, and lightweight ambience.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.