dsh-theme-escook 1.0.0 → 1.0.1
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/LICENSE +21 -0
- package/README.md +4 -0
- package/README.zh.md +6 -0
- package/assets/preview.png +0 -0
- package/client/client.js +220 -123
- package/client/palette.js +59 -0
- package/lib/index.d.ts +18 -0
- package/package.json +5 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Simon-yyy
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
A premium dark violet & amber gold aesthetic theme crafted for DeepSeek Harness Web GUI & Desktop.
|
|
11
11
|
</p>
|
|
12
12
|
|
|
13
|
+
<p align="center">
|
|
14
|
+
<img src="https://raw.githubusercontent.com/Simon-yyy/dsh-theme-escook/main/assets/preview.png" alt="escook-theme 4-in-1 preview" width="100%" />
|
|
15
|
+
</p>
|
|
16
|
+
|
|
13
17
|
---
|
|
14
18
|
|
|
15
19
|
## ✨ Features
|
package/README.zh.md
CHANGED
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
专为 DeepSeek Harness Web GUI / Desktop 设计的暗夜紫调与琥珀金高亮美学主题。
|
|
11
11
|
</p>
|
|
12
12
|
|
|
13
|
+
<p align="center">
|
|
14
|
+
<img src="https://raw.githubusercontent.com/Simon-yyy/dsh-theme-escook/main/assets/preview.png" alt="escook-theme 4 合 1 真实效果预览" width="100%" />
|
|
15
|
+
</p>
|
|
16
|
+
|
|
13
17
|
---
|
|
14
18
|
|
|
15
19
|
## ✨ 主题特性
|
|
@@ -23,6 +27,8 @@
|
|
|
23
27
|
|
|
24
28
|
## 📦 安装使用
|
|
25
29
|
|
|
30
|
+
> 💡 **桌面端用户提示**:如果您使用的是 **DSH Desktop 桌面客户端**,客户端内核已原生内置本系列主题,开箱即用,无需在此重复安装。
|
|
31
|
+
|
|
26
32
|
### 方法一:通过 DSH 插件市场安装(推荐)
|
|
27
33
|
1. 打开 DeepSeek Harness 桌面端 / Web;
|
|
28
34
|
2. 进入 **设置 → 插件市场 → 主题** 专区;
|
|
Binary file
|
package/client/client.js
CHANGED
|
@@ -1,240 +1,337 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
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 (柔和浅色)
|
|
2
|
+
* Escook Theme Client Plugin for DSH (Redesigned Edition)
|
|
8
3
|
*/
|
|
9
4
|
|
|
10
5
|
export const THEME_SCHEMES = {
|
|
11
6
|
"dark": {
|
|
12
|
-
name: "escook Dark (经典暗黑)",
|
|
7
|
+
name: "escook Dark (经典暗黑 · 标志暖阳橙)",
|
|
8
|
+
desc: "VS Code 彬哥经典暖调极客深灰搭配标志暖阳橙,正统耐看长效护眼",
|
|
13
9
|
type: "dark",
|
|
10
|
+
colorPreview: "#ef820c",
|
|
11
|
+
bgPreview: "#252526",
|
|
14
12
|
css: `
|
|
15
13
|
:root, html, body, body[data-ds-dark-theme], [data-theme="escook-dark"] {
|
|
16
14
|
--dsw-alias-bg-base: #252526 !important;
|
|
17
|
-
--dsw-alias-bg-layer-1: #
|
|
15
|
+
--dsw-alias-bg-layer-1: #202021 !important;
|
|
18
16
|
--dsw-alias-bg-layer-2: #29292c !important;
|
|
19
|
-
--dsw-alias-bg-
|
|
20
|
-
--dsw-
|
|
21
|
-
--dsw-
|
|
22
|
-
--dsw-
|
|
23
|
-
--dsw-specific-
|
|
17
|
+
--dsw-alias-bg-layer-3: #2d2d30 !important;
|
|
18
|
+
--dsw-alias-bg-module-platform: #2d2d30 !important;
|
|
19
|
+
--dsw-alias-bg-multi-select: #2d2d30 !important;
|
|
20
|
+
--dsw-alias-bg-overlay: #333333 !important;
|
|
21
|
+
--dsw-specific-selector: #2d2d30 !important;
|
|
22
|
+
--dsw-alias-bg-mask-1: rgba(18, 18, 20, 0.75) !important;
|
|
23
|
+
--dsw-specific-sidebar-fill: #202021 !important;
|
|
24
|
+
--dsw-specific-sidebar-nav-item-hover: rgba(239, 130, 12, 0.1) !important;
|
|
25
|
+
--dsw-specific-sidebar-nav-item-active: rgba(239, 130, 12, 0.2) !important;
|
|
26
|
+
--dsw-specific-sidebar-nav-item-active-accent: #ef820c !important;
|
|
24
27
|
--dsw-specific-input-major: #29292c !important;
|
|
25
28
|
--dsw-specific-bubble: #29292c !important;
|
|
26
|
-
--dsw-specific-menu: #
|
|
29
|
+
--dsw-specific-menu: #202021 !important;
|
|
27
30
|
--dsw-hovercard-bg: #29292c !important;
|
|
28
|
-
--dsw-alias-tooltip-bg: #
|
|
29
|
-
--dsw-alias-button-elevated-fill: #
|
|
30
|
-
--dsw-alias-button-floating-hover: #
|
|
31
|
-
--dsw-alias-brand-primary: #
|
|
32
|
-
--dsw-alias-button-primary-fill: #
|
|
31
|
+
--dsw-alias-tooltip-bg: #1c1c1d !important;
|
|
32
|
+
--dsw-alias-button-elevated-fill: #2f2f33 !important;
|
|
33
|
+
--dsw-alias-button-floating-hover: #38383c !important;
|
|
34
|
+
--dsw-alias-brand-primary: #ef820c !important;
|
|
35
|
+
--dsw-alias-button-primary-fill: #ef820c !important;
|
|
33
36
|
--dsw-alias-button-primary-hover: #ff9940 !important;
|
|
34
37
|
--dsw-alias-label-primary-foreground: #ffffff !important;
|
|
35
38
|
--dsw-alias-label-primary: #fafafa !important;
|
|
36
39
|
--dsw-alias-label-secondary: #cccccc !important;
|
|
37
|
-
--dsw-alias-label-tertiary: #
|
|
38
|
-
--dsw-alias-label-dimmed: #
|
|
40
|
+
--dsw-alias-label-tertiary: #888888 !important;
|
|
41
|
+
--dsw-alias-label-dimmed: #555555 !important;
|
|
39
42
|
--dsw-alias-label-caption: #888888 !important;
|
|
40
|
-
--dsw-alias-interactive-bg-hover: rgba(
|
|
41
|
-
--dsw-alias-interactive-bg-active: rgba(
|
|
42
|
-
--dsw-alias-border-l1: #
|
|
43
|
-
--dsw-alias-border-l2: #
|
|
44
|
-
--dsw-alias-border-l3: #
|
|
43
|
+
--dsw-alias-interactive-bg-hover: rgba(239, 130, 12, 0.1) !important;
|
|
44
|
+
--dsw-alias-interactive-bg-active: rgba(239, 130, 12, 0.2) !important;
|
|
45
|
+
--dsw-alias-border-l1: #333333 !important;
|
|
46
|
+
--dsw-alias-border-l2: #2a2a2a !important;
|
|
47
|
+
--dsw-alias-border-l3: #3e3e3e !important;
|
|
45
48
|
--dsw-alias-border-l4: #555555 !important;
|
|
46
|
-
--dsw-alias-markdown-code-block: #
|
|
49
|
+
--dsw-alias-markdown-code-block: #1c1c1d !important;
|
|
47
50
|
--dsw-alias-markdown-code-block-banner: #252526 !important;
|
|
48
|
-
--dsw-alias-scrollbar-bg-l2: #
|
|
49
|
-
--dsw-alias-scrollbar-hover-l2: #
|
|
51
|
+
--dsw-alias-scrollbar-bg-l2: #333333 !important;
|
|
52
|
+
--dsw-alias-scrollbar-hover-l2: #ef820c !important;
|
|
50
53
|
}
|
|
51
54
|
body, body[data-ds-dark-theme] { background-color: #252526 !important; color: #fafafa !important; }
|
|
52
55
|
pre, code, [class*="codeBlock"] {
|
|
53
|
-
background-color: #
|
|
54
|
-
color: #
|
|
55
|
-
border-color: #
|
|
56
|
+
background-color: #1c1c1d !important;
|
|
57
|
+
color: #fafafa !important;
|
|
58
|
+
border-color: #333333 !important;
|
|
59
|
+
}
|
|
60
|
+
[class*="selector"], [class*="themeCube"] {
|
|
61
|
+
color: #fafafa !important;
|
|
62
|
+
background-color: #2d2d30 !important;
|
|
63
|
+
}
|
|
64
|
+
[class*="selected"], [class*="themeCube"]:hover {
|
|
65
|
+
border-color: #ef820c !important;
|
|
56
66
|
}
|
|
57
67
|
`
|
|
58
68
|
},
|
|
59
69
|
"dark-soft": {
|
|
60
|
-
name: "escook Dark Soft (柔和暗黑)",
|
|
70
|
+
name: "escook Dark Soft (柔和暗黑 · 柔光奶杏黄)",
|
|
71
|
+
desc: "Ayu 经典深海蓝灰底色搭配温润奶杏黄,细腻柔和长效防疲劳",
|
|
61
72
|
type: "dark",
|
|
73
|
+
colorPreview: "#ffcc66",
|
|
74
|
+
bgPreview: "#1f2430",
|
|
62
75
|
css: `
|
|
63
76
|
:root, html, body, body[data-ds-dark-theme], [data-theme="escook-dark-soft"] {
|
|
64
77
|
--dsw-alias-bg-base: #1f2430 !important;
|
|
65
|
-
--dsw-alias-bg-layer-1: #
|
|
78
|
+
--dsw-alias-bg-layer-1: #191e28 !important;
|
|
66
79
|
--dsw-alias-bg-layer-2: #232834 !important;
|
|
67
|
-
--dsw-alias-bg-
|
|
68
|
-
--dsw-
|
|
69
|
-
--dsw-
|
|
70
|
-
--dsw-
|
|
80
|
+
--dsw-alias-bg-layer-3: #262c3b !important;
|
|
81
|
+
--dsw-alias-bg-module-platform: #262c3b !important;
|
|
82
|
+
--dsw-alias-bg-multi-select: #262c3b !important;
|
|
83
|
+
--dsw-alias-bg-overlay: #333a4c !important;
|
|
84
|
+
--dsw-specific-selector: #262c3b !important;
|
|
85
|
+
--dsw-alias-bg-mask-1: rgba(16, 20, 28, 0.7) !important;
|
|
86
|
+
--dsw-specific-sidebar-fill: #191e28 !important;
|
|
87
|
+
--dsw-specific-sidebar-nav-item-hover: rgba(255, 204, 102, 0.1) !important;
|
|
88
|
+
--dsw-specific-sidebar-nav-item-active: rgba(255, 204, 102, 0.18) !important;
|
|
71
89
|
--dsw-specific-sidebar-nav-item-active-accent: #ffcc66 !important;
|
|
72
90
|
--dsw-specific-input-major: #232834 !important;
|
|
73
91
|
--dsw-specific-bubble: #232834 !important;
|
|
74
|
-
--dsw-specific-menu: #
|
|
75
|
-
--dsw-hovercard-bg: #
|
|
76
|
-
--dsw-alias-tooltip-bg: #
|
|
77
|
-
--dsw-alias-button-elevated-fill: #
|
|
78
|
-
--dsw-alias-button-floating-hover: #
|
|
92
|
+
--dsw-specific-menu: #191e28 !important;
|
|
93
|
+
--dsw-hovercard-bg: #191e28 !important;
|
|
94
|
+
--dsw-alias-tooltip-bg: #171b24 !important;
|
|
95
|
+
--dsw-alias-button-elevated-fill: #2b3140 !important;
|
|
96
|
+
--dsw-alias-button-floating-hover: #333a4c !important;
|
|
79
97
|
--dsw-alias-brand-primary: #ffcc66 !important;
|
|
80
98
|
--dsw-alias-button-primary-fill: #ffcc66 !important;
|
|
81
|
-
--dsw-alias-button-primary-hover: #
|
|
99
|
+
--dsw-alias-button-primary-hover: #ffd580 !important;
|
|
82
100
|
--dsw-alias-label-primary-foreground: #1f2430 !important;
|
|
83
101
|
--dsw-alias-label-primary: #cbccc6 !important;
|
|
84
102
|
--dsw-alias-label-secondary: #969aa4 !important;
|
|
85
103
|
--dsw-alias-label-tertiary: #707a8c !important;
|
|
86
|
-
--dsw-alias-label-dimmed: #
|
|
104
|
+
--dsw-alias-label-dimmed: #515764 !important;
|
|
87
105
|
--dsw-alias-label-caption: #707a8c !important;
|
|
88
106
|
--dsw-alias-interactive-bg-hover: rgba(255, 204, 102, 0.1) !important;
|
|
89
107
|
--dsw-alias-interactive-bg-active: rgba(255, 204, 102, 0.18) !important;
|
|
90
108
|
--dsw-alias-border-l1: #373e4c !important;
|
|
91
|
-
--dsw-alias-border-l2: #
|
|
92
|
-
--dsw-alias-border-l3: #
|
|
93
|
-
--dsw-alias-border-l4: #
|
|
94
|
-
--dsw-alias-markdown-code-block: #
|
|
95
|
-
--dsw-alias-markdown-code-block-banner: #
|
|
109
|
+
--dsw-alias-border-l2: #2d3340 !important;
|
|
110
|
+
--dsw-alias-border-l3: #444c5e !important;
|
|
111
|
+
--dsw-alias-border-l4: #515764 !important;
|
|
112
|
+
--dsw-alias-markdown-code-block: #171b24 !important;
|
|
113
|
+
--dsw-alias-markdown-code-block-banner: #1f2430 !important;
|
|
96
114
|
--dsw-alias-scrollbar-bg-l2: #373e4c !important;
|
|
97
115
|
--dsw-alias-scrollbar-hover-l2: #ffcc66 !important;
|
|
98
116
|
}
|
|
99
117
|
body, body[data-ds-dark-theme] { background-color: #1f2430 !important; color: #cbccc6 !important; }
|
|
100
118
|
pre, code, [class*="codeBlock"] {
|
|
101
|
-
background-color: #
|
|
119
|
+
background-color: #171b24 !important;
|
|
102
120
|
color: #cbccc6 !important;
|
|
103
|
-
border-color: #
|
|
121
|
+
border-color: #373e4c !important;
|
|
122
|
+
}
|
|
123
|
+
[class*="selector"], [class*="themeCube"] {
|
|
124
|
+
color: #cbccc6 !important;
|
|
125
|
+
background-color: #262c3b !important;
|
|
126
|
+
}
|
|
127
|
+
[class*="selected"], [class*="themeCube"]:hover {
|
|
128
|
+
border-color: #ffcc66 !important;
|
|
104
129
|
}
|
|
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
130
|
`
|
|
111
131
|
},
|
|
112
132
|
"light": {
|
|
113
|
-
name: "escook Light (
|
|
133
|
+
name: "escook Light (经典浅色 · 典雅紫罗兰)",
|
|
134
|
+
desc: "Solarized 经典护眼暖米白搭配典雅紫罗兰与青墨文本,温润纸质书卷感",
|
|
114
135
|
type: "light",
|
|
136
|
+
colorPreview: "#705697",
|
|
137
|
+
bgPreview: "#fdf6e3",
|
|
115
138
|
css: `
|
|
116
139
|
:root, html, body, body[data-ds-dark-theme], [data-theme="escook-light"] {
|
|
117
|
-
--dsw-alias-bg-base: #
|
|
118
|
-
--dsw-alias-bg-layer-1: #
|
|
119
|
-
--dsw-alias-bg-layer-2: #
|
|
120
|
-
--dsw-alias-bg-
|
|
121
|
-
--dsw-
|
|
140
|
+
--dsw-alias-bg-base: #fdf6e3 !important;
|
|
141
|
+
--dsw-alias-bg-layer-1: #f8f0d8 !important;
|
|
142
|
+
--dsw-alias-bg-layer-2: #ffffff !important;
|
|
143
|
+
--dsw-alias-bg-layer-3: #eee8d5 !important;
|
|
144
|
+
--dsw-alias-bg-module-platform: #eee8d5 !important;
|
|
145
|
+
--dsw-alias-bg-multi-select: #eee8d5 !important;
|
|
146
|
+
--dsw-alias-bg-overlay: #e3dac6 !important;
|
|
147
|
+
--dsw-specific-selector: #eee8d5 !important;
|
|
148
|
+
--dsw-alias-bg-mask-1: rgba(50, 40, 60, 0.25) !important;
|
|
149
|
+
--dsw-specific-sidebar-fill: #f8f0d8 !important;
|
|
122
150
|
--dsw-specific-sidebar-nav-item-hover: rgba(112, 86, 151, 0.08) !important;
|
|
123
151
|
--dsw-specific-sidebar-nav-item-active: rgba(112, 86, 151, 0.16) !important;
|
|
124
152
|
--dsw-specific-sidebar-nav-item-active-accent: #705697 !important;
|
|
125
|
-
--dsw-specific-input-major: #
|
|
126
|
-
--dsw-specific-bubble: #
|
|
127
|
-
--dsw-specific-menu: #
|
|
128
|
-
--dsw-hovercard-bg: #
|
|
129
|
-
--dsw-alias-tooltip-bg: #
|
|
130
|
-
--dsw-alias-button-elevated-fill: #
|
|
131
|
-
--dsw-alias-button-floating-hover: #
|
|
153
|
+
--dsw-specific-input-major: #ffffff !important;
|
|
154
|
+
--dsw-specific-bubble: #ffffff !important;
|
|
155
|
+
--dsw-specific-menu: #ffffff !important;
|
|
156
|
+
--dsw-hovercard-bg: #ffffff !important;
|
|
157
|
+
--dsw-alias-tooltip-bg: #2b2638 !important;
|
|
158
|
+
--dsw-alias-button-elevated-fill: #f4ecce !important;
|
|
159
|
+
--dsw-alias-button-floating-hover: #ece2c4 !important;
|
|
132
160
|
--dsw-alias-brand-primary: #705697 !important;
|
|
133
161
|
--dsw-alias-button-primary-fill: #705697 !important;
|
|
134
|
-
--dsw-alias-button-primary-hover: #
|
|
162
|
+
--dsw-alias-button-primary-hover: #876cad !important;
|
|
135
163
|
--dsw-alias-label-primary-foreground: #ffffff !important;
|
|
136
|
-
--dsw-alias-label-primary: #
|
|
137
|
-
--dsw-alias-label-secondary: #
|
|
138
|
-
--dsw-alias-label-tertiary: #
|
|
139
|
-
--dsw-alias-label-dimmed: #
|
|
140
|
-
--dsw-alias-label-caption: #
|
|
164
|
+
--dsw-alias-label-primary: #586e75 !important;
|
|
165
|
+
--dsw-alias-label-secondary: #657b83 !important;
|
|
166
|
+
--dsw-alias-label-tertiary: #93a1a1 !important;
|
|
167
|
+
--dsw-alias-label-dimmed: #b58900 !important;
|
|
168
|
+
--dsw-alias-label-caption: #93a1a1 !important;
|
|
141
169
|
--dsw-alias-interactive-bg-hover: rgba(112, 86, 151, 0.08) !important;
|
|
142
170
|
--dsw-alias-interactive-bg-active: rgba(112, 86, 151, 0.15) !important;
|
|
143
|
-
--dsw-alias-border-l1: #
|
|
144
|
-
--dsw-alias-border-l2: #
|
|
145
|
-
--dsw-alias-border-l3: #
|
|
146
|
-
--dsw-alias-border-l4: #
|
|
147
|
-
--dsw-alias-markdown-code-block: #
|
|
148
|
-
--dsw-alias-markdown-code-block-banner: #
|
|
149
|
-
--dsw-alias-scrollbar-bg-l2: #
|
|
171
|
+
--dsw-alias-border-l1: #e3dac6 !important;
|
|
172
|
+
--dsw-alias-border-l2: #ece3cf !important;
|
|
173
|
+
--dsw-alias-border-l3: #d8ceb8 !important;
|
|
174
|
+
--dsw-alias-border-l4: #b58900 !important;
|
|
175
|
+
--dsw-alias-markdown-code-block: #f5eed8 !important;
|
|
176
|
+
--dsw-alias-markdown-code-block-banner: #ebe4cc !important;
|
|
177
|
+
--dsw-alias-scrollbar-bg-l2: #e3dac6 !important;
|
|
150
178
|
--dsw-alias-scrollbar-hover-l2: #705697 !important;
|
|
151
179
|
}
|
|
152
|
-
body, body[data-ds-dark-theme] { background-color: #
|
|
180
|
+
body, body[data-ds-dark-theme] { background-color: #fdf6e3 !important; color: #586e75 !important; }
|
|
153
181
|
pre, code, [class*="codeBlock"] {
|
|
154
|
-
background-color: #
|
|
155
|
-
color: #
|
|
156
|
-
border-color: #
|
|
182
|
+
background-color: #f5eed8 !important;
|
|
183
|
+
color: #586e75 !important;
|
|
184
|
+
border-color: #e3dac6 !important;
|
|
185
|
+
}
|
|
186
|
+
[class*="selector"], [class*="themeCube"] {
|
|
187
|
+
color: #586e75 !important;
|
|
188
|
+
background-color: #eee8d5 !important;
|
|
189
|
+
}
|
|
190
|
+
[class*="selected"], [class*="themeCube"]:hover {
|
|
191
|
+
border-color: #705697 !important;
|
|
157
192
|
}
|
|
158
193
|
`
|
|
159
194
|
},
|
|
160
195
|
"light-soft": {
|
|
161
|
-
name: "escook Light Soft (柔和浅色)",
|
|
196
|
+
name: "escook Light Soft (柔和浅色 · 活力柔和橙)",
|
|
197
|
+
desc: "现代极简清透浅灰搭配柔和活力橙,明亮清爽不刺眼",
|
|
162
198
|
type: "light",
|
|
199
|
+
colorPreview: "#ff9940",
|
|
200
|
+
bgPreview: "#fafafa",
|
|
163
201
|
css: `
|
|
164
202
|
:root, html, body, body[data-ds-dark-theme], [data-theme="escook-light-soft"] {
|
|
165
|
-
--dsw-alias-bg-base: #
|
|
166
|
-
--dsw-alias-bg-layer-1: #
|
|
167
|
-
--dsw-alias-bg-layer-2: #
|
|
168
|
-
--dsw-alias-bg-
|
|
169
|
-
--dsw-
|
|
203
|
+
--dsw-alias-bg-base: #fafafa !important;
|
|
204
|
+
--dsw-alias-bg-layer-1: #f2f2f2 !important;
|
|
205
|
+
--dsw-alias-bg-layer-2: #ffffff !important;
|
|
206
|
+
--dsw-alias-bg-layer-3: #e8e8e8 !important;
|
|
207
|
+
--dsw-alias-bg-module-platform: #e8e8e8 !important;
|
|
208
|
+
--dsw-alias-bg-multi-select: #e8e8e8 !important;
|
|
209
|
+
--dsw-alias-bg-overlay: #dcdcdc !important;
|
|
210
|
+
--dsw-specific-selector: #e8e8e8 !important;
|
|
211
|
+
--dsw-alias-bg-mask-1: rgba(0, 0, 0, 0.2) !important;
|
|
212
|
+
--dsw-specific-sidebar-fill: #f2f2f2 !important;
|
|
170
213
|
--dsw-specific-sidebar-nav-item-hover: rgba(255, 153, 64, 0.08) !important;
|
|
171
214
|
--dsw-specific-sidebar-nav-item-active: rgba(255, 153, 64, 0.16) !important;
|
|
172
215
|
--dsw-specific-sidebar-nav-item-active-accent: #ff9940 !important;
|
|
173
|
-
--dsw-specific-input-major: #
|
|
174
|
-
--dsw-specific-bubble: #
|
|
175
|
-
--dsw-specific-menu: #
|
|
176
|
-
--dsw-hovercard-bg: #
|
|
177
|
-
--dsw-alias-tooltip-bg: #
|
|
178
|
-
--dsw-alias-button-elevated-fill: #
|
|
179
|
-
--dsw-alias-button-floating-hover: #
|
|
216
|
+
--dsw-specific-input-major: #ffffff !important;
|
|
217
|
+
--dsw-specific-bubble: #ffffff !important;
|
|
218
|
+
--dsw-specific-menu: #ffffff !important;
|
|
219
|
+
--dsw-hovercard-bg: #ffffff !important;
|
|
220
|
+
--dsw-alias-tooltip-bg: #2d3748 !important;
|
|
221
|
+
--dsw-alias-button-elevated-fill: #eaeaea !important;
|
|
222
|
+
--dsw-alias-button-floating-hover: #e0e0e0 !important;
|
|
180
223
|
--dsw-alias-brand-primary: #ff9940 !important;
|
|
181
224
|
--dsw-alias-button-primary-fill: #ff9940 !important;
|
|
182
|
-
--dsw-alias-button-primary-hover: #
|
|
225
|
+
--dsw-alias-button-primary-hover: #f58220 !important;
|
|
183
226
|
--dsw-alias-label-primary-foreground: #ffffff !important;
|
|
184
|
-
--dsw-alias-label-primary: #
|
|
185
|
-
--dsw-alias-label-secondary: #
|
|
186
|
-
--dsw-alias-label-tertiary: #
|
|
187
|
-
--dsw-alias-label-dimmed: #
|
|
188
|
-
--dsw-alias-label-caption: #
|
|
227
|
+
--dsw-alias-label-primary: #2d3748 !important;
|
|
228
|
+
--dsw-alias-label-secondary: #4a5568 !important;
|
|
229
|
+
--dsw-alias-label-tertiary: #718096 !important;
|
|
230
|
+
--dsw-alias-label-dimmed: #a0aec0 !important;
|
|
231
|
+
--dsw-alias-label-caption: #718096 !important;
|
|
189
232
|
--dsw-alias-interactive-bg-hover: rgba(255, 153, 64, 0.08) !important;
|
|
190
233
|
--dsw-alias-interactive-bg-active: rgba(255, 153, 64, 0.15) !important;
|
|
191
|
-
--dsw-alias-border-l1: #
|
|
192
|
-
--dsw-alias-border-l2: #
|
|
193
|
-
--dsw-alias-border-l3: #
|
|
194
|
-
--dsw-alias-border-l4: #
|
|
195
|
-
--dsw-alias-markdown-code-block: #
|
|
196
|
-
--dsw-alias-markdown-code-block-banner: #
|
|
197
|
-
--dsw-alias-scrollbar-bg-l2: #
|
|
234
|
+
--dsw-alias-border-l1: #dcdcdc !important;
|
|
235
|
+
--dsw-alias-border-l2: #e8e8e8 !important;
|
|
236
|
+
--dsw-alias-border-l3: #d0d0d0 !important;
|
|
237
|
+
--dsw-alias-border-l4: #a0aec0 !important;
|
|
238
|
+
--dsw-alias-markdown-code-block: #f0f2f5 !important;
|
|
239
|
+
--dsw-alias-markdown-code-block-banner: #e6e9ee !important;
|
|
240
|
+
--dsw-alias-scrollbar-bg-l2: #dcdcdc !important;
|
|
198
241
|
--dsw-alias-scrollbar-hover-l2: #ff9940 !important;
|
|
199
242
|
}
|
|
200
|
-
body, body[data-ds-dark-theme] { background-color: #
|
|
243
|
+
body, body[data-ds-dark-theme] { background-color: #fafafa !important; color: #2d3748 !important; }
|
|
201
244
|
pre, code, [class*="codeBlock"] {
|
|
202
|
-
background-color: #
|
|
203
|
-
color: #
|
|
204
|
-
border-color: #
|
|
245
|
+
background-color: #f0f2f5 !important;
|
|
246
|
+
color: #2d3748 !important;
|
|
247
|
+
border-color: #dcdcdc !important;
|
|
248
|
+
}
|
|
249
|
+
[class*="selector"], [class*="themeCube"] {
|
|
250
|
+
color: #2d3748 !important;
|
|
251
|
+
background-color: #e8e8e8 !important;
|
|
252
|
+
}
|
|
253
|
+
[class*="selected"], [class*="themeCube"]:hover {
|
|
254
|
+
border-color: #ff9940 !important;
|
|
205
255
|
}
|
|
206
256
|
`
|
|
207
257
|
}
|
|
208
258
|
};
|
|
209
259
|
|
|
210
260
|
export default function activate(context) {
|
|
261
|
+
// 环境感知与防冲突协同:若宿主环境为 DSH Desktop 客户端且已原生内置主题,自动注册最新主题并委派托管
|
|
262
|
+
if (typeof window !== "undefined" && window.__DSH_BUILTIN_THEMES__) {
|
|
263
|
+
console.info("🌸 [dsh-theme-escook] 检测到当前处于 DSH Desktop 桌面端,正在将插件最新主题矩阵热同步至客户端...");
|
|
264
|
+
const builtin = window.__DSH_BUILTIN_THEMES__;
|
|
265
|
+
if (typeof builtin.registerThemes === "function") {
|
|
266
|
+
builtin.registerThemes(THEME_SCHEMES);
|
|
267
|
+
}
|
|
268
|
+
const themeController = {
|
|
269
|
+
schemes: Object.keys(THEME_SCHEMES),
|
|
270
|
+
setScheme(key) {
|
|
271
|
+
builtin.apply(key);
|
|
272
|
+
},
|
|
273
|
+
getCurrentScheme() {
|
|
274
|
+
return builtin.getCurrent();
|
|
275
|
+
},
|
|
276
|
+
dispose() {
|
|
277
|
+
// 由桌面端原生管理生命周期
|
|
278
|
+
}
|
|
279
|
+
};
|
|
280
|
+
window.__ESCOOK_THEME__ = themeController;
|
|
281
|
+
return themeController;
|
|
282
|
+
}
|
|
283
|
+
|
|
211
284
|
const styleId = "dsh-theme-escook-styles";
|
|
285
|
+
const storageKey = "dsh_theme_escook_scheme";
|
|
212
286
|
let styleEl = document.getElementById(styleId);
|
|
213
287
|
|
|
214
288
|
function applyScheme(key) {
|
|
215
|
-
const
|
|
289
|
+
const validKey = THEME_SCHEMES[key] ? key : "dark-soft";
|
|
290
|
+
const scheme = THEME_SCHEMES[validKey];
|
|
291
|
+
|
|
216
292
|
if (!styleEl) {
|
|
217
293
|
styleEl = document.createElement("style");
|
|
218
294
|
styleEl.id = styleId;
|
|
219
295
|
document.head.appendChild(styleEl);
|
|
220
296
|
}
|
|
221
297
|
styleEl.textContent = scheme.css;
|
|
222
|
-
document.documentElement.setAttribute("data-dsh-theme", `escook-${
|
|
223
|
-
|
|
298
|
+
document.documentElement.setAttribute("data-dsh-theme", `escook-${validKey}`);
|
|
299
|
+
try {
|
|
300
|
+
localStorage.setItem(storageKey, validKey);
|
|
301
|
+
} catch (e) {}
|
|
302
|
+
console.info(`🌸 [dsh-theme-escook] 当前激活配色: ${scheme.name}`);
|
|
224
303
|
}
|
|
225
304
|
|
|
226
|
-
|
|
227
|
-
|
|
305
|
+
let savedScheme = "dark-soft";
|
|
306
|
+
try {
|
|
307
|
+
savedScheme = localStorage.getItem(storageKey) || localStorage.getItem("dsh_selected_theme") || "dark-soft";
|
|
308
|
+
} catch (e) {}
|
|
309
|
+
|
|
310
|
+
applyScheme(savedScheme);
|
|
228
311
|
|
|
229
|
-
|
|
312
|
+
const themeController = {
|
|
313
|
+
schemes: Object.keys(THEME_SCHEMES),
|
|
230
314
|
setScheme(key) {
|
|
231
315
|
applyScheme(key);
|
|
232
316
|
},
|
|
317
|
+
getCurrentScheme() {
|
|
318
|
+
try {
|
|
319
|
+
return localStorage.getItem(storageKey) || "dark-soft";
|
|
320
|
+
} catch (e) {
|
|
321
|
+
return "dark-soft";
|
|
322
|
+
}
|
|
323
|
+
},
|
|
233
324
|
dispose() {
|
|
234
325
|
if (styleEl && styleEl.parentNode) {
|
|
235
326
|
styleEl.parentNode.removeChild(styleEl);
|
|
236
327
|
}
|
|
237
328
|
document.documentElement.removeAttribute("data-dsh-theme");
|
|
329
|
+
if (window.__ESCOOK_THEME__ === themeController) {
|
|
330
|
+
delete window.__ESCOOK_THEME__;
|
|
331
|
+
}
|
|
238
332
|
}
|
|
239
333
|
};
|
|
334
|
+
|
|
335
|
+
window.__ESCOOK_THEME__ = themeController;
|
|
336
|
+
return themeController;
|
|
240
337
|
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Escook Theme Color Palettes Definition (Redesigned & Modernized)
|
|
3
|
+
* 100% 对齐 codex-desktop 与官方正统 escook-theme 调色哲学
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export const PALETTES = {
|
|
7
|
+
dark: {
|
|
8
|
+
name: "escook Dark (经典暗黑)",
|
|
9
|
+
desc: "VS Code 彬哥经典暖调极客深灰搭配标志暖阳橙,正统耐看长效护眼",
|
|
10
|
+
type: "dark",
|
|
11
|
+
bgBase: "#252526",
|
|
12
|
+
bgSidebar: "#202021",
|
|
13
|
+
bgSurface: "#29292c",
|
|
14
|
+
accent: "#ef820c",
|
|
15
|
+
accentHover: "#ff9940",
|
|
16
|
+
textPrimary: "#fafafa",
|
|
17
|
+
textSecondary: "#cccccc",
|
|
18
|
+
border: "#333333"
|
|
19
|
+
},
|
|
20
|
+
darkSoft: {
|
|
21
|
+
name: "escook Dark Soft (柔和暗黑)",
|
|
22
|
+
desc: "Ayu 经典深海蓝灰底色搭配温润奶杏黄,细腻柔和长效防疲劳",
|
|
23
|
+
type: "dark",
|
|
24
|
+
bgBase: "#1f2430",
|
|
25
|
+
bgSidebar: "#191e28",
|
|
26
|
+
bgSurface: "#232834",
|
|
27
|
+
accent: "#ffcc66",
|
|
28
|
+
accentHover: "#ffd580",
|
|
29
|
+
textPrimary: "#cbccc6",
|
|
30
|
+
textSecondary: "#969aa4",
|
|
31
|
+
border: "#373e4c"
|
|
32
|
+
},
|
|
33
|
+
light: {
|
|
34
|
+
name: "escook Light (经典紫韵浅色)",
|
|
35
|
+
desc: "Solarized 经典护眼暖米白搭配典雅紫罗兰与青墨文本,温润纸质书卷感",
|
|
36
|
+
type: "light",
|
|
37
|
+
bgBase: "#fdf6e3",
|
|
38
|
+
bgSidebar: "#f8f0d8",
|
|
39
|
+
bgSurface: "#ffffff",
|
|
40
|
+
accent: "#705697",
|
|
41
|
+
accentHover: "#876cad",
|
|
42
|
+
textPrimary: "#586e75",
|
|
43
|
+
textSecondary: "#657b83",
|
|
44
|
+
border: "#e3dac6"
|
|
45
|
+
},
|
|
46
|
+
lightSoft: {
|
|
47
|
+
name: "escook Light Soft (柔和浅色)",
|
|
48
|
+
desc: "现代极简清透浅灰搭配柔和活力橙,明亮清爽不刺眼",
|
|
49
|
+
type: "light",
|
|
50
|
+
bgBase: "#fafafa",
|
|
51
|
+
bgSidebar: "#f2f2f2",
|
|
52
|
+
bgSurface: "#ffffff",
|
|
53
|
+
accent: "#ff9940",
|
|
54
|
+
accentHover: "#f58220",
|
|
55
|
+
textPrimary: "#2d3748",
|
|
56
|
+
textSecondary: "#4a5568",
|
|
57
|
+
border: "#dcdcdc"
|
|
58
|
+
}
|
|
59
|
+
};
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* dsh-theme-escook TypeScript Interface Definitions
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
export type EscookThemeType = "dark" | "dark-soft" | "light" | "light-soft";
|
|
6
|
+
|
|
7
|
+
export interface EscookThemeScheme {
|
|
8
|
+
name: string;
|
|
9
|
+
type: "dark" | "light";
|
|
10
|
+
css: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface EscookThemePluginContext {
|
|
14
|
+
setScheme: (key: EscookThemeType) => void;
|
|
15
|
+
dispose: () => void;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export default function activate(context: any): EscookThemePluginContext;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-theme-escook",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "🌸 彬哥の经典主题 (escook-theme) for DeepSeek Harness — 优雅暗夜紫调与琥珀金高亮美学主题",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -37,11 +37,15 @@
|
|
|
37
37
|
"files": [
|
|
38
38
|
"lib",
|
|
39
39
|
"client",
|
|
40
|
+
"assets",
|
|
40
41
|
"cordis.patch.yml",
|
|
41
42
|
"README.md",
|
|
42
43
|
"README.zh.md",
|
|
43
44
|
"LICENSE"
|
|
44
45
|
],
|
|
46
|
+
"peerDependencies": {
|
|
47
|
+
"@deepseek-ai/dsh-client-ui-theme": ">=0.0.1-rc.1 <0.1.0 || >=0.1.0-rc.1 <0.2.0-0"
|
|
48
|
+
},
|
|
45
49
|
"publishConfig": {
|
|
46
50
|
"access": "public",
|
|
47
51
|
"registry": "https://registry.npmjs.org/"
|