DeepSHPlugins
dsh-theme-liquid-glass 项目预览
GITHUB / COMMUNITY PROJECT

dsh-theme-liquid-glass

换皮肤色JavaScriptMIT

真正的液态玻璃 DSH 主题:SVG 边缘折射效果覆盖输入框、发送按钮、消息气泡、视图标签、队列坞和侧边栏。自带动态色块壁纸,可自定义背景模糊与亮度,重新设计的模型选择弹窗,全界面玻璃质感按钮,以及水滴形状的专属设置图标。

2 StarsFAVKTOXIC 更新时间 2026-09-08
访问 GitHub 仓库
dsh-theme-liquid-glass 项目预览
dsh-theme-liquid-glass 界面截图dsh-theme-liquid-glass 界面截图dsh-theme-liquid-glass 界面截图

项目介绍

中文

真正的液态玻璃 DSH 主题:SVG 边缘折射效果覆盖输入框、发送按钮、消息气泡、视图标签、队列坞和侧边栏。自带动态色块壁纸,可自定义背景模糊与亮度,重新设计的模型选择弹窗,全界面玻璃质感按钮,以及水滴形状的专属设置图标。

English

Genuine Liquid Glass theme for DSH Web UI: SVG feDisplacementMap edge refraction on input card, send button, bubbles, view tabs, queue dock and sidebar. Built-in animated demo wallpaper, customizable background blur & brightness, redesigned model selector popup, glass-styled buttons throughout, and a unique water-drop settings icon.

项目信息与收录信号

快照 2026-09-11
作者 / 组织
FAVKTOXIC
仓库
FAVKTOXIC/dsh-theme-liquid-glass
GitHub Stars
2
Forks
0
开发语言
JavaScript
许可证
MIT
最近推送
2026-09-08
Manifest
数据中检测到声明

公开仓库不自动等于可商用;许可证与当前兼容性以原项目文档为准。Manifest 和数据评分不构成安装安全认证。

数据评分

60/ 100
维护活跃
99
文档与实用信息
100
生态关注度
14
安装便捷信号
100
项目声明信号
100

近 3 天仍在更新;README 含完整安装与使用说明;关注度尚低(2)。

评分来自已有数据快照的五维模型,仅作浏览参考,不是实际使用评测或安全检测结论。

安装与使用

所有项目资料与许可均以对应 GitHub 仓库为准。

dsh plugin --profile web add github:FAVKTOXIC/dsh-theme-liquid-glass

复制命令不会自动执行。请先阅读仓库文档,确认环境要求与许可证。

项目截图

仓库 README

GitHub 原文

已保存的仓库文档快照;文档抓取时间未记录,可能与上方目录介绍处于不同版本。安装前请核对当前仓库说明。

dsh-theme-liquid-glass

Genuine Liquid Glass theme for DeepSeek Harness Web UI.

简体中文

A complete frosted-glass skin: SVG edge refraction, a customizable animated wallpaper, glass-lens buttons, a redesigned full-screen model selector, and a dedicated water-drop settings icon.

v0.4.2 — Requires DeepSeek Harness ≥ 0.1.2-rc.1. This release adapts
to the harness client-package split: the store part of the removed
@deepseek-ai/dsh-client-runtime now lives in @deepseek-ai/dsh-client-store.
See CHANGELOG.md.

Features

Liquid Glass UI

  • SVG Edge Refraction · feDisplacementMap refraction on the input card,

send button, message bubbles, view tabs, queue dock, and sidebar buttons. Intensity is adjustable from a slider.

  • Frosted Glass · Token overrides (ctx.theme.overrideTokens) swap the

--dsw-alias-* semantic tokens for translucent glass values. Glass parameters are driven by --dsh-lg-* custom properties on body and apply instantly.

  • Glass-lens Buttons · Send, view tabs, sidebar actions, and the command

(+) button all use a glass material with edge refraction.

  • Water-drop Settings Icon · A droplet replaces the default gear in the

settings nav.

  • Hover Highlights · Interactive elements get a subtle glow and lift.

Wallpaper & Background

  • Custom Background Blur & Brightness · Control wallpaper blur (bgBlur)

and brightness (brightness) independently so the background sits perfectly under the glass.

  • Built-in Animated Demo Wallpaper · A color-blob wallpaper that works out

of the box, tunable via speed, blob count, color cycle, blur, and opacity.

  • Dynamic Wallpaper Sources · Web URLs (iframe, optional host proxy), local

HTML, local images, and local videos.

Model Selector

  • Redesigned Model Selector · A full-screen frosted picker with provider-group

grid layout and hover highlights — skip the intermediate root pane and jump straight to the model list.

Settings Page

  • Dedicated top-level "Liquid Glass" page (settings.section, beside

General / Model / Plugins) with two groups: Page Background and Input Card · Frosted Glass. All changes apply in real time; Reset to defaults restores everything.

  • One-click Disable · The master toggle strips every token override,

