dsh-theme-escook 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,33 @@
1
+ # dsh-theme-escook
2
+
3
+ <p align="center">
4
+ <img src="https://raw.githubusercontent.com/Simon-yyy/dsh-theme-escook/main/assets/logo.svg" width="96" alt="escook-theme logo" />
5
+ </p>
6
+
7
+ <h3 align="center">🌸 Escook Theme for DeepSeek Harness</h3>
8
+
9
+ <p align="center">
10
+ A premium dark violet & amber gold aesthetic theme crafted for DeepSeek Harness Web GUI & Desktop.
11
+ </p>
12
+
13
+ ---
14
+
15
+ ## ✨ Features
16
+
17
+ - 🎨 **Signature Dark Aesthetics**: Faithful port of the beloved VS Code `escook-theme` color palette (`#1f2430` deep night base with `#ffcc66` amber gold accent).
18
+ - 💻 **Syntax Highlighting**: Enhanced code readability with vibrant pastel tones (Pink keywords, Cyan functions, Mint strings, Amber numbers).
19
+ - ⚡ **Full UI Coverage**: Seamlessly styles sidebar, chat bubbles, settings panels, marketplace cards, and scrollbars.
20
+ - 🔄 **Live Hot Toggle**: Instant switch in DSH Market Theme tab without server restart.
21
+
22
+ ---
23
+
24
+ ## 📦 Installation
25
+
26
+ ```bash
27
+ dsh plugin --profile web add dsh-theme-escook
28
+ ```
29
+
30
+ ---
31
+
32
+ ## 📄 License
33
+ MIT License © 2026 Simon-yyy / escook (liulongbin1314)
package/README.zh.md ADDED
@@ -0,0 +1,39 @@
1
+ # dsh-theme-escook
2
+
3
+ <p align="center">
4
+ <img src="https://raw.githubusercontent.com/Simon-yyy/dsh-theme-escook/main/assets/logo.svg" width="96" alt="escook-theme logo" />
5
+ </p>
6
+
7
+ <h3 align="center">🌸 彬哥の经典主题 (escook-theme) for DeepSeek Harness</h3>
8
+
9
+ <p align="center">
10
+ 专为 DeepSeek Harness Web GUI / Desktop 设计的暗夜紫调与琥珀金高亮美学主题。
11
+ </p>
12
+
13
+ ---
14
+
15
+ ## ✨ 主题特性
16
+
17
+ - 🎨 **经典暗色美学**:深度复刻 VS Code 最受喜爱的 `escook-theme` 调色板(深紫暗夜 `#1f2430` 底色 + 标志性琥珀明黄 `#ffcc66` 强调色)。
18
+ - 💻 **极客代码高亮**:粉红关键字、天蓝函数名、薄荷绿字符串与鲜橙常量,高对比度护眼舒适。
19
+ - ⚡ **全组件覆盖**:侧边栏、对话气泡、设置面板、插件市场、弹窗与滚动条均得到原生级深度适配。
20
+ - 🔄 **热插拔切换**:在插件市场“主题”页一键点选切换,无需重启即时生效。
21
+
22
+ ---
23
+
24
+ ## 📦 安装使用
25
+
26
+ ### 方法一:通过 DSH 插件市场安装(推荐)
27
+ 1. 打开 DeepSeek Harness 桌面端 / Web;
28
+ 2. 进入 **设置 → 插件市场 → 主题** 专区;
29
+ 3. 搜索 **`dsh-theme-escook`** 并点击 **安装**,点选即可立即生效!
30
+
31
+ ### 方法二:命令行一键安装
32
+ ```bash
33
+ dsh plugin --profile web add dsh-theme-escook
34
+ ```
35
+
36
+ ---
37
+
38
+ ## 📄 开源许可
39
+ MIT License © 2026 Simon-yyy / escook (liulongbin1314)
@@ -0,0 +1,240 @@
1
+ /**
2
+ * dsh-theme-escook - Client Theme Injector (4 Schemes)
3
+ * 🌸 彬哥の VS Code 完整 4 款经典主题 for DeepSeek Harness
4
+ * 1. escook Dark (经典暗黑)
5
+ * 2. escook Dark Soft (柔和暗黑)
6
+ * 3. escook Light (经典紫韵浅色)
7
+ * 4. escook Light Soft (柔和浅色)
8
+ */
9
+
10
+ export const THEME_SCHEMES = {
11
+ "dark": {
12
+ name: "escook Dark (经典暗黑)",
13
+ type: "dark",
14
+ css: `
15
+ :root, html, body, body[data-ds-dark-theme], [data-theme="escook-dark"] {
16
+ --dsw-alias-bg-base: #252526 !important;
17
+ --dsw-alias-bg-layer-1: #202020 !important;
18
+ --dsw-alias-bg-layer-2: #29292c !important;
19
+ --dsw-alias-bg-mask-1: rgba(0, 0, 0, 0.6) !important;
20
+ --dsw-specific-sidebar-fill: #202020 !important;
21
+ --dsw-specific-sidebar-nav-item-hover: rgba(255, 255, 255, 0.08) !important;
22
+ --dsw-specific-sidebar-nav-item-active: rgba(239, 130, 12, 0.18) !important;
23
+ --dsw-specific-sidebar-nav-item-active-accent: #EF820C !important;
24
+ --dsw-specific-input-major: #29292c !important;
25
+ --dsw-specific-bubble: #29292c !important;
26
+ --dsw-specific-menu: #29292c !important;
27
+ --dsw-hovercard-bg: #29292c !important;
28
+ --dsw-alias-tooltip-bg: #202020 !important;
29
+ --dsw-alias-button-elevated-fill: #29292c !important;
30
+ --dsw-alias-button-floating-hover: #333336 !important;
31
+ --dsw-alias-brand-primary: #EF820C !important;
32
+ --dsw-alias-button-primary-fill: #EF820C !important;
33
+ --dsw-alias-button-primary-hover: #ff9940 !important;
34
+ --dsw-alias-label-primary-foreground: #ffffff !important;
35
+ --dsw-alias-label-primary: #fafafa !important;
36
+ --dsw-alias-label-secondary: #cccccc !important;
37
+ --dsw-alias-label-tertiary: #999999 !important;
38
+ --dsw-alias-label-dimmed: #777777 !important;
39
+ --dsw-alias-label-caption: #888888 !important;
40
+ --dsw-alias-interactive-bg-hover: rgba(255, 255, 255, 0.08) !important;
41
+ --dsw-alias-interactive-bg-active: rgba(255, 255, 255, 0.14) !important;
42
+ --dsw-alias-border-l1: #383838 !important;
43
+ --dsw-alias-border-l2: #2e2e2e !important;
44
+ --dsw-alias-border-l3: #444444 !important;
45
+ --dsw-alias-border-l4: #555555 !important;
46
+ --dsw-alias-markdown-code-block: #1e1e1e !important;
47
+ --dsw-alias-markdown-code-block-banner: #252526 !important;
48
+ --dsw-alias-scrollbar-bg-l2: #383838 !important;
49
+ --dsw-alias-scrollbar-hover-l2: #EF820C !important;
50
+ }
51
+ body, body[data-ds-dark-theme] { background-color: #252526 !important; color: #fafafa !important; }
52
+ pre, code, [class*="codeBlock"] {
53
+ background-color: #1e1e1e !important;
54
+ color: #d4d4d4 !important;
55
+ border-color: #383838 !important;
56
+ }
57
+ `
58
+ },
59
+ "dark-soft": {
60
+ name: "escook Dark Soft (柔和暗黑)",
61
+ type: "dark",
62
+ css: `
63
+ :root, html, body, body[data-ds-dark-theme], [data-theme="escook-dark-soft"] {
64
+ --dsw-alias-bg-base: #1f2430 !important;
65
+ --dsw-alias-bg-layer-1: #191e2a !important;
66
+ --dsw-alias-bg-layer-2: #232834 !important;
67
+ --dsw-alias-bg-mask-1: rgba(15, 18, 26, 0.65) !important;
68
+ --dsw-specific-sidebar-fill: #191e2a !important;
69
+ --dsw-specific-sidebar-nav-item-hover: rgba(255, 204, 102, 0.08) !important;
70
+ --dsw-specific-sidebar-nav-item-active: rgba(255, 204, 102, 0.16) !important;
71
+ --dsw-specific-sidebar-nav-item-active-accent: #ffcc66 !important;
72
+ --dsw-specific-input-major: #232834 !important;
73
+ --dsw-specific-bubble: #232834 !important;
74
+ --dsw-specific-menu: #232834 !important;
75
+ --dsw-hovercard-bg: #232834 !important;
76
+ --dsw-alias-tooltip-bg: #191e2a !important;
77
+ --dsw-alias-button-elevated-fill: #232834 !important;
78
+ --dsw-alias-button-floating-hover: #2b3240 !important;
79
+ --dsw-alias-brand-primary: #ffcc66 !important;
80
+ --dsw-alias-button-primary-fill: #ffcc66 !important;
81
+ --dsw-alias-button-primary-hover: #fac761 !important;
82
+ --dsw-alias-label-primary-foreground: #1f2430 !important;
83
+ --dsw-alias-label-primary: #cbccc6 !important;
84
+ --dsw-alias-label-secondary: #969aa4 !important;
85
+ --dsw-alias-label-tertiary: #707a8c !important;
86
+ --dsw-alias-label-dimmed: #5c6773 !important;
87
+ --dsw-alias-label-caption: #707a8c !important;
88
+ --dsw-alias-interactive-bg-hover: rgba(255, 204, 102, 0.1) !important;
89
+ --dsw-alias-interactive-bg-active: rgba(255, 204, 102, 0.18) !important;
90
+ --dsw-alias-border-l1: #373e4c !important;
91
+ --dsw-alias-border-l2: #2d3443 !important;
92
+ --dsw-alias-border-l3: #4f5869 !important;
93
+ --dsw-alias-border-l4: #636e84 !important;
94
+ --dsw-alias-markdown-code-block: #1a1f29 !important;
95
+ --dsw-alias-markdown-code-block-banner: #232834 !important;
96
+ --dsw-alias-scrollbar-bg-l2: #373e4c !important;
97
+ --dsw-alias-scrollbar-hover-l2: #ffcc66 !important;
98
+ }
99
+ body, body[data-ds-dark-theme] { background-color: #1f2430 !important; color: #cbccc6 !important; }
100
+ pre, code, [class*="codeBlock"] {
101
+ background-color: #1a1f29 !important;
102
+ color: #cbccc6 !important;
103
+ border-color: #2d3443 !important;
104
+ }
105
+ .hljs-keyword, .token.keyword { color: #f28779 !important; font-weight: 600; }
106
+ .hljs-string, .token.string { color: #bae67e !important; }
107
+ .hljs-function, .token.function { color: #73d0ff !important; }
108
+ .hljs-number, .token.number { color: #ff9940 !important; }
109
+ .hljs-comment, .token.comment { color: #5c6773 !important; font-style: italic; }
110
+ `
111
+ },
112
+ "light": {
113
+ name: "escook Light (经典紫韵浅色)",
114
+ type: "light",
115
+ css: `
116
+ :root, html, body, body[data-ds-dark-theme], [data-theme="escook-light"] {
117
+ --dsw-alias-bg-base: #FDF6E3 !important;
118
+ --dsw-alias-bg-layer-1: #F5EEDB !important;
119
+ --dsw-alias-bg-layer-2: #EDE5D0 !important;
120
+ --dsw-alias-bg-mask-1: rgba(88, 70, 50, 0.35) !important;
121
+ --dsw-specific-sidebar-fill: #F5EEDB !important;
122
+ --dsw-specific-sidebar-nav-item-hover: rgba(112, 86, 151, 0.08) !important;
123
+ --dsw-specific-sidebar-nav-item-active: rgba(112, 86, 151, 0.16) !important;
124
+ --dsw-specific-sidebar-nav-item-active-accent: #705697 !important;
125
+ --dsw-specific-input-major: #EDE5D0 !important;
126
+ --dsw-specific-bubble: #EDE5D0 !important;
127
+ --dsw-specific-menu: #FFFFFF !important;
128
+ --dsw-hovercard-bg: #FFFFFF !important;
129
+ --dsw-alias-tooltip-bg: #2B2B2B !important;
130
+ --dsw-alias-button-elevated-fill: #EDE5D0 !important;
131
+ --dsw-alias-button-floating-hover: #e4dcc4 !important;
132
+ --dsw-alias-brand-primary: #705697 !important;
133
+ --dsw-alias-button-primary-fill: #705697 !important;
134
+ --dsw-alias-button-primary-hover: #8a6ab8 !important;
135
+ --dsw-alias-label-primary-foreground: #ffffff !important;
136
+ --dsw-alias-label-primary: #2b2b2b !important;
137
+ --dsw-alias-label-secondary: #4a5c63 !important;
138
+ --dsw-alias-label-tertiary: #657b83 !important;
139
+ --dsw-alias-label-dimmed: #839496 !important;
140
+ --dsw-alias-label-caption: #657b83 !important;
141
+ --dsw-alias-interactive-bg-hover: rgba(112, 86, 151, 0.08) !important;
142
+ --dsw-alias-interactive-bg-active: rgba(112, 86, 151, 0.15) !important;
143
+ --dsw-alias-border-l1: #d3cbb7 !important;
144
+ --dsw-alias-border-l2: #e2dbca !important;
145
+ --dsw-alias-border-l3: #ccc4af !important;
146
+ --dsw-alias-border-l4: #b8af98 !important;
147
+ --dsw-alias-markdown-code-block: #f7f0dc !important;
148
+ --dsw-alias-markdown-code-block-banner: #ede5d0 !important;
149
+ --dsw-alias-scrollbar-bg-l2: #d3cbb7 !important;
150
+ --dsw-alias-scrollbar-hover-l2: #705697 !important;
151
+ }
152
+ body, body[data-ds-dark-theme] { background-color: #FDF6E3 !important; color: #2b2b2b !important; }
153
+ pre, code, [class*="codeBlock"] {
154
+ background-color: #f7f0dc !important;
155
+ color: #2b2b2b !important;
156
+ border-color: #d3cbb7 !important;
157
+ }
158
+ `
159
+ },
160
+ "light-soft": {
161
+ name: "escook Light Soft (柔和浅色)",
162
+ type: "light",
163
+ css: `
164
+ :root, html, body, body[data-ds-dark-theme], [data-theme="escook-light-soft"] {
165
+ --dsw-alias-bg-base: #FAFAFA !important;
166
+ --dsw-alias-bg-layer-1: #F0F0F0 !important;
167
+ --dsw-alias-bg-layer-2: #FFFFFF !important;
168
+ --dsw-alias-bg-mask-1: rgba(0, 0, 0, 0.3) !important;
169
+ --dsw-specific-sidebar-fill: #F0F0F0 !important;
170
+ --dsw-specific-sidebar-nav-item-hover: rgba(255, 153, 64, 0.08) !important;
171
+ --dsw-specific-sidebar-nav-item-active: rgba(255, 153, 64, 0.16) !important;
172
+ --dsw-specific-sidebar-nav-item-active-accent: #ff9940 !important;
173
+ --dsw-specific-input-major: #FFFFFF !important;
174
+ --dsw-specific-bubble: #FFFFFF !important;
175
+ --dsw-specific-menu: #FFFFFF !important;
176
+ --dsw-hovercard-bg: #FFFFFF !important;
177
+ --dsw-alias-tooltip-bg: #1F2937 !important;
178
+ --dsw-alias-button-elevated-fill: #FFFFFF !important;
179
+ --dsw-alias-button-floating-hover: #f5f5f5 !important;
180
+ --dsw-alias-brand-primary: #ff9940 !important;
181
+ --dsw-alias-button-primary-fill: #ff9940 !important;
182
+ --dsw-alias-button-primary-hover: #ffaa5e !important;
183
+ --dsw-alias-label-primary-foreground: #ffffff !important;
184
+ --dsw-alias-label-primary: #1F2937 !important;
185
+ --dsw-alias-label-secondary: #4B5563 !important;
186
+ --dsw-alias-label-tertiary: #6B7280 !important;
187
+ --dsw-alias-label-dimmed: #9CA3AF !important;
188
+ --dsw-alias-label-caption: #6B7280 !important;
189
+ --dsw-alias-interactive-bg-hover: rgba(255, 153, 64, 0.08) !important;
190
+ --dsw-alias-interactive-bg-active: rgba(255, 153, 64, 0.15) !important;
191
+ --dsw-alias-border-l1: #E5E7EB !important;
192
+ --dsw-alias-border-l2: #F3F4F6 !important;
193
+ --dsw-alias-border-l3: #D1D5DB !important;
194
+ --dsw-alias-border-l4: #9CA3AF !important;
195
+ --dsw-alias-markdown-code-block: #f4f4f5 !important;
196
+ --dsw-alias-markdown-code-block-banner: #e5e7eb !important;
197
+ --dsw-alias-scrollbar-bg-l2: #E5E7EB !important;
198
+ --dsw-alias-scrollbar-hover-l2: #ff9940 !important;
199
+ }
200
+ body, body[data-ds-dark-theme] { background-color: #FAFAFA !important; color: #1F2937 !important; }
201
+ pre, code, [class*="codeBlock"] {
202
+ background-color: #f4f4f5 !important;
203
+ color: #1F2937 !important;
204
+ border-color: #E5E7EB !important;
205
+ }
206
+ `
207
+ }
208
+ };
209
+
210
+ export default function activate(context) {
211
+ const styleId = "dsh-theme-escook-styles";
212
+ let styleEl = document.getElementById(styleId);
213
+
214
+ function applyScheme(key) {
215
+ const scheme = THEME_SCHEMES[key] || THEME_SCHEMES["dark-soft"];
216
+ if (!styleEl) {
217
+ styleEl = document.createElement("style");
218
+ styleEl.id = styleId;
219
+ document.head.appendChild(styleEl);
220
+ }
221
+ styleEl.textContent = scheme.css;
222
+ document.documentElement.setAttribute("data-dsh-theme", `escook-${key}`);
223
+ console.log(`🌸 [dsh-theme-escook] 已切换至: ${scheme.name}`);
224
+ }
225
+
226
+ // 默认应用 dark-soft 柔和暗黑方案
227
+ applyScheme("dark-soft");
228
+
229
+ return {
230
+ setScheme(key) {
231
+ applyScheme(key);
232
+ },
233
+ dispose() {
234
+ if (styleEl && styleEl.parentNode) {
235
+ styleEl.parentNode.removeChild(styleEl);
236
+ }
237
+ document.documentElement.removeAttribute("data-dsh-theme");
238
+ }
239
+ };
240
+ }
@@ -0,0 +1,5 @@
1
+ # dsh-theme-escook bundle patch
2
+ # Mount the theme plugin into DeepSeek Harness profile
3
+ - insert:
4
+ - id: dsh-theme-escook
5
+ name: 'dsh-theme-escook'
package/lib/index.js ADDED
@@ -0,0 +1,10 @@
1
+ /**
2
+ * dsh-theme-escook
3
+ * 🌸 彬哥の经典主题 (escook-theme) for DeepSeek Harness
4
+ */
5
+
6
+ export const name = 'dsh-theme-escook';
7
+
8
+ export function apply(ctx) {
9
+ ctx.logger('theme-escook').info('🌸 彬哥主题 (dsh-theme-escook) 已成功加载!');
10
+ }
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "dsh-theme-escook",
3
+ "version": "1.0.0",
4
+ "description": "🌸 彬哥の经典主题 (escook-theme) for DeepSeek Harness — 优雅暗夜紫调与琥珀金高亮美学主题",
5
+ "type": "module",
6
+ "main": "lib/index.js",
7
+ "types": "lib/index.d.ts",
8
+ "author": "Simon-yyy",
9
+ "license": "MIT",
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "https://github.com/Simon-yyy/dsh-theme-escook.git"
13
+ },
14
+ "keywords": [
15
+ "deepseek",
16
+ "harness",
17
+ "dsh",
18
+ "dsh-plugin",
19
+ "theme",
20
+ "escook",
21
+ "escook-theme",
22
+ "dark-theme"
23
+ ],
24
+ "category": "theme",
25
+ "dsh": {
26
+ "bundle": {
27
+ "patch": "./cordis.patch.yml"
28
+ },
29
+ "client": {
30
+ "inject": [
31
+ "@deepseek-ai/dsh-client-ui-theme"
32
+ ],
33
+ "platform": "web",
34
+ "immediately": true
35
+ }
36
+ },
37
+ "files": [
38
+ "lib",
39
+ "client",
40
+ "cordis.patch.yml",
41
+ "README.md",
42
+ "README.zh.md",
43
+ "LICENSE"
44
+ ],
45
+ "publishConfig": {
46
+ "access": "public",
47
+ "registry": "https://registry.npmjs.org/"
48
+ }
49
+ }