pi-web-ui 0.63.4 → 0.64.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.
Files changed (43) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +504 -504
  3. package/README.zh-CN.md +427 -427
  4. package/bin/pi-web-ui.mjs +1809 -1809
  5. package/deploy/com.xingshuyin.pi-web-ui.plist +48 -48
  6. package/deploy/nginx-subpath.conf +88 -88
  7. package/deploy/pi-web-ui-task.xml +54 -54
  8. package/deploy/pi-web-ui.service +31 -31
  9. package/dist/server/agent-service.js +18 -10
  10. package/dist/server/attachments.js +3 -3
  11. package/dist/server/dsh/dsh-agent-service.js +3 -0
  12. package/dist/server/dsh/runtime/cordis.yml +1 -1
  13. package/dist/server/dsh/runtime/goal-rpc.mjs +645 -645
  14. package/dist/server/dsh/runtime/launcher.mjs +164 -164
  15. package/dist/server/dsh/runtime/override.patch.yml +71 -71
  16. package/dist/server/dsh/runtime/runtime-root.mjs +86 -86
  17. package/dist/server/files-service.js +42 -0
  18. package/dist/server/index.js +3 -0
  19. package/dist/server/marker-service.js +2 -1
  20. package/dist/server/markers/builtins/rename.js +1 -3
  21. package/dist/server/markers/builtins/services.js +6 -2
  22. package/dist/server/markers/builtins/todo.js +8 -4
  23. package/dist/server/settings-service.js +5 -1
  24. package/dist/server/terminals.js +4 -4
  25. package/dist/server/vision-bridge.js +9 -9
  26. package/extensions/webui.ts +190 -190
  27. package/package.json +1 -1
  28. package/themes/cyberpunk.css +81 -81
  29. package/themes/dazzle.css +81 -81
  30. package/themes/md-preview.css +98 -98
  31. package/themes/white.css +160 -160
  32. package/web/dist/assets/{TerminalPanel-BFrV6B8W.js → TerminalPanel-DNkAT34Z.js} +1 -1
  33. package/web/dist/assets/index-CMgDryBL.css +10 -0
  34. package/web/dist/assets/index-_1vyEugI.js +326 -0
  35. package/web/dist/favicon.svg +8 -8
  36. package/web/dist/index.html +21 -21
  37. package/web/dist/manifest.webmanifest +50 -50
  38. package/web/dist/sw.js +126 -126
  39. package/web/public/favicon.svg +8 -8
  40. package/web/public/manifest.webmanifest +50 -50
  41. package/web/public/sw.js +126 -126
  42. package/web/dist/assets/index-BFoSybNe.js +0 -324
  43. package/web/dist/assets/index-D9G_7fPE.css +0 -10