removes the wallpaper, and disables all frosted/lens rules at once — every visual is gated on the body.dsh-lg-on class, so disabling leaves zero residue.

Implementation Notes

  • Frost is applied as filter: blur() on a dedicated background layer

(inset: -48px for bleed room), never backdrop-filter on #root — a non-none backdrop-filter makes #root the containing block for every position: fixed descendant (menus, popups, toasts), re-anchoring them.


Structure

src/index.ts          Host half: wallpaper file routes, file upload, web proxy
src/client/index.ts   Browser half: token overrides, background layer, glass params, settings panel
src/shared.ts         Shared constants and settings types (zero runtime dependencies)
build.mjs             SWC build pipeline (lib/index.js + lib/client.js in loader format)

Install to a DSH Web Profile

Via npm (recommended)

dsh plugin add --profile web dsh-theme-liquid-glass

Refresh the browser.

Compatibility: requires DeepSeek Harness ≥ 0.1.2-rc.1. Earlier
harness versions use the removed dsh-client-runtime package and are not
supported by v0.4.0.

Local Development Link

Link your source directory into the profile's node_modules with a Windows junction (a plain dsh plugin add "<absolute-path>" can produce a broken relative symlink and drop the plugin from the profile bundles list):

# 1) remove any stale entry
dsh plugin remove --profile web dsh-theme-liquid-glass

# 2) junction the source dir into the profile
New-Item -ItemType Junction -Path "$env:USERPROFILE\.dsh\profiles\web\node_modules\dsh-theme-liquid-glass" `
  -Target "<absolute-path-to-theme-source>" -Force

# 3) ensure the theme is listed in the profile bundles
dsh plugin add --profile web dsh-theme-liquid-glass

Refresh the browser.

After modifying code: rebuild, then refresh.
cd <theme-source-dir>
node build.mjs
Client changes (settings UI, glass params) take effect after a build +
browser refresh. Host changes (routes, upload endpoint) require a
dsh web restart to reload the host half.

Build

npm install
npm run build        # one-shot build (lib/index.js + lib/client.js)
npm run watch        # watch mode (works with client-hmr hot-reload)
npm run dev          # build + smoke test
npm test             # run the client smoke test
npm run typecheck    # tsc --noEmit

Client Injection

The client bundle exports an inject array of service names: ['slots','locale','theme'] (matching the shipped dsh-ui-appearance / dsh-dream-skin plugins). The client loader builds the fiber injection table from this array; missing it causes cannot get property X without inject and a hard web-boot failure. The apply() function itself is wrapped in try/catch — runtime errors degrade gracefully without crashing the GUI.


Persistence (Why localStorage)

Settings are stored in localStorage (key dsh-liquid-glass.settings), not through the settings RPC. The harness settings gateway only exposes hard-coded product namespaces to browser clients — a third-party namespace stays loading forever even when the host half registered it. The shipped dsh-ui-appearance and dsh-dream-skin plugins hit the same wall and both chose localStorage.

Trade-off: settings are per-browser — switching browsers or clearing site data loses them.


Settings Reference

FieldDescription
enabledMaster switch
wallpaper.kindnone / url / html / image / video / local
wallpaper.valueWeb URL or relative path under the wallpapers directory
wallpaper.proxyRoute web URLs through the host proxy (bypasses X-Frame-Options)
wallpaper.mutedMute video wallpapers (default true; unmuting may be blocked by autoplay policy)
demo.speedDemo wallpaper animation speed multiplier 0.1–4 (step 0.1)
demo.blobsDemo wallpaper blob count 1–6
demo.colorCycleDemo wallpaper color cycle 0–10 (0 = static)
demo.blurDemo wallpaper blob blur 10–140px
demo.opacityDemo wallpaper blob opacity 0.2–1
demo.washDemo wallpaper background gradient wash toggle
glass.frostedFrost toggle (input card / bubbles / dock backdrop blur)
glass.blurInput card frost blur radius 0–60px
glass.bgBlurBackground wallpaper blur 0–60px (independent of card frost)
glass.refractionEdge refraction 0–1
glass.tintGlass color
glass.tintOpacityGlass color opacity 0–1
glass.toolTextColorTool call text color (hex, empty = default)
glass.codeBlockOpacityCode block background opacity 0.2–1 (independent of tint opacity)
glass.glassBrightnessGlass material brightness 0.2–1.6 (tint lightness scaling; >1 brighter, <1 darker)
glass.brightnessBackground brightness 0.2–1.6

First Launch

On first enable, the plugin checks whether demo.html exists under <DSH_HOME>/wallpapers. If missing, it writes the built-in demo wallpaper (existing files are never overwritten). The default path is $DSH_HOME/wallpapers/demo.html; the directory can be changed via the wallpaperDir config option.


Screenshots

Input card with edge refraction Chat interface with glass bubbles Settings panel


License

MIT

使用前核对

安装步骤、兼容版本与授权范围以原项目当前文档为准。Stars 和评分是快照中的导航信号。

安装与排错 · 项目问题反馈

同类项目