dsh-dream-skin 0.4.4 → 0.4.6
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 +1 -1
- package/lib/client.js +81 -25
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -103,7 +103,7 @@ dsh plugin --profile web add dsh-dream-skin && dsh web
|
|
|
103
103
|
| 📦 **主题包格式 + 导入/导出** | 一个 `*.dsh-theme.json` 主题包 = 格式标记 + 版本 + manifest(id/name/作者/色系/accent/tokens)。可**导入文件**、**一键应用**、**复制分享链接**(编码进 URL hash) |
|
|
104
104
|
| 🌈 **每用户强调色 Accent** | 为当前皮肤叠加一个自定义品牌强调色(`overrideTokens` 层,不动皮肤本身),**12 个典型色块一键选色** + 选色盘 + 随机 + 恢复主题色 |
|
|
105
105
|
| 🖼️ **壁纸 2.0** | 本地图 / **图片 URL** / **渐变预设**,每套皮肤**自动建议**一张渐变,可**自动弱化**(聚焦任务时降低干扰);**最近使用**(最多 5 张)一键换回 |
|
|
106
|
-
| 🪟 **弹窗不透明度** | 设置 → 外观 →「弹窗不透明度」滑块(0–100
|
|
106
|
+
| 🪟 **弹窗不透明度** | 设置 → 外观 →「弹窗不透明度」滑块(0–100%),控制下拉菜单 / 浮层 / 弹窗的底填充透明度——调高文字更清晰,调低可透出背后内容,跟随持久化保存 |
|
|
107
107
|
| 🧩 **本地主题包库** | 你导入的自定义主题包集中展示,**应用 / 收藏 / 移除** 一键完成(内置 8 套皮肤在「皮肤」行选择) |
|
|
108
108
|
| ✅ **清晰选中反馈** | 切换皮肤时选中态(✓ + 边框)**即时跟随**,不再残留模糊的白色高亮框 |
|
|
109
109
|
| 🎲 **换一个试试(surprise me)** | 随机挑一个和你当前不同的主题 |
|
package/lib/client.js
CHANGED
|
@@ -97,7 +97,7 @@ window.__ModuleLoader__.load({
|
|
|
97
97
|
"--dsw-alias-bg-base": "#101014",
|
|
98
98
|
"--dsw-alias-bg-layer-1": "rgba(255, 255, 255, 0.045)",
|
|
99
99
|
"--dsw-alias-bg-layer-2": "rgba(26, 30, 42, 0.85)",
|
|
100
|
-
"--dsw-alias-bg-layer-3": "rgba(255, 255, 255, 0.
|
|
100
|
+
"--dsw-alias-bg-layer-3": "rgba(255, 255, 255, 0.5)",
|
|
101
101
|
"--dsw-alias-bg-overlay": "rgba(24, 24, 30, 0.86)",
|
|
102
102
|
"--dsw-specific-input-major": "rgba(255, 255, 255, 0.08)",
|
|
103
103
|
"--dsw-specific-tip": "rgba(30, 33, 46, 0.9)",
|
|
@@ -107,6 +107,9 @@ window.__ModuleLoader__.load({
|
|
|
107
107
|
"--dsw-alias-label-secondary": "#a5adb8",
|
|
108
108
|
"--dsw-alias-label-tertiary": "#7b838f",
|
|
109
109
|
"--dsw-alias-brand-primary": "#5e6ad2",
|
|
110
|
+
"--dsw-specific-bubble": "rgba(37, 42, 58, 0.9)",
|
|
111
|
+
"--dsw-specific-bubble-highlight": "rgba(94, 106, 210, 0.16)",
|
|
112
|
+
"--dsw-specific-selector": "rgba(255, 255, 255, 0.10)",
|
|
110
113
|
"--dsw-alias-brand-text": "#ffffff",
|
|
111
114
|
"--dsw-alias-button-primary-hover": "#6f7be0",
|
|
112
115
|
"--dsw-alias-button-primary-dimmed": "rgba(94, 106, 210, 0.16)",
|
|
@@ -133,7 +136,7 @@ window.__ModuleLoader__.load({
|
|
|
133
136
|
"--dsw-alias-bg-base": "#0e1316",
|
|
134
137
|
"--dsw-alias-bg-layer-1": "rgba(255, 255, 255, 0.04)",
|
|
135
138
|
"--dsw-alias-bg-layer-2": "rgba(22, 32, 34, 0.85)",
|
|
136
|
-
"--dsw-alias-bg-layer-3": "rgba(255, 255, 255, 0.
|
|
139
|
+
"--dsw-alias-bg-layer-3": "rgba(255, 255, 255, 0.5)",
|
|
137
140
|
"--dsw-alias-bg-overlay": "rgba(18, 24, 27, 0.86)",
|
|
138
141
|
"--dsw-specific-input-major": "rgba(255, 255, 255, 0.08)",
|
|
139
142
|
"--dsw-specific-tip": "rgba(24, 35, 36, 0.9)",
|
|
@@ -143,6 +146,9 @@ window.__ModuleLoader__.load({
|
|
|
143
146
|
"--dsw-alias-label-secondary": "#9fc9b8",
|
|
144
147
|
"--dsw-alias-label-tertiary": "#74a494",
|
|
145
148
|
"--dsw-alias-brand-primary": "#2dd4bf",
|
|
149
|
+
"--dsw-specific-bubble": "rgba(30, 42, 44, 0.9)",
|
|
150
|
+
"--dsw-specific-bubble-highlight": "rgba(45, 212, 191, 0.14)",
|
|
151
|
+
"--dsw-specific-selector": "rgba(255, 255, 255, 0.10)",
|
|
146
152
|
"--dsw-alias-brand-text": "#03211b",
|
|
147
153
|
"--dsw-alias-button-primary-hover": "#45e0cd",
|
|
148
154
|
"--dsw-alias-button-primary-dimmed": "rgba(45, 212, 191, 0.14)",
|
|
@@ -169,7 +175,7 @@ window.__ModuleLoader__.load({
|
|
|
169
175
|
"--dsw-alias-bg-base": "#12101a",
|
|
170
176
|
"--dsw-alias-bg-layer-1": "rgba(255, 255, 255, 0.04)",
|
|
171
177
|
"--dsw-alias-bg-layer-2": "rgba(30, 27, 44, 0.85)",
|
|
172
|
-
"--dsw-alias-bg-layer-3": "rgba(255, 255, 255, 0.
|
|
178
|
+
"--dsw-alias-bg-layer-3": "rgba(255, 255, 255, 0.5)",
|
|
173
179
|
"--dsw-alias-bg-overlay": "rgba(22, 20, 30, 0.86)",
|
|
174
180
|
"--dsw-specific-input-major": "rgba(255, 255, 255, 0.08)",
|
|
175
181
|
"--dsw-specific-tip": "rgba(32, 28, 46, 0.9)",
|
|
@@ -179,6 +185,9 @@ window.__ModuleLoader__.load({
|
|
|
179
185
|
"--dsw-alias-label-secondary": "#b6a8d9",
|
|
180
186
|
"--dsw-alias-label-tertiary": "#8a7cb0",
|
|
181
187
|
"--dsw-alias-brand-primary": "#8b7cf6",
|
|
188
|
+
"--dsw-specific-bubble": "rgba(40, 36, 56, 0.9)",
|
|
189
|
+
"--dsw-specific-bubble-highlight": "rgba(139, 124, 246, 0.14)",
|
|
190
|
+
"--dsw-specific-selector": "rgba(255, 255, 255, 0.10)",
|
|
182
191
|
"--dsw-alias-brand-text": "#0d0a1c",
|
|
183
192
|
"--dsw-alias-button-primary-hover": "#9d90f8",
|
|
184
193
|
"--dsw-alias-button-primary-dimmed": "rgba(139, 124, 246, 0.14)",
|
|
@@ -205,7 +214,7 @@ window.__ModuleLoader__.load({
|
|
|
205
214
|
"--dsw-alias-bg-base": "#16110d",
|
|
206
215
|
"--dsw-alias-bg-layer-1": "rgba(255, 255, 255, 0.04)",
|
|
207
216
|
"--dsw-alias-bg-layer-2": "rgba(36, 28, 20, 0.85)",
|
|
208
|
-
"--dsw-alias-bg-layer-3": "rgba(255, 255, 255, 0.
|
|
217
|
+
"--dsw-alias-bg-layer-3": "rgba(255, 255, 255, 0.5)",
|
|
209
218
|
"--dsw-alias-bg-overlay": "rgba(28, 20, 15, 0.86)",
|
|
210
219
|
"--dsw-specific-input-major": "rgba(255, 255, 255, 0.08)",
|
|
211
220
|
"--dsw-specific-tip": "rgba(38, 28, 20, 0.9)",
|
|
@@ -215,6 +224,9 @@ window.__ModuleLoader__.load({
|
|
|
215
224
|
"--dsw-alias-label-secondary": "#d0a98a",
|
|
216
225
|
"--dsw-alias-label-tertiary": "#a48266",
|
|
217
226
|
"--dsw-alias-brand-primary": "#f59e5b",
|
|
227
|
+
"--dsw-specific-bubble": "rgba(48, 38, 28, 0.9)",
|
|
228
|
+
"--dsw-specific-bubble-highlight": "rgba(245, 158, 91, 0.14)",
|
|
229
|
+
"--dsw-specific-selector": "rgba(255, 255, 255, 0.10)",
|
|
218
230
|
"--dsw-alias-brand-text": "#1f0f06",
|
|
219
231
|
"--dsw-alias-button-primary-hover": "#f8b06f",
|
|
220
232
|
"--dsw-alias-button-primary-dimmed": "rgba(245, 158, 91, 0.14)",
|
|
@@ -241,7 +253,7 @@ window.__ModuleLoader__.load({
|
|
|
241
253
|
"--dsw-alias-bg-base": "#0b0b0e",
|
|
242
254
|
"--dsw-alias-bg-layer-1": "rgba(255, 255, 255, 0.04)",
|
|
243
255
|
"--dsw-alias-bg-layer-2": "rgba(22, 22, 28, 0.85)",
|
|
244
|
-
"--dsw-alias-bg-layer-3": "rgba(255, 255, 255, 0.
|
|
256
|
+
"--dsw-alias-bg-layer-3": "rgba(255, 255, 255, 0.5)",
|
|
245
257
|
"--dsw-alias-bg-overlay": "rgba(20, 20, 25, 0.86)",
|
|
246
258
|
"--dsw-specific-input-major": "rgba(255, 255, 255, 0.08)",
|
|
247
259
|
"--dsw-specific-tip": "rgba(26, 26, 32, 0.9)",
|
|
@@ -251,6 +263,9 @@ window.__ModuleLoader__.load({
|
|
|
251
263
|
"--dsw-alias-label-secondary": "#a4a4b2",
|
|
252
264
|
"--dsw-alias-label-tertiary": "#787884",
|
|
253
265
|
"--dsw-alias-brand-primary": "#7c8cff",
|
|
266
|
+
"--dsw-specific-bubble": "rgba(30, 30, 38, 0.9)",
|
|
267
|
+
"--dsw-specific-bubble-highlight": "rgba(124, 140, 255, 0.14)",
|
|
268
|
+
"--dsw-specific-selector": "rgba(255, 255, 255, 0.10)",
|
|
254
269
|
"--dsw-alias-brand-text": "#05050f",
|
|
255
270
|
"--dsw-alias-button-primary-hover": "#93a1ff",
|
|
256
271
|
"--dsw-alias-button-primary-dimmed": "rgba(124, 140, 255, 0.14)",
|
|
@@ -287,6 +302,9 @@ window.__ModuleLoader__.load({
|
|
|
287
302
|
"--dsw-alias-label-secondary": "#6e6e73",
|
|
288
303
|
"--dsw-alias-label-tertiary": "#86868b",
|
|
289
304
|
"--dsw-alias-brand-primary": "#0071e3",
|
|
305
|
+
"--dsw-specific-bubble": "#ffffff",
|
|
306
|
+
"--dsw-specific-bubble-highlight": "rgba(0, 113, 227, 0.08)",
|
|
307
|
+
"--dsw-specific-selector": "rgba(0, 0, 0, 0.04)",
|
|
290
308
|
"--dsw-alias-brand-text": "#ffffff",
|
|
291
309
|
"--dsw-alias-button-primary-hover": "#3395ff",
|
|
292
310
|
"--dsw-alias-button-primary-dimmed": "rgba(0, 113, 227, 0.12)",
|
|
@@ -323,6 +341,9 @@ window.__ModuleLoader__.load({
|
|
|
323
341
|
"--dsw-alias-label-secondary": "#3d5270",
|
|
324
342
|
"--dsw-alias-label-tertiary": "#6b80a0",
|
|
325
343
|
"--dsw-alias-brand-primary": "#2196f3",
|
|
344
|
+
"--dsw-specific-bubble": "rgba(255, 255, 255, 0.7)",
|
|
345
|
+
"--dsw-specific-bubble-highlight": "rgba(33, 150, 243, 0.12)",
|
|
346
|
+
"--dsw-specific-selector": "rgba(255, 255, 255, 0.5)",
|
|
326
347
|
"--dsw-alias-brand-text": "#ffffff",
|
|
327
348
|
"--dsw-alias-button-primary-hover": "#42a5f5",
|
|
328
349
|
"--dsw-alias-button-primary-dimmed": "rgba(33, 150, 243, 0.14)",
|
|
@@ -359,6 +380,9 @@ window.__ModuleLoader__.load({
|
|
|
359
380
|
"--dsw-alias-label-secondary": "#8a4a63",
|
|
360
381
|
"--dsw-alias-label-tertiary": "#a86b82",
|
|
361
382
|
"--dsw-alias-brand-primary": "#e91e63",
|
|
383
|
+
"--dsw-specific-bubble": "#ffffff",
|
|
384
|
+
"--dsw-specific-bubble-highlight": "rgba(233, 30, 99, 0.10)",
|
|
385
|
+
"--dsw-specific-selector": "rgba(233, 30, 99, 0.06)",
|
|
362
386
|
"--dsw-alias-brand-text": "#ffffff",
|
|
363
387
|
"--dsw-alias-button-primary-hover": "#f06292",
|
|
364
388
|
"--dsw-alias-button-primary-dimmed": "rgba(233, 30, 99, 0.12)",
|
|
@@ -425,7 +449,7 @@ window.__ModuleLoader__.load({
|
|
|
425
449
|
"bg2.autodim": "自动弱化(聚焦任务时不喧宾夺主)",
|
|
426
450
|
"bg2.remove": "清除壁纸",
|
|
427
451
|
"modal.title": "弹窗不透明度",
|
|
428
|
-
"modal.hint": "
|
|
452
|
+
"modal.hint": "控制下拉菜单 / 浮层 / 弹窗的底填充透明度——越高越不透明、文字越清晰;越低越能透出背后的内容。"
|
|
429
453
|
};
|
|
430
454
|
|
|
431
455
|
/** English dictionary, checked complete against the zh key set. */
|
|
@@ -474,7 +498,7 @@ window.__ModuleLoader__.load({
|
|
|
474
498
|
"bg2.autodim": "Auto-dim (gently fade while focusing tasks)",
|
|
475
499
|
"bg2.remove": "Clear wallpaper",
|
|
476
500
|
"modal.title": "Popup opacity",
|
|
477
|
-
"modal.hint": "Controls how opaque
|
|
501
|
+
"modal.hint": "Controls how opaque dropdown menus / overlays / popups are — higher keeps text crisp, lower lets the content behind show through."
|
|
478
502
|
};
|
|
479
503
|
|
|
480
504
|
/** JA dictionary (community translation). */
|
|
@@ -523,7 +547,7 @@ window.__ModuleLoader__.load({
|
|
|
523
547
|
"bg2.autodim": "自動ディム(タスクに集中している間は控えめに薄暗く)",
|
|
524
548
|
"bg2.remove": "壁紙をクリア",
|
|
525
549
|
"modal.title": "ポップアップの不透明度",
|
|
526
|
-
"modal.hint": "
|
|
550
|
+
"modal.hint": "ドロップダウンメニュー / オーバーレイ / ポップアップの塗り不透明度を調整します。高いほど不透明で文字がはっきりし、低いと背後が透けます。"
|
|
527
551
|
};
|
|
528
552
|
|
|
529
553
|
/** KO dictionary (community translation). */
|
|
@@ -572,7 +596,7 @@ window.__ModuleLoader__.load({
|
|
|
572
596
|
"bg2.autodim": "자동으로 은은해지기 (작업에 집중할 때 방해하지 않도록)",
|
|
573
597
|
"bg2.remove": "배경화면 지우기",
|
|
574
598
|
"modal.title": "팝업 불투명도",
|
|
575
|
-
"modal.hint": "
|
|
599
|
+
"modal.hint": "드롭다운 메뉴 / 오버레이 / 팝업 채우기 불투명도를 조절합니다. 높을수록 불투명해져 텍스트가 선명하고, 낮으면 배경이 비쳐 보입니다."
|
|
576
600
|
};
|
|
577
601
|
|
|
578
602
|
/** ES dictionary (community translation). */
|
|
@@ -621,7 +645,7 @@ window.__ModuleLoader__.load({
|
|
|
621
645
|
"bg2.autodim": "Atenuación automática (se desvanece suavemente mientras te concentras en las tareas)",
|
|
622
646
|
"bg2.remove": "Quitar fondo",
|
|
623
647
|
"modal.title": "Opacidad de las ventanas emergentes",
|
|
624
|
-
"modal.hint": "Controla la opacidad del relleno de
|
|
648
|
+
"modal.hint": "Controla la opacidad del relleno de menús desplegables / superposiciones / ventanas emergentes: más alta mantiene el texto nítido, más baja deja ver el contenido de atrás."
|
|
625
649
|
};
|
|
626
650
|
|
|
627
651
|
/** FR dictionary (community translation). */
|
|
@@ -670,7 +694,7 @@ window.__ModuleLoader__.load({
|
|
|
670
694
|
"bg2.autodim": "Atténuation auto (s'estompe en douceur pendant la concentration)",
|
|
671
695
|
"bg2.remove": "Effacer le fond d'écran",
|
|
672
696
|
"modal.title": "Opacité des fenêtres contextuelles",
|
|
673
|
-
"modal.hint": "Contrôle l'opacité du remplissage des
|
|
697
|
+
"modal.hint": "Contrôle l'opacité du remplissage des menus déroulants / superpositions / fenêtres contextuelles : plus élevée, le texte reste net ; plus basse, le contenu derrière transparaît."
|
|
674
698
|
};
|
|
675
699
|
|
|
676
700
|
/** DE dictionary (community translation). */
|
|
@@ -719,7 +743,7 @@ window.__ModuleLoader__.load({
|
|
|
719
743
|
"bg2.autodim": "Automatisch dimmen (sanft verblassen, während du dich auf Aufgaben konzentrierst)",
|
|
720
744
|
"bg2.remove": "Wallpaper entfernen",
|
|
721
745
|
"modal.title": "Deckkraft von Popups",
|
|
722
|
-
"modal.hint": "Regelt die Fülldeckkraft von
|
|
746
|
+
"modal.hint": "Regelt die Fülldeckkraft von Dropdown-Menüs / Overlays / Popups – höher hält den Text klar, niedriger lässt den Hintergrund durchscheinen."
|
|
723
747
|
};
|
|
724
748
|
|
|
725
749
|
/** RU dictionary (community translation). */
|
|
@@ -768,7 +792,7 @@ window.__ModuleLoader__.load({
|
|
|
768
792
|
"bg2.autodim": "Автоприглушение (плавно затухает при фокусе на задачах)",
|
|
769
793
|
"bg2.remove": "Очистить обои",
|
|
770
794
|
"modal.title": "Непрозрачность всплывающих окон",
|
|
771
|
-
"modal.hint": "Регулирует непрозрачность заливки
|
|
795
|
+
"modal.hint": "Регулирует непрозрачность заливки выпадающих меню / оверлеев / всплывающих окон: выше — текст чётче, ниже — просвечивает фон."
|
|
772
796
|
};
|
|
773
797
|
|
|
774
798
|
//#endregion
|
|
@@ -1082,18 +1106,10 @@ window.__ModuleLoader__.load({
|
|
|
1082
1106
|
".nArs4W_pane, .nArs4W_paneContent, .nArs4W_workbench, .nArs4W_explorerBody {",
|
|
1083
1107
|
" background: transparent;",
|
|
1084
1108
|
"}",
|
|
1085
|
-
//
|
|
1086
|
-
//
|
|
1087
|
-
//
|
|
1088
|
-
//
|
|
1089
|
-
// for the "清透" glass aesthetic, so ALL menus (model picker, input
|
|
1090
|
-
// triggers, option lists, etc.) rendered almost see-through and their
|
|
1091
|
-
// text was hard to read. Repoint menus at the readable elevated surface
|
|
1092
|
-
// `--dsw-alias-bg-layer-2` (the same fill DSH's dialogs/settings use),
|
|
1093
|
-
// which the skins keep opaque — text stays crisp on every skin.
|
|
1094
|
-
":root, body {",
|
|
1095
|
-
" --dsw-specific-menu: var(--dsw-alias-bg-layer-2) !important;",
|
|
1096
|
-
"}",
|
|
1109
|
+
// The `--dsw-specific-menu` / `--dsw-alias-bg-overlay` surfaces are now
|
|
1110
|
+
// driven by the popup-opacity override layer (applyModalOverlay) so the
|
|
1111
|
+
// user-adjustable「弹窗不透明度」slider actually tunes menu / popover /
|
|
1112
|
+
// dialog translucency — left per-skin otherwise.
|
|
1097
1113
|
// --- Left sidebar foot/settings consistency (issue: settings area) ---
|
|
1098
1114
|
// The workspace list region (`hHd-Xa_regionArea`) overhangs to the
|
|
1099
1115
|
// column's left/right edges (margin-left:-4px / margin-right:-12px),
|
|
@@ -1168,6 +1184,40 @@ window.__ModuleLoader__.load({
|
|
|
1168
1184
|
// document null in a headless eval — the CSS fallback (94%) still applies
|
|
1169
1185
|
}
|
|
1170
1186
|
}
|
|
1187
|
+
|
|
1188
|
+
/**
|
|
1189
|
+
* Driver for DSH's elevated popup surfaces. The reporter found the slider
|
|
1190
|
+
* "did nothing": it only ever affected the narrow `.Mbwy4a_card` rule. Real
|
|
1191
|
+
* popups / dropdown menus / dialogs consume DSH's semantic tokens
|
|
1192
|
+
* `--dsw-alias-bg-overlay` ("overlay and popover background") and
|
|
1193
|
+
* `--dsw-specific-menu` (dropdown / popup menus). We stack an override layer
|
|
1194
|
+
* that scales those two surfaces to the ACTIVE base color at the slider's
|
|
1195
|
+
* alpha, so 0% = fully see-through and 100% = solid — a real, visible change.
|
|
1196
|
+
* Pure token override (no backdrop-filter), so it cannot re-trigger the
|
|
1197
|
+
* fixed-modal containing-block bug. Called at boot and on every slider move.
|
|
1198
|
+
*/
|
|
1199
|
+
const POPUP_OVERRIDE_SOURCE = "dsh-dream-skin:popup-opacity";
|
|
1200
|
+
const POPUP_TOKENS = ["--dsw-alias-bg-overlay", "--dsw-specific-menu"];
|
|
1201
|
+
let popupOverrideDispose = null;
|
|
1202
|
+
function applyModalOverlay(ctx) {
|
|
1203
|
+
const alpha = readModalOpacity();
|
|
1204
|
+
const active = ctx.theme.getTheme().active;
|
|
1205
|
+
const baseFor = (scheme) => {
|
|
1206
|
+
if (active && active.colorScheme === scheme && typeof active.tokens["--dsw-alias-bg-base"] === "string") {
|
|
1207
|
+
return active.tokens["--dsw-alias-bg-base"];
|
|
1208
|
+
}
|
|
1209
|
+
return BUILTIN_BASE[scheme];
|
|
1210
|
+
};
|
|
1211
|
+
const overrides = {};
|
|
1212
|
+
for (const name of POPUP_TOKENS) {
|
|
1213
|
+
overrides[name] = {
|
|
1214
|
+
light: toRgba(baseFor("light"), alpha),
|
|
1215
|
+
dark: toRgba(baseFor("dark"), alpha)
|
|
1216
|
+
};
|
|
1217
|
+
}
|
|
1218
|
+
popupOverrideDispose?.();
|
|
1219
|
+
popupOverrideDispose = ctx.theme.overrideTokens(POPUP_OVERRIDE_SOURCE, overrides);
|
|
1220
|
+
}
|
|
1171
1221
|
//#endregion
|
|
1172
1222
|
|
|
1173
1223
|
//#region dsh-dream-skin: image compression
|
|
@@ -2619,6 +2669,9 @@ window.__ModuleLoader__.load({
|
|
|
2619
2669
|
|
|
2620
2670
|
// Apply the persisted popup-fill weight so saved modal opacity re-applies.
|
|
2621
2671
|
applyModalOpacity();
|
|
2672
|
+
// Scale DSH's popup/overlay/menu backgrounds so saved popup opacity takes
|
|
2673
|
+
// effect on the real popovers & dropdowns (issue #9 follow-up).
|
|
2674
|
+
applyModalOverlay(ctx);
|
|
2622
2675
|
}
|
|
2623
2676
|
|
|
2624
2677
|
/** Clear wallpaper (all kinds) and its overrides. */
|
|
@@ -3123,6 +3176,8 @@ window.__ModuleLoader__.load({
|
|
|
3123
3176
|
teardownWallpaper();
|
|
3124
3177
|
teardownMaterial();
|
|
3125
3178
|
disposeAllPacks();
|
|
3179
|
+
popupOverrideDispose?.();
|
|
3180
|
+
popupOverrideDispose = null;
|
|
3126
3181
|
}, "dsh-dream-skin: wallpaper + material + packs cleanup");
|
|
3127
3182
|
|
|
3128
3183
|
const skinStore = createSkinStore();
|
|
@@ -3368,6 +3423,7 @@ window.__ModuleLoader__.load({
|
|
|
3368
3423
|
setOpacity: (percent) => {
|
|
3369
3424
|
const clamped = writeModalOpacity(percent / 100);
|
|
3370
3425
|
applyModalOpacity();
|
|
3426
|
+
applyModalOverlay(ctx);
|
|
3371
3427
|
modalOpacityBound?.sync(clamped, ++modalOpacityRevision);
|
|
3372
3428
|
}
|
|
3373
3429
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-dream-skin",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.6",
|
|
4
4
|
"description": "DeepSeek Harness 换肤插件(Dream Skin for DSH):8 套 iOS / Linear 式清透冷调的高质感主题 + 弥散光壁纸 + 每皮肤智能背景 + 强调色 + 主题包分享,把换肤做成材质与配色克制的高级感工艺,而非贴图 — in the spirit of Codex Dream Skin, elevated.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|