@@ -1,81 +1,81 @@
1
- /* theme-name: 赛博朋克 */
2
- /* theme-name-en: Cyberpunk */
3
- :root {
4
- color-scheme: dark;
5
- --bg: #0a0a0f;
6
- --bg-elev: #12121e;
7
- --bg-elev2: #1a1a2e;
8
- --border: #2b2b4a;
9
- --border-soft: #20203a;
10
- --text: #e6e6ff;
11
- --text-dim: #9a9ac4;
12
- --text-faint: #6a6a8e;
13
- --accent: #00d4ff;
14
- --accent-soft: rgba(0, 212, 255, 0.14);
15
- --green: #00ff41;
16
- --green-soft: rgba(0, 255, 65, 0.12);
17
- --red: #ff006e;
18
- --red-soft: rgba(255, 0, 110, 0.12);
19
- --amber: #ffd700;
20
- --term-bg: #0a0a0f;
21
- --term-fg: #e6e6ff;
22
- --term-cursor: #00d4ff;
23
- --term-cursor-accent: #0a0a0f;
24
- --term-selection: rgba(0, 212, 255, 0.35);
25
- --term-black: #1a1a2e;
26
- --term-red: #ff006e;
27
- --term-green: #00ff41;
28
- --term-yellow: #ffd700;
29
- --term-blue: #00d4ff;
30
- --term-magenta: #ff00ff;
31
- --term-cyan: #00f5ff;
32
- --term-white: #e6e6ff;
33
- --term-bright-black: #6a6a8e;
34
- --term-bright-red: #ff006e;
35
- --term-bright-green: #00ff41;
36
- --term-bright-yellow: #ffd700;
37
- --term-bright-blue: #00d4ff;
38
- --term-bright-magenta: #ff00ff;
39
- --term-bright-cyan: #00f5ff;
40
- --term-bright-white: #ffffff;
41
- --mono: "SF Mono", "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
42
- --tooltip-bg: #232733;
43
- --code-bg: #0b0d12;
44
- --code-text: #c9d1d9;
45
- --err-text: #f0a5a5;
46
- --red-text: #fca5a5;
47
- --amber-text: #fcd34d;
48
- --info-blue: #00d4ff;
49
- --link: #a78bfa;
50
- --link-hover: #c4b5fd;
51
- --link-soft: #ddd6fe;
52
- --md-strong: #f3f4f6;
53
- --skill-blue: #5eb3ff;
54
- --plugin-purple: #ff00ff;
55
- --auth-green: #6ee7a0;
56
- --scroll-thumb: #2a2f3d;
57
- --scroll-thumb-hover: #3a4152;
58
- --notice-err-bg: #401d23;
59
- --notice-warn-bg: #38251f;
60
- --notice-info-bg: #1b2544;
61
- --notice-err-border: #ef4444;
62
- --notice-warn-border: #f59e0b;
63
- --notice-info-border: #3b82f6;
64
- --send-blue: #00d4ff;
65
- --send-blue-hover: #00b8d4;
66
- --brand-grad-a: #00d4ff;
67
- --brand-grad-b: #ff006e;
68
- --on-amber: #1a1a1a;
69
- --search-active-fg: #1a1d26;
70
- --switch-knob: #ffffff;
71
- --bg-elev3: rgba(255, 255, 255, 0.06);
72
- --glow-015: rgba(255, 255, 255, 0.015);
73
- --glow-025: rgba(255, 255, 255, 0.025);
74
- --glow-03: rgba(255, 255, 255, 0.03);
75
- --glow-04: rgba(255, 255, 255, 0.04);
76
- --glow-05: rgba(255, 255, 255, 0.05);
77
- --glow-12: rgba(255, 255, 255, 0.12);
78
- --glow-18: rgba(255, 255, 255, 0.18);
79
- --glow-22: rgba(255, 255, 255, 0.22);
80
- --glow-38: rgba(255, 255, 255, 0.38);
81
- }
1
+ /* theme-name: 赛博朋克 */
2
+ /* theme-name-en: Cyberpunk */
3
+ :root {
4
+ color-scheme: dark;
5
+ --bg: #0a0a0f;
6
+ --bg-elev: #12121e;
7
+ --bg-elev2: #1a1a2e;
8
+ --border: #2b2b4a;
9
+ --border-soft: #20203a;
10
+ --text: #e6e6ff;
11
+ --text-dim: #9a9ac4;
12
+ --text-faint: #6a6a8e;
13
+ --accent: #00d4ff;
14
+ --accent-soft: rgba(0, 212, 255, 0.14);
15
+ --green: #00ff41;
16
+ --green-soft: rgba(0, 255, 65, 0.12);
17
+ --red: #ff006e;
18
+ --red-soft: rgba(255, 0, 110, 0.12);
19
+ --amber: #ffd700;
20
+ --term-bg: #0a0a0f;
21
+ --term-fg: #e6e6ff;
22
+ --term-cursor: #00d4ff;
23
+ --term-cursor-accent: #0a0a0f;
24
+ --term-selection: rgba(0, 212, 255, 0.35);
25
+ --term-black: #1a1a2e;
26
+ --term-red: #ff006e;
27
+ --term-green: #00ff41;
28
+ --term-yellow: #ffd700;
29
+ --term-blue: #00d4ff;
30
+ --term-magenta: #ff00ff;
31
+ --term-cyan: #00f5ff;
32
+ --term-white: #e6e6ff;
33
+ --term-bright-black: #6a6a8e;
34
+ --term-bright-red: #ff006e;
35
+ --term-bright-green: #00ff41;
36
+ --term-bright-yellow: #ffd700;
37
+ --term-bright-blue: #00d4ff;
38
+ --term-bright-magenta: #ff00ff;
39
+ --term-bright-cyan: #00f5ff;
40
+ --term-bright-white: #ffffff;
41
+ --mono: "SF Mono", "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
42
+ --tooltip-bg: #232733;
43
+ --code-bg: #0b0d12;
44
+ --code-text: #c9d1d9;
45
+ --err-text: #f0a5a5;
46
+ --red-text: #fca5a5;
47
+ --amber-text: #fcd34d;
48
+ --info-blue: #00d4ff;
49
+ --link: #a78bfa;
50
+ --link-hover: #c4b5fd;
51
+ --link-soft: #ddd6fe;
52
+ --md-strong: #f3f4f6;
53
+ --skill-blue: #5eb3ff;
54
+ --plugin-purple: #ff00ff;
55
+ --auth-green: #6ee7a0;
56
+ --scroll-thumb: #2a2f3d;
57
+ --scroll-thumb-hover: #3a4152;
58
+ --notice-err-bg: #401d23;
59
+ --notice-warn-bg: #38251f;
60
+ --notice-info-bg: #1b2544;
61
+ --notice-err-border: #ef4444;
62
+ --notice-warn-border: #f59e0b;
63
+ --notice-info-border: #3b82f6;
64
+ --send-blue: #00d4ff;
65
+ --send-blue-hover: #00b8d4;
66
+ --brand-grad-a: #00d4ff;
67
+ --brand-grad-b: #ff006e;
68
+ --on-amber: #1a1a1a;
69
+ --search-active-fg: #1a1d26;
70
+ --switch-knob: #ffffff;
71
+ --bg-elev3: rgba(255, 255, 255, 0.06);
72
+ --glow-015: rgba(255, 255, 255, 0.015);
73
+ --glow-025: rgba(255, 255, 255, 0.025);
74
+ --glow-03: rgba(255, 255, 255, 0.03);
75
+ --glow-04: rgba(255, 255, 255, 0.04);
76
+ --glow-05: rgba(255, 255, 255, 0.05);
77
+ --glow-12: rgba(255, 255, 255, 0.12);
78
+ --glow-18: rgba(255, 255, 255, 0.18);
79
+ --glow-22: rgba(255, 255, 255, 0.22);
80
+ --glow-38: rgba(255, 255, 255, 0.38);
81
+ }
package/themes/dazzle.css CHANGED
@@ -1,81 +1,81 @@
1
- /* theme-name: 炫彩 */
2
- /* theme-name-en: Dazzle */
3
- :root {
4
- color-scheme: dark;
5
- --bg: #0b0b14;
6
- --bg-elev: #13131e;
7
- --bg-elev2: #1b1b2e;
8
- --border: #2a2a48;
9
- --border-soft: #1f1f38;
10
- --text: #e8e8f0;
11
- --text-dim: #a0a0c0;
12
- --text-faint: #707090;
13
- --accent: #818cf8;
14
- --accent-soft: rgba(129, 140, 248, 0.14);
15
- --green: #34d399;
16
- --green-soft: rgba(52, 211, 153, 0.12);
17
- --red: #f43f5e;
18
- --red-soft: rgba(244, 63, 94, 0.12);
19
- --amber: #f59e0b;
20
- --term-bg: #0b0b14;
21
- --term-fg: #e8e8f0;
22
- --term-cursor: #818cf8;
23
- --term-cursor-accent: #0b0b14;
24
- --term-selection: rgba(129, 140, 248, 0.35);
25
- --term-black: #1b1b2e;
26
- --term-red: #f43f5e;
27
- --term-green: #34d399;
28
- --term-yellow: #f59e0b;
29
- --term-blue: #60a5fa;
30
- --term-magenta: #c084fc;
31
- --term-cyan: #22d3ee;
32
- --term-white: #e8e8f0;
33
- --term-bright-black: #707090;
34
- --term-bright-red: #f43f5e;
35
- --term-bright-green: #34d399;
36
- --term-bright-yellow: #f59e0b;
37
- --term-bright-blue: #60a5fa;
38
- --term-bright-magenta: #c084fc;
39
- --term-bright-cyan: #22d3ee;
40
- --term-bright-white: #ffffff;
41
- --mono: "SF Mono", "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
42
- --tooltip-bg: #232733;
43
- --code-bg: #0b0d12;
44
- --code-text: #c9d1d9;
45
- --err-text: #f0a5a5;
46
- --red-text: #fca5a5;
47
- --amber-text: #fcd34d;
48
- --info-blue: #60a5fa;
49
- --link: #a78bfa;
50
- --link-hover: #c4b5fd;
51
- --link-soft: #ddd6fe;
52
- --md-strong: #f3f4f6;
53
- --skill-blue: #5eb3ff;
54
- --plugin-purple: #b58cff;
55
- --auth-green: #6ee7a0;
56
- --scroll-thumb: #2a2f3d;
57
- --scroll-thumb-hover: #3a4152;
58
- --notice-err-bg: #401d23;
59
- --notice-warn-bg: #38251f;
60
- --notice-info-bg: #1b2544;
61
- --notice-err-border: #ef4444;
62
- --notice-warn-border: #f59e0b;
63
- --notice-info-border: #3b82f6;
64
- --send-blue: #818cf8;
65
- --send-blue-hover: #6366f1;
66
- --brand-grad-a: #818cf8;
67
- --brand-grad-b: #c084fc;
68
- --on-amber: #1a1a1a;
69
- --search-active-fg: #1a1d26;
70
- --switch-knob: #ffffff;
71
- --bg-elev3: rgba(255, 255, 255, 0.06);
72
- --glow-015: rgba(255, 255, 255, 0.015);
73
- --glow-025: rgba(255, 255, 255, 0.025);
74
- --glow-03: rgba(255, 255, 255, 0.03);
75
- --glow-04: rgba(255, 255, 255, 0.04);
76
- --glow-05: rgba(255, 255, 255, 0.05);
77
- --glow-12: rgba(255, 255, 255, 0.12);
78
- --glow-18: rgba(255, 255, 255, 0.18);
79
- --glow-22: rgba(255, 255, 255, 0.22);
80
- --glow-38: rgba(255, 255, 255, 0.38);
81
- }
1
+ /* theme-name: 炫彩 */
2
+ /* theme-name-en: Dazzle */
3
+ :root {
4
+ color-scheme: dark;
5
+ --bg: #0b0b14;
6
+ --bg-elev: #13131e;
7
+ --bg-elev2: #1b1b2e;
8
+ --border: #2a2a48;
9
+ --border-soft: #1f1f38;
10
+ --text: #e8e8f0;
11
+ --text-dim: #a0a0c0;
12
+ --text-faint: #707090;
13
+ --accent: #818cf8;
14
+ --accent-soft: rgba(129, 140, 248, 0.14);
15
+ --green: #34d399;
16
+ --green-soft: rgba(52, 211, 153, 0.12);
17
+ --red: #f43f5e;
18
+ --red-soft: rgba(244, 63, 94, 0.12);
19
+ --amber: #f59e0b;
20
+ --term-bg: #0b0b14;
21
+ --term-fg: #e8e8f0;
22
+ --term-cursor: #818cf8;
23
+ --term-cursor-accent: #0b0b14;
24
+ --term-selection: rgba(129, 140, 248, 0.35);
25
+ --term-black: #1b1b2e;
26
+ --term-red: #f43f5e;
27
+ --term-green: #34d399;
28
+ --term-yellow: #f59e0b;
29
+ --term-blue: #60a5fa;
30
+ --term-magenta: #c084fc;
31
+ --term-cyan: #22d3ee;
32
+ --term-white: #e8e8f0;
33
+ --term-bright-black: #707090;
34
+ --term-bright-red: #f43f5e;
35
+ --term-bright-green: #34d399;
36
+ --term-bright-yellow: #f59e0b;
37
+ --term-bright-blue: #60a5fa;
38
+ --term-bright-magenta: #c084fc;
39
+ --term-bright-cyan: #22d3ee;
40
+ --term-bright-white: #ffffff;
41
+ --mono: "SF Mono", "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
42
+ --tooltip-bg: #232733;
43
+ --code-bg: #0b0d12;
44
+ --code-text: #c9d1d9;
45
+ --err-text: #f0a5a5;
46
+ --red-text: #fca5a5;
47
+ --amber-text: #fcd34d;
48
+ --info-blue: #60a5fa;
49
+ --link: #a78bfa;
50
+ --link-hover: #c4b5fd;
51
+ --link-soft: #ddd6fe;
52
+ --md-strong: #f3f4f6;
53
+ --skill-blue: #5eb3ff;
54
+ --plugin-purple: #b58cff;
55
+ --auth-green: #6ee7a0;
56
+ --scroll-thumb: #2a2f3d;
57
+ --scroll-thumb-hover: #3a4152;
58
+ --notice-err-bg: #401d23;
59
+ --notice-warn-bg: #38251f;
60
+ --notice-info-bg: #1b2544;
61
+ --notice-err-border: #ef4444;
62
+ --notice-warn-border: #f59e0b;
63
+ --notice-info-border: #3b82f6;
64
+ --send-blue: #818cf8;
65
+ --send-blue-hover: #6366f1;
66
+ --brand-grad-a: #818cf8;
67
+ --brand-grad-b: #c084fc;
68
+ --on-amber: #1a1a1a;
69
+ --search-active-fg: #1a1d26;
70
+ --switch-knob: #ffffff;
71
+ --bg-elev3: rgba(255, 255, 255, 0.06);
72
+ --glow-015: rgba(255, 255, 255, 0.015);
73
+ --glow-025: rgba(255, 255, 255, 0.025);
74
+ --glow-03: rgba(255, 255, 255, 0.03);
75
+ --glow-04: rgba(255, 255, 255, 0.04);
76
+ --glow-05: rgba(255, 255, 255, 0.05);
77
+ --glow-12: rgba(255, 255, 255, 0.12);
78
+ --glow-18: rgba(255, 255, 255, 0.18);
79
+ --glow-22: rgba(255, 255, 255, 0.22);
80
+ --glow-38: rgba(255, 255, 255, 0.38);
81
+ }
@@ -1,98 +1,98 @@
1
- /* theme-name: 紫晕 */
2
- /* theme-name-en: Purple Haze */
3
- :root {
4
- color-scheme: dark;
5
- --bg: #0d0e12;
6
- --bg-elev: #14161c;
7
- --bg-elev2: #1a1d26;
8
- --border: #262a35;
9
- --border-soft: #1e2230;
10
- --text: #e6e8ef;
11
- --text-dim: #9aa1b4;
12
- --text-faint: #6b7284;
13
- --accent: #8b5cf6;
14
- --accent-soft: rgba(139, 92, 246, 0.14);
15
- --green: #34d399;
16
- --green-soft: rgba(52, 211, 153, 0.12);
17
- --red: #f87171;
18
- --red-soft: rgba(248, 113, 113, 0.12);
19
- --amber: #fbbf24;
20
- --term-bg: #0b0d12;
21
- --term-fg: #e6e8ef;
22
- --term-cursor: #8b5cf6;
23
- --term-cursor-accent: #0b0d12;
24
- --term-selection: rgba(139, 92, 246, 0.35);
25
- --term-black: #1a1d26;
26
- --term-red: #f87171;
27
- --term-green: #34d399;
28
- --term-yellow: #fbbf24;
29
- --term-blue: #60a5fa;
30
- --term-magenta: #c084fc;
31
- --term-cyan: #22d3ee;
32
- --term-white: #e6e8ef;
33
- --term-bright-black: #6b7284;
34
- --term-bright-red: #f87171;
35
- --term-bright-green: #34d399;
36
- --term-bright-yellow: #fbbf24;
37
- --term-bright-blue: #60a5fa;
38
- --term-bright-magenta: #c084fc;
39
- --term-bright-cyan: #22d3ee;
40
- --term-bright-white: #ffffff;
41
- --mono: "SF Mono", "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
42
- --tooltip-bg: #232733;
43
- --code-bg: #0b0d12;
44
- --code-text: #c9d1d9;
45
- --err-text: #f0a5a5;
46
- --red-text: #fca5a5;
47
- --amber-text: #fcd34d;
48
- --info-blue: #60a5fa;
49
- --link: #a78bfa;
50
- --link-hover: #c4b5fd;
51
- --link-soft: #ddd6fe;
52
- --md-strong: #f3f4f6;
53
- --skill-blue: #5eb3ff;
54
- --plugin-purple: #b58cff;
55
- --auth-green: #6ee7a0;
56
- --scroll-thumb: #2a2f3d;
57
- --scroll-thumb-hover: #3a4152;
58
- --notice-err-bg: #401d23;
59
- --notice-warn-bg: #38251f;
60
- --notice-info-bg: #1b2544;
61
- --notice-err-border: #ef4444;
62
- --notice-warn-border: #f59e0b;
63
- --notice-info-border: #3b82f6;
64
- --send-blue: #3b82f6;
65
- --send-blue-hover: #2563eb;
66
- --brand-grad-a: #8b5cf6;
67
- --brand-grad-b: #6366f1;
68
- --on-amber: #1a1a1a;
69
- --search-active-fg: #1a1d26;
70
- --switch-knob: #ffffff;
71
- --bg-elev3: rgba(255, 255, 255, 0.06);
72
- --glow-015: rgba(255, 255, 255, 0.015);
73
- --glow-025: rgba(255, 255, 255, 0.025);
74
- --glow-03: rgba(255, 255, 255, 0.03);
75
- --glow-04: rgba(255, 255, 255, 0.04);
76
- --glow-05: rgba(255, 255, 255, 0.05);
77
- --glow-12: rgba(255, 255, 255, 0.12);
78
- --glow-18: rgba(255, 255, 255, 0.18);
79
- --glow-22: rgba(255, 255, 255, 0.22);
80
- --glow-38: rgba(255, 255, 255, 0.38);
81
- }
82
-
83
- /* ---- ambient gradient(镜像 .fp-markdown 预览底色,覆盖整个窗口)---- */
84
- :root {
85
- --bg: #0a0b10;
86
- }
87
- body {
88
- background:
89
- radial-gradient(circle at 10% 0%, rgba(139, 92, 246, 0.14), transparent 38%),
90
- radial-gradient(circle at 88% 100%, rgba(139, 92, 246, 0.07), transparent 44%),
91
- #0a0b10;
92
- }
93
- /* 让渐变直接成为整个窗口的底色:铬件全部透明,只留边框定结构 */
94
- .topbar,
95
- .panel,
96
- .statusbar {
97
- background: transparent;
98
- }
1
+ /* theme-name: 紫晕 */
2
+ /* theme-name-en: Purple Haze */
3
+ :root {
4
+ color-scheme: dark;
5
+ --bg: #0d0e12;
6
+ --bg-elev: #14161c;
7
+ --bg-elev2: #1a1d26;
8
+ --border: #262a35;
9
+ --border-soft: #1e2230;
10
+ --text: #e6e8ef;
11
+ --text-dim: #9aa1b4;
12
+ --text-faint: #6b7284;
13
+ --accent: #8b5cf6;
14
+ --accent-soft: rgba(139, 92, 246, 0.14);
15
+ --green: #34d399;
16
+ --green-soft: rgba(52, 211, 153, 0.12);
17
+ --red: #f87171;
18
+ --red-soft: rgba(248, 113, 113, 0.12);
19
+ --amber: #fbbf24;
20
+ --term-bg: #0b0d12;
21
+ --term-fg: #e6e8ef;
22
+ --term-cursor: #8b5cf6;
23
+ --term-cursor-accent: #0b0d12;
24
+ --term-selection: rgba(139, 92, 246, 0.35);
25
+ --term-black: #1a1d26;
26
+ --term-red: #f87171;
27
+ --term-green: #34d399;
28
+ --term-yellow: #fbbf24;
29
+ --term-blue: #60a5fa;
30
+ --term-magenta: #c084fc;
31
+ --term-cyan: #22d3ee;
32
+ --term-white: #e6e8ef;
33
+ --term-bright-black: #6b7284;
34
+ --term-bright-red: #f87171;
35
+ --term-bright-green: #34d399;
36
+ --term-bright-yellow: #fbbf24;
37
+ --term-bright-blue: #60a5fa;
38
+ --term-bright-magenta: #c084fc;
39
+ --term-bright-cyan: #22d3ee;
40
+ --term-bright-white: #ffffff;
41
+ --mono: "SF Mono", "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
42
+ --tooltip-bg: #232733;
43
+ --code-bg: #0b0d12;
44
+ --code-text: #c9d1d9;
45
+ --err-text: #f0a5a5;
46
+ --red-text: #fca5a5;
47
+ --amber-text: #fcd34d;
48
+ --info-blue: #60a5fa;
49
+ --link: #a78bfa;
50
+ --link-hover: #c4b5fd;
51
+ --link-soft: #ddd6fe;
52
+ --md-strong: #f3f4f6;
53
+ --skill-blue: #5eb3ff;
54
+ --plugin-purple: #b58cff;
55
+ --auth-green: #6ee7a0;
56
+ --scroll-thumb: #2a2f3d;
57
+ --scroll-thumb-hover: #3a4152;
58
+ --notice-err-bg: #401d23;
59
+ --notice-warn-bg: #38251f;
60
+ --notice-info-bg: #1b2544;
61
+ --notice-err-border: #ef4444;
62
+ --notice-warn-border: #f59e0b;
63
+ --notice-info-border: #3b82f6;
64
+ --send-blue: #3b82f6;
65
+ --send-blue-hover: #2563eb;
66
+ --brand-grad-a: #8b5cf6;
67
+ --brand-grad-b: #6366f1;
68
+ --on-amber: #1a1a1a;
69
+ --search-active-fg: #1a1d26;
70
+ --switch-knob: #ffffff;
71
+ --bg-elev3: rgba(255, 255, 255, 0.06);
72
+ --glow-015: rgba(255, 255, 255, 0.015);
73
+ --glow-025: rgba(255, 255, 255, 0.025);
74
+ --glow-03: rgba(255, 255, 255, 0.03);
75
+ --glow-04: rgba(255, 255, 255, 0.04);
76
+ --glow-05: rgba(255, 255, 255, 0.05);
77
+ --glow-12: rgba(255, 255, 255, 0.12);
78
+ --glow-18: rgba(255, 255, 255, 0.18);
79
+ --glow-22: rgba(255, 255, 255, 0.22);
80
+ --glow-38: rgba(255, 255, 255, 0.38);
81
+ }
82
+
83
+ /* ---- ambient gradient(镜像 .fp-markdown 预览底色,覆盖整个窗口)---- */
84
+ :root {
85
+ --bg: #0a0b10;
86
+ }
87
+ body {
88
+ background:
89
+ radial-gradient(circle at 10% 0%, rgba(139, 92, 246, 0.14), transparent 38%),
90
+ radial-gradient(circle at 88% 100%, rgba(139, 92, 246, 0.07), transparent 44%),
91
+ #0a0b10;
92
+ }
93
+ /* 让渐变直接成为整个窗口的底色:铬件全部透明,只留边框定结构 */
94
+ .topbar,
95
+ .panel,
96
+ .statusbar {
97
+ background: transparent;
98
+ }