dsh-theme-material: Can DSH support switching between eight color schemes with a single click?

Foreword

DSH is a host that runs “everything as a plugin,” and UI themes are naturally the domain of community plugins. The problem is that these plugins usually offer only one dark theme or require editing configuration files for a long time; the task of “wanting to switch and merge to take a look” is light on paper but heavy in practice. dsh-theme-material solves exactly this problem: it packs eight sets of Material/semi-Material color schemes into a single plugin, allowing you to switch by clicking a color card in the settings page. Both light and dark options are available, and no configuration files need to be changed after installation. Below is an introduction to this plugin.

It is maintained by heinrich0505 and is placed under the “Fun Skins” category in the community directory. The directory page is marked with 0 stars, and it is a very new small plugin. It does not extend functionality, nor does it change workflows; it simply hands control of the UI color layer to the user.

What is it?

One-sentence positioning: a skin pack providing eight preset color themes for the DeepSeek Harness Web interface, with several light and dark sets each, switchable in settings.

It solves two problems: first, the default color scheme may not suit everyone’s eye habits; second, the cost of individually adjusting CSS variables is too high, and it is easy to end up with unreadable low-contrast combinations. This plugin turns these two tasks into “one click.”

Eight Themes

The README provides a table listing the base color, accent color, and a description for each. Below is the reproduction; the color values can serve as a reference for selection.

Theme Base Color Accent Color Description
Night Purple Palenight #292D3E #80CBC4 The most famous set of Material, indigo-gray background with cyan-green accent, sidebar and body text share the same color
Deep Blue Ocean #0F111A #80CBC4 Deep blue pressed close to black, status colors are the only things still glowing on the screen
Ink Gray Darker #212121 #80CBC4 Neutral pure gray without any hue, the least eye-catching
Plain White Lighter #FAFAFA #26A69A The only light theme of Material: cold white background, blue-gray text, cyan-green accent
Latte (Milky Coffee) #EFF1F5 #8839EF The light theme of Catppuccin: gray-purple background, purple accent
Moss Green Vitesse #FFFFFF #1C6B48 Nearly pure white minimalist background with a touch of ink green, the lowest saturation in the entire set
Neon Glow Snazzy #FAFBFC #09A1ED Cold white background paired with bright cyan accent
Grayscale GitHub Gray #F0F0F0 #005CC5 Full-screen gray background paired with pure black text, the set mentioned in the README

Among them, “Grayscale GitHub Gray” is the set mentioned by the maintainer in the description as github light gray. Compared to the original author descriptions of the other seven sets, this one is a GitHub Gray version modified based on GitHub Light Gray.

Installation

The README gives two methods. Open “Plugins → Add Plugin” inside the application and enter:

github:heinrich0505/dsh-theme-material

You can also use the command line, adding it directly to the web profile:

dsh plugin --profile web add github:heinrich0505/dsh-theme-material

After installation, refresh the window as prompted for the plugin to take effect.

The declarations in package.json are worth a look first: dsh.engines.dsh is >=0.2.0-rc.1 <0.3.0-0, compatibility.platform is only web, and client.immediately is true. In other words, it only guarantees loading via the plugin mechanism on the Web side; the corresponding version range is DSH 0.2.x RC to before 0.3. If your version is obviously not in this range, confirm compatibility before installing.

Switching Themes

Switching themes does not require commands. Go to Settings → General → Theme, and click a color card. There are three dark themes: Night Purple, Deep Blue, and Ink Gray; when selected, the plugin also switches the “Appearance” to dark. The remaining five light themes will switch back to light. Later, if you manually change “Appearance,” your choice takes precedence, and the plugin no longer takes over.

The selected theme is stored locally in the browser, not on the server. This means people using different browsers on the same machine can each use a set without overwriting each other.

How Colors are Calculated

What is worth seeing in this plugin is not the eight tables, but how it turns such few definitions into a complete set of colors. For each theme, only ten inputs are written in src/skins.mjs: base color, card face, body text, comments, accent color, secondary accent, and sources for several status colors. The colors of the rest of the buttons, input boxes, borders, code blocks, and tooltips are derived by src/derive.mjs based on their usage. What is described in package.json is “a set of token engines deriving 126 --dsw-* color tokens based on appearance.”

During derivation, readability is guaranteed: body text contrast is not less than 7:1, and secondary text and text on buttons is not less than 4.5:1. If the requirement is not met, the color is adjusted towards black or white to the nearest value that satisfies it. npm run verify will output the contrast ratios for each theme, directly marking out any pair that is not clear enough.

Each theme only defines its native side (dark or light); the other side is automatically supplemented: the light version of dark themes uniformly uses Material Lighter, and the dark version of light themes is neutral night color plus this theme’s own accent color. If you want to create your own set, copy any section in src/skins.mjs, change the colors, and then run the verify command above to verify.

Applicability and Notes

Suitable for these two types of people: first, those who want to customize their DSH interface to their habits but don’t want to edit CSS variables every time; second, those who need to compare multiple themes or want to copy its token derivation logic to write their own themes. Its skins.mjs + derive.mjs + verify chain can be used directly as a reference implementation.

A few points must be clear:

  1. The plugin works with the permissions of the current DSH process at runtime. You should check the source code (especially its patch to cordis.patch.yml and the client loading declaration) before deciding whether to enable it.
  2. The license is MIT, and the source code can be viewed and modified freely.
  3. It only handles color schemes and does not provide functional extensions. Expecting “DSH becomes stronger after installing the plugin” is inappropriate.
  4. Version 0.4.2, 0 stars, belongs to a small project just starting out. Have expectations regarding the update window and technical dependencies.

Conclusion

It is appropriate to view it as a clean color layer: eight themes, both light and dark, switchable with one click. At the same time, its built-in token derivation and contrast verification make the cost of “creating another set yourself” very low. The directory page is at https://www.skillhub.cn/plugins/heinrich0505/dsh-theme-material, and the source code is at https://github.com/heinrich0505/dsh-theme-material.

It should be noted that this directory site is a community site with no official affiliation to DeepSeek/Fangfang; it is not an app store.

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye