magic-agent 2.4.3 → 2.6.3
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/CLIENT-CONTRACT.md +467 -41
- package/README.md +15 -14
- package/client-ui/pc/app.css +74 -0
- package/client-ui/pc/js/04-task-list.js +5 -1
- package/client-ui/pc/js/07-chat-stream-render.js +3 -3
- package/client-ui/pc/js/90-glue.js +40 -2
- package/client-ui/pc/js/92-composer.js +19 -4
- package/client-ui/pc/js/93-rail.js +16 -5
- package/client-ui/shared/conv/02-media-kinds.js +2 -2
- package/client-ui/shared/conv/03-chat-message.js +247 -23
- package/client-ui/shared/conv/06-ask-answer.js +75 -1
- package/client-ui/shared/conv/09-stream-apply.js +72 -7
- package/client-ui/shared/conv/19-attachments.js +157 -6
- package/client-ui/shared/conv/27-conv-ledger.js +5 -2
- package/client-ui/shared/conv/29-msg-variants.js +217 -0
- package/client-ui/shared/conv/conv.css +329 -174
- package/client-ui/shared/conv/dom-map.md +1 -0
- package/client-ui/shared/conversation.css +13 -2
- package/client-ui/shared/conversation.js +373 -50
- package/client-ui/shared/transport-http.js +14 -0
- package/client-ui-mobile/apps.css +16 -0
- package/client-ui-mobile/apps.js +406 -0
- package/client-ui-mobile/index.html +5554 -639
- package/client-ui-mobile/reqs.css +110 -1
- package/client-ui-mobile/reqs.js +533 -74
- package/client-ui-mobile/reqshot.js +505 -0
- package/client-ui-mobile/scripts.css +67 -0
- package/client-ui-mobile/scripts.js +599 -0
- package/client-ui-mobile/vendor/cose-base.js +3214 -0
- package/client-ui-mobile/vendor/cytoscape-fcose.js +1549 -0
- package/client-ui-mobile/vendor/cytoscape.min.js +32 -0
- package/client-ui-mobile/vendor/layout-base.js +5230 -0
- package/cmd/magic-client/browsectl.go +199 -0
- package/cmd/magic-client/clientctl.go +69 -10
- package/cmd/magic-client/main.go +210 -32
- package/internal/agent/ask.go +45 -0
- package/internal/agent/ask_test.go +39 -0
- package/internal/agent/attachments_test.go +6 -2
- package/internal/agent/capability.go +7 -1
- package/internal/agent/claude.go +20 -15
- package/internal/agent/codebuddy.go +125 -34
- package/internal/agent/codebuddy_account_test.go +54 -0
- package/internal/agent/codebuddy_stream_test.go +103 -0
- package/internal/agent/credits.go +713 -0
- package/internal/agent/credits_minimax_test.go +97 -0
- package/internal/agent/credits_test.go +211 -0
- package/internal/agent/custom_models.go +155 -0
- package/internal/agent/custom_models_test.go +125 -0
- package/internal/agent/dsh.go +123 -49
- package/internal/agent/dsh_caps_cache_test.go +184 -0
- package/internal/agent/dsh_resume.go +157 -7
- package/internal/agent/dsh_test.go +108 -6
- package/internal/agent/engine.go +37 -1
- package/internal/agent/engine_base.go +21 -17
- package/internal/agent/engine_base_test.go +2 -2
- package/internal/agent/engine_test.go +47 -86
- package/internal/agent/env.go +173 -1
- package/internal/agent/env_test.go +114 -0
- package/internal/agent/fallback.go +313 -0
- package/internal/agent/fallback_test.go +340 -0
- package/internal/agent/launch.go +43 -1
- package/internal/agent/limitnotice.go +207 -1
- package/internal/agent/limitnotice_test.go +140 -0
- package/internal/agent/llmhttp.go +46 -4
- package/internal/agent/llmhttp_test.go +157 -0
- package/internal/agent/models.go +53 -1
- package/internal/agent/models_test.go +20 -5
- package/internal/agent/pidalive_windows_test.go +40 -0
- package/internal/agent/runcmd.go +26 -0
- package/internal/agent/runcmd_windows.go +36 -5
- package/internal/agent/stream.go +166 -6
- package/internal/agent/stream_test.go +25 -38
- package/internal/agent/stream_timeline_test.go +2 -37
- package/internal/agent/streamjson.go +119 -7
- package/internal/agent/tools_suffix_test.go +6 -3
- package/internal/agent/trae.go +50 -243
- package/internal/agent/trae_exec.go +433 -0
- package/internal/agent/trae_exec_test.go +181 -0
- package/internal/agent/wraplaunch_test.go +113 -0
- package/internal/cli/ask.go +168 -37
- package/internal/cli/ask_test.go +1 -1
- package/internal/cli/checkin.go +77 -0
- package/internal/cli/clientcmd.go +3 -2
- package/internal/cli/control.go +46 -5
- package/internal/cli/control_test.go +65 -0
- package/internal/cli/engines_test.go +103 -0
- package/internal/cli/events.go +15 -0
- package/internal/cli/events_test.go +50 -0
- package/internal/cli/judge.go +104 -0
- package/internal/cli/quotas.go +125 -0
- package/internal/cli/requirements.go +51 -0
- package/internal/cli/root.go +157 -11
- package/internal/cli/session.go +75 -3
- package/internal/cli/session_test.go +82 -3
- package/internal/cli/sessionlog.go +6 -0
- package/internal/cli/sessionlog_test.go +22 -2
- package/internal/cli/suggest.go +7 -5
- package/internal/cli/team.go +37 -9
- package/internal/cli/team_test.go +39 -0
- package/internal/client/ab.go +372 -0
- package/internal/client/ab_test.go +287 -0
- package/internal/client/apk.go +8 -0
- package/internal/client/apk_test.go +59 -0
- package/internal/client/apps.go +1078 -0
- package/internal/client/apps_test.go +516 -0
- package/internal/client/browse.go +84 -36
- package/internal/client/browse_test.go +107 -9
- package/internal/client/browseinput.go +481 -0
- package/internal/client/browseinput_test.go +216 -0
- package/internal/client/corecmd.go +23 -0
- package/internal/client/corecmd_other.go +8 -0
- package/internal/client/corecmd_windows.go +24 -0
- package/internal/client/coreexe.go +196 -0
- package/internal/client/coreexe_test.go +161 -0
- package/internal/client/coreupgrade.go +866 -0
- package/internal/client/coreupgrade_test.go +561 -0
- package/internal/client/daemon.go +297 -33
- package/internal/client/daemon_test.go +33 -0
- package/internal/client/engines_checkin_test.go +57 -0
- package/internal/client/fallback_flags_test.go +64 -0
- package/internal/client/feishu.go +1259 -0
- package/internal/client/feishu_test.go +649 -0
- package/internal/client/health_identity_test.go +84 -0
- package/internal/client/hostenv.go +68 -0
- package/internal/client/hostenv_test.go +37 -0
- package/internal/client/jobs.go +518 -24
- package/internal/client/jobs_auto.go +571 -0
- package/internal/client/jobs_auto_test.go +431 -0
- package/internal/client/jobs_test.go +299 -2
- package/internal/client/knowledge.go +854 -0
- package/internal/client/knowledge_test.go +510 -0
- package/internal/client/lan.go +3 -3
- package/internal/client/plugins.go +5 -1
- package/internal/client/prefs.go +67 -0
- package/internal/client/procstart_linux.go +59 -0
- package/internal/client/publicurl.go +82 -0
- package/internal/client/quotas_merge_test.go +107 -0
- package/internal/client/requirements.go +207 -2
- package/internal/client/requirements_shots_test.go +200 -0
- package/internal/client/requirements_test.go +103 -0
- package/internal/client/restart.go +288 -0
- package/internal/client/restart_handoff_test.go +230 -0
- package/internal/client/restart_test.go +290 -0
- package/internal/client/scripts.go +1047 -0
- package/internal/client/scripts_decode_implausible.go +38 -0
- package/internal/client/scripts_decode_other.go +31 -0
- package/internal/client/scripts_decode_test.go +130 -0
- package/internal/client/scripts_decode_windows.go +182 -0
- package/internal/client/scripts_test.go +739 -0
- package/internal/client/service.go +717 -97
- package/internal/client/service_test.go +217 -1
- package/internal/client/sessions_cache.go +148 -0
- package/internal/client/sessions_cache_test.go +163 -0
- package/internal/client/sessions_fold.go +165 -0
- package/internal/client/sessions_fold_test.go +204 -0
- package/internal/client/singleinstance.go +470 -0
- package/internal/client/singleinstance_test.go +607 -0
- package/internal/client/suggest.go +105 -2
- package/internal/client/suggest_test.go +86 -0
- package/internal/client/team_flags.go +25 -11
- package/internal/client/team_flags_test.go +39 -0
- package/internal/client/testmain_test.go +88 -0
- package/internal/client/workspace_default_test.go +158 -0
- package/internal/client/workspacelockenv_test.go +54 -0
- package/internal/config/config.go +48 -0
- package/internal/judge/judge.go +315 -0
- package/internal/requirements/bootstrap.go +16 -0
- package/internal/requirements/consolidate.go +100 -9
- package/internal/requirements/doc.go +154 -3
- package/internal/requirements/graph.go +138 -0
- package/internal/requirements/memory.go +7 -0
- package/internal/requirements/modules.go +312 -0
- package/internal/requirements/modules_test.go +373 -0
- package/internal/requirements/relations.go +155 -0
- package/internal/requirements/relations_test.go +231 -0
- package/internal/requirements/requirements.go +10 -0
- package/internal/requirements/shots.go +418 -0
- package/internal/requirements/shots_test.go +387 -0
- package/internal/session/multiclient_test.go +368 -0
- package/internal/session/session.go +175 -11
- package/internal/session/session_test.go +7 -0
- package/internal/session/status.go +21 -0
- package/internal/session/status_test.go +28 -0
- package/internal/session/title.go +16 -0
- package/internal/session/title_test.go +26 -0
- package/internal/session/workspace_lock.go +265 -28
- package/internal/suggest/suggest.go +23 -1
- package/internal/team/event.go +3 -1
- package/internal/team/execute.go +21 -6
- package/internal/team/fallback_route_test.go +80 -0
- package/internal/team/planner.go +15 -3
- package/internal/team/route.go +89 -17
- package/internal/team/team.go +18 -4
- package/npm/apk/magic-agent-mobile-release.apk +0 -0
- package/npm/apk/version.json +6 -3
- package/npm/dist/darwin-arm64/magic-agent +0 -0
- package/npm/dist/darwin-arm64/magic-client +0 -0
- package/npm/dist/darwin-x64/magic-agent +0 -0
- package/npm/dist/darwin-x64/magic-client +0 -0
- package/npm/dist/linux-arm64/magic-agent +0 -0
- package/npm/dist/linux-arm64/magic-client +0 -0
- package/npm/dist/linux-x64/magic-agent +0 -0
- package/npm/dist/linux-x64/magic-client +0 -0
- package/npm/dist/win32-x64/magic-agent.exe +0 -0
- package/npm/dist/win32-x64/magic-client.exe +0 -0
- package/npm/install.js +11 -0
- package/package.json +14 -3
|
@@ -77,7 +77,9 @@
|
|
|
77
77
|
|
|
78
78
|
.md-body li::marker{color:var(--cinnabar-hi);font-family:var(--mono);font-size:.9em}
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
/* 链接色 = var(--syntax-teal)(默认仍是这份绿松石):深色覆盖要把「Running」那类案头链接换成琥珀,
|
|
81
|
+
与代码里的字符串共用一个「青」的落点,浅色两个值都等于原值、一个像素不变。 */
|
|
82
|
+
.md-body a{color:#0F766E;color:var(--syntax-teal,#0F766E);text-decoration:none;border-bottom:1px dotted rgba(15,118,110,.4);
|
|
81
83
|
word-break:break-all;transition:.15s}
|
|
82
84
|
|
|
83
85
|
.md-body a:hover{color:var(--paper);border-bottom-color:var(--paper)}
|
|
@@ -157,8 +159,9 @@
|
|
|
157
159
|
.md-body .hljs-keyword,.md-body .hljs-selector-tag,.md-body .hljs-literal,
|
|
158
160
|
.md-body .hljs-section,.md-body .hljs-link{color:#B91C1C}
|
|
159
161
|
|
|
162
|
+
/* 字符串色走 --syntax-teal(默认 = 下面这份绿松石,宿主可覆盖;深色覆盖不再自带薄荷绿)。 */
|
|
160
163
|
.md-body .hljs-string,.md-body .hljs-attr,.md-body .hljs-template-tag,
|
|
161
|
-
.md-body .hljs-addition{color:#0F766E}
|
|
164
|
+
.md-body .hljs-addition{color:#0F766E;color:var(--syntax-teal,#0F766E)}
|
|
162
165
|
|
|
163
166
|
.md-body .hljs-number,.md-body .hljs-built_in,.md-body .hljs-type,
|
|
164
167
|
.md-body .hljs-params,.md-body .hljs-meta{color:#92670A}
|
|
@@ -243,96 +246,96 @@
|
|
|
243
246
|
|
|
244
247
|
.qa-t.md-body img:hover{filter:brightness(1.05)}
|
|
245
248
|
|
|
246
|
-
[data-theme="dark"] .qa-t.md-body code{background
|
|
249
|
+
[data-theme="dark"] .qa-t.md-body code{background:var(--md-code-bg);color:var(--ink-soft)}
|
|
247
250
|
|
|
248
|
-
[data-theme="dark"] .qa-t.md-body pre{background
|
|
251
|
+
[data-theme="dark"] .qa-t.md-body pre{background:var(--subtle);border-color:var(--md-border)}
|
|
249
252
|
|
|
250
|
-
[data-theme="dark"] .qa-t.md-body pre code{color
|
|
253
|
+
[data-theme="dark"] .qa-t.md-body pre code{color:var(--ink-soft)}
|
|
251
254
|
|
|
252
|
-
[data-theme="dark"] .qa-t.md-body th{background:rgba(
|
|
255
|
+
[data-theme="dark"] .qa-t.md-body th{background:rgba(242,251,245,.05)}
|
|
253
256
|
|
|
254
|
-
[data-theme="dark"] .qa-t.md-body td,[data-theme="dark"] .qa-t.md-body th{border-color
|
|
257
|
+
[data-theme="dark"] .qa-t.md-body td,[data-theme="dark"] .qa-t.md-body th{border-color:var(--md-border)}
|
|
255
258
|
|
|
256
|
-
[data-theme="dark"] .qa-t.md-body blockquote{background:rgba(
|
|
259
|
+
[data-theme="dark"] .qa-t.md-body blockquote{background:rgba(242,251,245,.04);border-color:var(--md-border)}
|
|
257
260
|
|
|
258
|
-
[data-theme="dark"] .qa-t.md-body blockquote p{color
|
|
261
|
+
[data-theme="dark"] .qa-t.md-body blockquote p{color:var(--muted)}
|
|
259
262
|
|
|
260
|
-
[data-theme="dark"] .md-body code{background
|
|
263
|
+
[data-theme="dark"] .md-body code{background:var(--md-code-bg);border-color:var(--md-border);color:var(--ink-soft)}
|
|
261
264
|
|
|
262
|
-
[data-theme="dark"] .md-body pre{background
|
|
265
|
+
[data-theme="dark"] .md-body pre{background:var(--subtle);border-color:var(--md-border)}
|
|
263
266
|
|
|
264
|
-
[data-theme="dark"] .md-body .md-mermaid{background
|
|
267
|
+
[data-theme="dark"] .md-body .md-mermaid{background:var(--subtle);border-color:var(--md-border)}
|
|
265
268
|
|
|
266
|
-
[data-theme="dark"] .md-body pre code{color
|
|
269
|
+
[data-theme="dark"] .md-body pre code{color:var(--ink-soft)}
|
|
267
270
|
|
|
268
|
-
[data-theme="dark"] .md-body pre code.hljs{color
|
|
271
|
+
[data-theme="dark"] .md-body pre code.hljs{color:var(--ink-soft)}
|
|
269
272
|
|
|
270
|
-
[data-theme="dark"] .md-body a{color
|
|
273
|
+
[data-theme="dark"] .md-body a{color:var(--amber)}
|
|
271
274
|
|
|
272
|
-
[data-theme="dark"] .md-body a:hover{color
|
|
275
|
+
[data-theme="dark"] .md-body a:hover{color:var(--ink);border-bottom-color:var(--ink)}
|
|
273
276
|
|
|
274
|
-
[data-theme="dark"] .md-body th{background:rgba(
|
|
277
|
+
[data-theme="dark"] .md-body th{background:rgba(242,251,245,.05)}
|
|
275
278
|
|
|
276
279
|
[data-theme="dark"] .md-body td,
|
|
277
|
-
[data-theme="dark"] .md-body th{border-color
|
|
280
|
+
[data-theme="dark"] .md-body th{border-color:var(--md-border)}
|
|
278
281
|
|
|
279
|
-
[data-theme="dark"] .md-body tbody tr:nth-child(even){background:rgba(
|
|
282
|
+
[data-theme="dark"] .md-body tbody tr:nth-child(even){background:rgba(242,251,245,.03)}
|
|
280
283
|
|
|
281
|
-
[data-theme="dark"] .md-body blockquote{background:rgba(
|
|
284
|
+
[data-theme="dark"] .md-body blockquote{background:rgba(var(--warning-rgb),.10)}
|
|
282
285
|
|
|
283
|
-
[data-theme="dark"] .md-body hr{border-color
|
|
286
|
+
[data-theme="dark"] .md-body hr{border-color:var(--md-border)}
|
|
284
287
|
|
|
285
|
-
[data-theme="dark"] .md-body img{border-color
|
|
288
|
+
[data-theme="dark"] .md-body img{border-color:var(--md-border)}
|
|
286
289
|
|
|
287
290
|
[data-theme="dark"] .md-body .hljs-comment,
|
|
288
|
-
[data-theme="dark"] .md-body .hljs-quote{color
|
|
291
|
+
[data-theme="dark"] .md-body .hljs-quote{color:var(--muted)}
|
|
289
292
|
|
|
290
293
|
[data-theme="dark"] .md-body .hljs-keyword,
|
|
291
294
|
[data-theme="dark"] .md-body .hljs-selector-tag,
|
|
292
295
|
[data-theme="dark"] .md-body .hljs-literal,
|
|
293
296
|
[data-theme="dark"] .md-body .hljs-section,
|
|
294
|
-
[data-theme="dark"] .md-body .hljs-link{color
|
|
297
|
+
[data-theme="dark"] .md-body .hljs-link{color:var(--fail)}
|
|
295
298
|
|
|
296
299
|
[data-theme="dark"] .md-body .hljs-string,
|
|
297
300
|
[data-theme="dark"] .md-body .hljs-attr,
|
|
298
301
|
[data-theme="dark"] .md-body .hljs-template-tag,
|
|
299
|
-
[data-theme="dark"] .md-body .hljs-addition{color
|
|
302
|
+
[data-theme="dark"] .md-body .hljs-addition{color:var(--syntax-teal)}
|
|
300
303
|
|
|
301
304
|
[data-theme="dark"] .md-body .hljs-number,
|
|
302
305
|
[data-theme="dark"] .md-body .hljs-built_in,
|
|
303
306
|
[data-theme="dark"] .md-body .hljs-type,
|
|
304
307
|
[data-theme="dark"] .md-body .hljs-params,
|
|
305
|
-
[data-theme="dark"] .md-body .hljs-meta{color
|
|
308
|
+
[data-theme="dark"] .md-body .hljs-meta{color:var(--amber)}
|
|
306
309
|
|
|
307
310
|
[data-theme="dark"] .md-body .hljs-title,
|
|
308
311
|
[data-theme="dark"] .md-body .hljs-title.function_,
|
|
309
312
|
[data-theme="dark"] .md-body .hljs-title.class_,
|
|
310
313
|
[data-theme="dark"] .md-body .hljs-name,
|
|
311
314
|
[data-theme="dark"] .md-body .hljs-selector-id,
|
|
312
|
-
[data-theme="dark"] .md-body .hljs-selector-class{color
|
|
315
|
+
[data-theme="dark"] .md-body .hljs-selector-class{color:var(--amber)}
|
|
313
316
|
|
|
314
317
|
[data-theme="dark"] .md-body .hljs-variable,
|
|
315
318
|
[data-theme="dark"] .md-body .hljs-template-variable,
|
|
316
319
|
[data-theme="dark"] .md-body .hljs-attribute,
|
|
317
320
|
[data-theme="dark"] .md-body .hljs-tag,
|
|
318
|
-
[data-theme="dark"] .md-body .hljs-regexp{color
|
|
321
|
+
[data-theme="dark"] .md-body .hljs-regexp{color:var(--amber)}
|
|
319
322
|
|
|
320
323
|
[data-theme="dark"] .md-body .hljs-symbol,
|
|
321
324
|
[data-theme="dark"] .md-body .hljs-bullet,
|
|
322
325
|
[data-theme="dark"] .md-body .hljs-doctag,
|
|
323
|
-
[data-theme="dark"] .md-body .hljs-deletion{color
|
|
326
|
+
[data-theme="dark"] .md-body .hljs-deletion{color:var(--amber)}
|
|
324
327
|
|
|
325
|
-
[data-theme="dark"] .md-body li.task-li .bx{border-color
|
|
328
|
+
[data-theme="dark"] .md-body li.task-li .bx{border-color:var(--faint)}
|
|
326
329
|
|
|
327
|
-
[data-theme="dark"] .md-body li.task-li.done .bx{background:rgba(
|
|
330
|
+
[data-theme="dark"] .md-body li.task-li.done .bx{background:rgba(var(--success-rgb),.18);border-color:rgba(var(--success-rgb),.52);color:var(--success)}
|
|
328
331
|
|
|
329
|
-
[data-theme="dark"] .qa-t.md-body a{color
|
|
332
|
+
[data-theme="dark"] .qa-t.md-body a{color:var(--amber)}
|
|
330
333
|
|
|
331
|
-
[data-theme="dark"] .qa-t.md-body a:hover{color
|
|
334
|
+
[data-theme="dark"] .qa-t.md-body a:hover{color:var(--ink)}
|
|
332
335
|
|
|
333
|
-
[data-theme="dark"] .qa-t.md-body hr{border-color
|
|
336
|
+
[data-theme="dark"] .qa-t.md-body hr{border-color:var(--md-border)}
|
|
334
337
|
|
|
335
|
-
[data-theme="dark"] .qa-t.md-body img{border-color
|
|
338
|
+
[data-theme="dark"] .qa-t.md-body img{border-color:var(--md-border)}
|
|
336
339
|
|
|
337
340
|
.qa-t.md-body h2{font-size:16.5px}
|
|
338
341
|
|
|
@@ -392,7 +395,14 @@
|
|
|
392
395
|
|
|
393
396
|
.qa-dotgap.on{background:var(--cinnabar-hi)}
|
|
394
397
|
|
|
395
|
-
[data-theme="dark"] .qa-dotgap{background
|
|
398
|
+
[data-theme="dark"] .qa-dotgap{background:var(--faint)}
|
|
399
|
+
|
|
400
|
+
/* 分页点的「当前页」:浅色 d 那行用的是珊瑚 --cinnabar-hi(ZCode 的朱砂),
|
|
401
|
+
深色覆盖没写它 → 会从浅色那份继承过来,在墨绿底上留下唯一一处珊瑚橙。
|
|
402
|
+
深色统一到「进行中」的琥珀(.qa-dot.on / .qa-dotgap.on 两处)。 */
|
|
403
|
+
[data-theme="dark"] .qa-dot.on{background:var(--amber)}
|
|
404
|
+
|
|
405
|
+
[data-theme="dark"] .qa-dotgap.on{background:var(--amber)}
|
|
396
406
|
|
|
397
407
|
.qa-msg.qa-jump .qa-bd{animation:qaJumpFlash 1.2s ease-out 1}
|
|
398
408
|
|
|
@@ -400,9 +410,9 @@
|
|
|
400
410
|
|
|
401
411
|
@media (prefers-reduced-motion: reduce){.qa-msg.qa-jump .qa-bd{animation:none}}
|
|
402
412
|
|
|
403
|
-
[data-theme="dark"] .qa-dot:not(.on){background
|
|
413
|
+
[data-theme="dark"] .qa-dot:not(.on){background:var(--faint)}
|
|
404
414
|
|
|
405
|
-
[data-theme="dark"] .qa-dot:hover:not(.on){background
|
|
415
|
+
[data-theme="dark"] .qa-dot:hover:not(.on){background:var(--muted)}
|
|
406
416
|
|
|
407
417
|
@media (prefers-reduced-motion: reduce){.qa-dot{transition:none}}
|
|
408
418
|
|
|
@@ -459,18 +469,18 @@
|
|
|
459
469
|
user-select:none;white-space:nowrap}
|
|
460
470
|
.qa-hosted-tag::before{content:"";width:4px;height:4px;border-radius:50%;
|
|
461
471
|
background:currentColor;flex:0 0 auto}
|
|
462
|
-
[data-theme="dark"] .qa-msg.qa-hosted .qa-bd{background
|
|
463
|
-
[data-theme="dark"] .qa-hosted-tag{background:rgba(
|
|
472
|
+
[data-theme="dark"] .qa-msg.qa-hosted .qa-bd{background:rgba(var(--warning-rgb),.14);border-color:color-mix(in srgb, var(--amber) 45%, transparent)}
|
|
473
|
+
[data-theme="dark"] .qa-hosted-tag{background:rgba(var(--warning-rgb),.20);color:var(--amber)}
|
|
464
474
|
/* 排队中的用户气泡(`is-queued`):已经发出去、但还在等前一轮跑完。
|
|
465
475
|
气泡照常可读(用户要能确认自己写的是什么),只把底色压淡 + 虚线边 + 底下补一行
|
|
466
476
|
「排队中 · 上一轮结束后自动发送」—— **不隐藏、不挪走**,否则就是这次报障的
|
|
467
477
|
「追问没在对话区显示」。虚线边框同时说明它不是「已送达」那种实心状态。 */
|
|
468
|
-
.qa-msg.qa-mine.is-queued .qa-bd{border-style:dashed;border-color:var(--queued
|
|
478
|
+
.qa-msg.qa-mine.is-queued .qa-bd{border-style:dashed;border-color:var(--queued);
|
|
469
479
|
background:linear-gradient(180deg,#FAF7FF,#F3EEFF)}
|
|
470
480
|
.qa-msg.qa-mine.is-queued .qa-bd::after{content:"排队中 · 上一轮结束后自动发送";
|
|
471
|
-
display:block;margin-top:6px;font-size:11.5px;line-height:15px;color:var(--queued
|
|
472
|
-
[data-theme="dark"] .qa-msg.qa-mine.is-queued .qa-bd{background
|
|
473
|
-
[data-theme="dark"] .qa-msg.qa-mine.is-queued .qa-bd::after{color
|
|
481
|
+
display:block;margin-top:6px;font-size:11.5px;line-height:15px;color:var(--queued)}
|
|
482
|
+
[data-theme="dark"] .qa-msg.qa-mine.is-queued .qa-bd{background:color-mix(in srgb, var(--amber) 9%, var(--raised));border-color:var(--queued)}
|
|
483
|
+
[data-theme="dark"] .qa-msg.qa-mine.is-queued .qa-bd::after{color:var(--queued)}
|
|
474
484
|
/* 排队期间被取消(`is-cancelled`):气泡留着当回执,但明确说它不会被执行。
|
|
475
485
|
用灰色虚线而不是红色 —— 用户自己撤的,不是失败,别用报错的颜色吓人。 */
|
|
476
486
|
.qa-msg.qa-mine.is-cancelled .qa-bd{border-style:dashed;border-color:var(--line);
|
|
@@ -498,7 +508,7 @@
|
|
|
498
508
|
|
|
499
509
|
.qa-fold-btn:hover{border-color:#A8A29E;color:var(--paper)}
|
|
500
510
|
|
|
501
|
-
[data-theme="dark"] .qa-fold-btn{background
|
|
511
|
+
[data-theme="dark"] .qa-fold-btn{background:var(--subtle);border-color:var(--md-border);color:var(--ink-soft)}
|
|
502
512
|
|
|
503
513
|
.qa-revshots img{max-width:150px;max-height:104px}
|
|
504
514
|
|
|
@@ -549,6 +559,33 @@
|
|
|
549
559
|
|
|
550
560
|
.qa-art-video video{display:block;max-width:280px;max-height:190px;background:#000}
|
|
551
561
|
|
|
562
|
+
/* HTML 产物卡:iframe 就地预览(2026-10-24)—— 固定尺寸与视频同一档,可滚动看整页。
|
|
563
|
+
缩略 iframe 关掉指针事件(点击不冒泡出 iframe,关了才能「点卡片看大图」),光标用放大镜。 */
|
|
564
|
+
.qa-art-html{cursor:zoom-in}
|
|
565
|
+
|
|
566
|
+
.qa-art-html iframe{display:block;width:280px;height:190px;border:0;background:#fff;pointer-events:none}
|
|
567
|
+
|
|
568
|
+
.qa-arts-html{display:grid;grid-template-columns:repeat(auto-fill,280px);gap:8px}
|
|
569
|
+
|
|
570
|
+
.qa-arts-html .qa-art-html{width:280px}
|
|
571
|
+
|
|
572
|
+
.qa-arts-html .qa-art-cap{max-width:none}
|
|
573
|
+
|
|
574
|
+
/* HTML 产物全屏预览层(点击卡片弹出,内核自画,见 19-attachments 的 __qaArtHtmlPeek):
|
|
575
|
+
深蒙层 + 顶条(文件名 / 关闭)+ 撑满余下的 iframe。 */
|
|
576
|
+
.qa-art-html-peek{position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;
|
|
577
|
+
gap:8px;padding:20px;background:rgba(28,25,23,.62)}
|
|
578
|
+
|
|
579
|
+
.qa-art-html-peek-bar{display:flex;align-items:center;gap:10px}
|
|
580
|
+
|
|
581
|
+
.qa-art-html-peek-t{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
|
|
582
|
+
font-family:var(--mono);font-size:12px;color:#F5F4F3}
|
|
583
|
+
|
|
584
|
+
.qa-art-html-peek-x{flex:0 0 auto;padding:3px 12px;border-radius:8px;border:1px solid rgba(245,244,243,.35);
|
|
585
|
+
background:transparent;color:#F5F4F3;font-size:12px;cursor:pointer}
|
|
586
|
+
|
|
587
|
+
.qa-art-html-peek iframe{flex:1 1 auto;width:100%;border:0;border-radius:10px;background:#fff}
|
|
588
|
+
|
|
552
589
|
.qa-art audio{display:block;width:260px;margin:8px}
|
|
553
590
|
|
|
554
591
|
.qa-art-cap{display:flex;align-items:center;gap:7px;padding:6px 9px;max-width:280px;
|
|
@@ -586,11 +623,11 @@
|
|
|
586
623
|
|
|
587
624
|
.qa-art:hover .qa-art-go{opacity:1}
|
|
588
625
|
|
|
589
|
-
[data-theme="dark"] .qa-art{background:rgba(
|
|
626
|
+
[data-theme="dark"] .qa-art{background:rgba(242,251,245,.03);border-color:var(--md-border)}
|
|
590
627
|
|
|
591
628
|
[data-theme="dark"] .qa-art:hover{border-color:var(--cinnabar-hi)}
|
|
592
629
|
|
|
593
|
-
[data-theme="dark"] .qa-art-ext{background:rgba(
|
|
630
|
+
[data-theme="dark"] .qa-art-ext{background:rgba(var(--warning-rgb),.16);border-color:rgba(var(--warning-rgb),.30)}
|
|
594
631
|
|
|
595
632
|
.qa-msg.qa-mine .qa-arts,.qa-msg.qa-sim .qa-arts{justify-content:flex-end}
|
|
596
633
|
|
|
@@ -741,9 +778,9 @@
|
|
|
741
778
|
|
|
742
779
|
.qa-turn-bd > .qa-think:first-child,.qa-turn-bd > .qa-tools:first-child{margin-top:0}
|
|
743
780
|
|
|
744
|
-
[data-theme="dark"] .qa-turn{border-color
|
|
781
|
+
[data-theme="dark"] .qa-turn{border-color:var(--md-border);background:rgba(242,251,245,.02)}
|
|
745
782
|
|
|
746
|
-
[data-theme="dark"] .qa-turn-sum:hover{background:rgba(
|
|
783
|
+
[data-theme="dark"] .qa-turn-sum:hover{background:rgba(242,251,245,.05)}
|
|
747
784
|
|
|
748
785
|
.qa-tool{margin:3px 0 1px;border:1px solid var(--line);border-radius:10px;
|
|
749
786
|
background:#FCFBF9;overflow:hidden;transition:background .25s,border-color .25s}
|
|
@@ -864,7 +901,7 @@
|
|
|
864
901
|
stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
|
|
865
902
|
|
|
866
903
|
.qa-ask-tag{font-family:var(--mono);font-size:9px;letter-spacing:.06em;padding:1.5px 7px;
|
|
867
|
-
border-radius:99px;border:1px solid
|
|
904
|
+
border-radius:99px;border:1px solid color-mix(in srgb, var(--indigo) 28%, transparent);color:var(--indigo);background:var(--halo-indigo)}
|
|
868
905
|
|
|
869
906
|
.qa-ask-ttl{font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--paper-mute);margin-left:auto}
|
|
870
907
|
|
|
@@ -883,7 +920,7 @@
|
|
|
883
920
|
padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:#fff;font:inherit;
|
|
884
921
|
cursor:pointer;transition:border-color .18s,background .18s}
|
|
885
922
|
|
|
886
|
-
.qa-ask-opt:hover{border-color:
|
|
923
|
+
.qa-ask-opt:hover{border-color:color-mix(in srgb, var(--indigo) 45%, transparent);background:var(--halo-indigo)}
|
|
887
924
|
|
|
888
925
|
.qa-ask-opt .mk{width:15px;height:15px;flex:none;margin-top:1px;border-radius:5px;
|
|
889
926
|
border:1.5px solid var(--line);display:grid;place-items:center;color:var(--paper-mute)}
|
|
@@ -910,18 +947,18 @@
|
|
|
910
947
|
.qa-ask-other input{flex:1;min-width:0;padding:6px 9px;border:1px solid var(--line);
|
|
911
948
|
border-radius:8px;background:#fff;font-family:var(--serif);font-size:12px;color:var(--paper)}
|
|
912
949
|
|
|
913
|
-
.qa-ask-other input:focus{outline:none;border-color:
|
|
950
|
+
.qa-ask-other input:focus{outline:none;border-color:color-mix(in srgb, var(--indigo) 50%, transparent)}
|
|
914
951
|
|
|
915
952
|
.qa-ask-other button{flex:none;padding:6px 12px;border:1px solid var(--line);border-radius:8px;
|
|
916
953
|
background:#fff;font-family:var(--serif);font-size:12px;color:var(--paper-dim);cursor:pointer}
|
|
917
954
|
|
|
918
|
-
.qa-ask-other button:hover{border-color:
|
|
955
|
+
.qa-ask-other button:hover{border-color:color-mix(in srgb, var(--indigo) 45%, transparent);color:var(--indigo)}
|
|
919
956
|
|
|
920
957
|
.qa-ask-ft{display:flex;align-items:center;gap:8px;margin-top:8px}
|
|
921
958
|
|
|
922
959
|
.qa-ask-ft[hidden],.qa-ask-ans[hidden]{display:none}
|
|
923
960
|
|
|
924
|
-
.qa-ask-sub{flex:none;padding:5px 14px;border:1px solid
|
|
961
|
+
.qa-ask-sub{flex:none;padding:5px 14px;border:1px solid color-mix(in srgb, var(--indigo) 40%, transparent);border-radius:99px;
|
|
925
962
|
background:var(--halo-indigo);font-family:var(--serif);font-size:12px;color:var(--indigo);cursor:pointer}
|
|
926
963
|
|
|
927
964
|
.qa-ask-sub:disabled{opacity:.4;cursor:default;border-color:var(--line);background:transparent;
|
|
@@ -988,6 +1025,72 @@
|
|
|
988
1025
|
|
|
989
1026
|
.qa-done.err{color:var(--cinnabar-hi)}
|
|
990
1027
|
|
|
1028
|
+
/* 错误显示卡(终态失败):朱砂描边 + 淡红底的卡片面(见 29-msg-variants 的 qaErrorCardNode)。
|
|
1029
|
+
⚠️ 根节点带 `.qa-done` 类(收尾行契约要数它),这里把它从「等宽灰字行」翻成「块级卡片」:
|
|
1030
|
+
display:block 盖掉 `.qa-done` 的 flex 行布局;颜色交给子元素,根只留卡片面。 */
|
|
1031
|
+
.qa-errcard{display:block;margin:8px 0 4px;padding:10px 12px;
|
|
1032
|
+
border:1px solid rgba(214,64,42,.38);border-radius:var(--r-md);background:rgba(214,64,42,.06)}
|
|
1033
|
+
|
|
1034
|
+
.qa-errcard + .qa-errcard{margin-top:0}
|
|
1035
|
+
|
|
1036
|
+
.qa-ec-hd{display:flex;align-items:center;gap:8px}
|
|
1037
|
+
|
|
1038
|
+
.qa-ec-ico{width:16px;height:16px;flex:none;display:grid;place-items:center;color:var(--cinnabar-hi)}
|
|
1039
|
+
|
|
1040
|
+
.qa-ec-ico svg{width:15px;height:15px;display:block;stroke:currentColor;fill:none;
|
|
1041
|
+
stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
|
|
1042
|
+
|
|
1043
|
+
.qa-ec-tt{flex:1;min-width:0;font-family:var(--font);font-size:13px;font-weight:600;color:var(--cinnabar-hi)}
|
|
1044
|
+
|
|
1045
|
+
.qa-ec-bd{margin-top:8px}
|
|
1046
|
+
|
|
1047
|
+
.qa-ec-reason{margin:0;font-size:12.5px;line-height:1.6;color:var(--paper-dim);
|
|
1048
|
+
white-space:pre-wrap;word-break:break-word}
|
|
1049
|
+
|
|
1050
|
+
.qa-ec-meta{margin-top:6px;font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--paper-mute)}
|
|
1051
|
+
|
|
1052
|
+
/* 卡片里的可展开详情(复用 .qa-mk 词汇);把它的左缩进让出来,贴着卡片内边距更顺 */
|
|
1053
|
+
.qa-errcard .qa-mk{margin:8px 0 0}
|
|
1054
|
+
|
|
1055
|
+
.qa-errcard .qa-mk-bd{padding-left:2px}
|
|
1056
|
+
|
|
1057
|
+
/* 额度 / 限流提示卡(2026-10-25,见 29-msg-variants 的 qaQuotaCardNode)----------
|
|
1058
|
+
与朱砂「调用失败」卡**刻意分开配色**:额度用尽不是故障(不用修配置),
|
|
1059
|
+
是「等一会儿 / 换个模型」就能继续的状态 —— 涂成错误红会把人引到错误的自救动作上。
|
|
1060
|
+
形态走「左侧琥珀竖条 + 完整三行」(时刻 / 原因 / 建议),与需求看板的 .reqerr 同一范式。
|
|
1061
|
+
⚠️ 色板只用 `--amber`:PC 皮肤(client-ui/pc/app.css)**只有 --amber**,没有
|
|
1062
|
+
--warning / --raised;面与边用 color-mix 淡出,明暗两套主题各自解得对。 */
|
|
1063
|
+
.qa-errcard.qa-quota{
|
|
1064
|
+
border-color:color-mix(in srgb,var(--amber) 42%,transparent);
|
|
1065
|
+
border-left:3px solid color-mix(in srgb,var(--amber) 70%,transparent);
|
|
1066
|
+
padding-left:10px;
|
|
1067
|
+
background:color-mix(in srgb,var(--amber) 8%,transparent)}
|
|
1068
|
+
|
|
1069
|
+
.qa-quota .qa-ec-ico{color:var(--amber)}
|
|
1070
|
+
|
|
1071
|
+
.qa-quota .qa-ec-tt{color:color-mix(in srgb,var(--amber) 72%,var(--paper))}
|
|
1072
|
+
|
|
1073
|
+
/* 抬头右侧那枚小徽章(额度不足 / 已被限流):等宽小字 + 琥珀描边,与 .qa-st 同一档字号 */
|
|
1074
|
+
.qa-qc-badge{flex:none;display:inline-flex;align-items:center;height:15px;padding:0 5px;
|
|
1075
|
+
border:1px solid color-mix(in srgb,var(--amber) 42%,transparent);border-radius:var(--r-xs);
|
|
1076
|
+
background:color-mix(in srgb,var(--amber) 12%,transparent);
|
|
1077
|
+
font-family:var(--mono);font-size:9px;letter-spacing:.06em;white-space:nowrap;color:var(--amber)}
|
|
1078
|
+
|
|
1079
|
+
/* 「什么时候恢复」:时刻加粗(用户此刻只想知道这一个数),相对时间跟在后面 */
|
|
1080
|
+
.qa-qc-reset{margin:6px 0 0;font-size:12.5px;line-height:1.6;color:var(--paper-dim)}
|
|
1081
|
+
|
|
1082
|
+
.qa-qc-reset b{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--amber)}
|
|
1083
|
+
|
|
1084
|
+
/* 「该怎么办」:**和原因同色**(不降档)—— 实测亮色主题下用 --paper-mute(#94A3B8)
|
|
1085
|
+
落在淡琥珀底上只有 ~2.3:1,那句话恰恰是这张卡里唯一「能照着做」的内容,糊了就白写了。 */
|
|
1086
|
+
.qa-qc-hint{margin:4px 0 0;font-size:12px;line-height:1.55;color:var(--paper-dim)}
|
|
1087
|
+
|
|
1088
|
+
[data-theme="dark"] .qa-errcard.qa-quota{background:color-mix(in srgb,var(--amber) 14%,transparent)}
|
|
1089
|
+
|
|
1090
|
+
[data-theme="dark"] .qa-errcard{background:rgba(var(--fail-rgb),.14);border-color:rgba(var(--fail-rgb),.42)}
|
|
1091
|
+
|
|
1092
|
+
[data-theme="dark"] .qa-ec-reason{color:var(--ink-soft)}
|
|
1093
|
+
|
|
991
1094
|
.qa-reqacts{display:flex;flex-wrap:wrap;gap:8px;padding:10px 2px 2px;justify-content:flex-start}
|
|
992
1095
|
|
|
993
1096
|
.qa-reqacts button{font-family:var(--mono);font-size:11px;letter-spacing:.04em;padding:5px 12px;
|
|
@@ -1004,183 +1107,217 @@
|
|
|
1004
1107
|
|
|
1005
1108
|
.qa-reqacts button.go:hover{background:rgba(214,64,42,.12)}
|
|
1006
1109
|
|
|
1007
|
-
[data-theme="dark"] .qa-reqacts button{background
|
|
1110
|
+
[data-theme="dark"] .qa-reqacts button{background:var(--subtle);border-color:var(--md-border);color:var(--ink-soft)}
|
|
1008
1111
|
|
|
1009
|
-
[data-theme="dark"] .qa-reqacts button.ok{color
|
|
1112
|
+
[data-theme="dark"] .qa-reqacts button.ok{color:var(--success);border-color:rgba(var(--success-rgb),.45);background:rgba(var(--success-rgb),.12)}
|
|
1010
1113
|
|
|
1011
|
-
[data-theme="dark"] .qa-reqacts button.ok:hover{background:rgba(
|
|
1114
|
+
[data-theme="dark"] .qa-reqacts button.ok:hover{background:rgba(var(--success-rgb),.20)}
|
|
1012
1115
|
|
|
1013
|
-
[data-theme="dark"] .qa-reqacts button.go{color
|
|
1116
|
+
[data-theme="dark"] .qa-reqacts button.go{color:var(--amber);border-color:rgba(var(--warning-rgb),.45);background:rgba(var(--warning-rgb),.14)}
|
|
1014
1117
|
|
|
1015
|
-
[data-theme="dark"] .qa-reqacts button.go:hover{background:rgba(
|
|
1118
|
+
[data-theme="dark"] .qa-reqacts button.go:hover{background:rgba(var(--warning-rgb),.22)}
|
|
1016
1119
|
|
|
1017
|
-
[data-theme="dark"] .qa-stream{background
|
|
1120
|
+
[data-theme="dark"] .qa-stream{background:var(--subtle)}
|
|
1018
1121
|
|
|
1019
|
-
[data-theme="dark"] .qa-scroll::-webkit-scrollbar-thumb{background
|
|
1122
|
+
[data-theme="dark"] .qa-scroll::-webkit-scrollbar-thumb{background:var(--md-border);border-color:var(--subtle)}
|
|
1020
1123
|
|
|
1021
|
-
[data-theme="dark"] .qa-msg{color
|
|
1124
|
+
[data-theme="dark"] .qa-msg{color:var(--ink-soft)}
|
|
1022
1125
|
|
|
1023
|
-
[data-theme="dark"] .qa-t{color
|
|
1126
|
+
[data-theme="dark"] .qa-t{color:var(--ink)}
|
|
1024
1127
|
|
|
1025
|
-
[data-theme="dark"] .qa-t.md-body code{background
|
|
1128
|
+
[data-theme="dark"] .qa-t.md-body code{background:var(--md-code-bg);color:var(--ink-soft)}
|
|
1026
1129
|
|
|
1027
|
-
[data-theme="dark"] .qa-t.md-body pre{background
|
|
1130
|
+
[data-theme="dark"] .qa-t.md-body pre{background:var(--subtle);border-color:var(--md-border)}
|
|
1028
1131
|
|
|
1029
|
-
[data-theme="dark"] .qa-t.md-body pre code{color
|
|
1132
|
+
[data-theme="dark"] .qa-t.md-body pre code{color:var(--ink-soft)}
|
|
1030
1133
|
|
|
1031
|
-
[data-theme="dark"] .qa-t.md-body th{background:rgba(
|
|
1134
|
+
[data-theme="dark"] .qa-t.md-body th{background:rgba(242,251,245,.05)}
|
|
1032
1135
|
|
|
1033
|
-
[data-theme="dark"] .qa-t.md-body td,[data-theme="dark"] .qa-t.md-body th{border-color
|
|
1136
|
+
[data-theme="dark"] .qa-t.md-body td,[data-theme="dark"] .qa-t.md-body th{border-color:var(--md-border)}
|
|
1034
1137
|
|
|
1035
|
-
[data-theme="dark"] .qa-t.md-body blockquote{background:rgba(
|
|
1138
|
+
[data-theme="dark"] .qa-t.md-body blockquote{background:rgba(242,251,245,.04);border-color:var(--md-border)}
|
|
1036
1139
|
|
|
1037
|
-
[data-theme="dark"] .qa-t.md-body blockquote p{color
|
|
1140
|
+
[data-theme="dark"] .qa-t.md-body blockquote p{color:var(--muted)}
|
|
1038
1141
|
|
|
1039
|
-
[data-theme="dark"] .qa-msg.qa-mine .qa-bd{background
|
|
1142
|
+
[data-theme="dark"] .qa-msg.qa-mine .qa-bd{background:var(--subtle);border-color:var(--md-border)}
|
|
1040
1143
|
/* 放在上面那条**之后**:同为 4 个类级选择器,靠后才会赢(托管气泡的暗色底不被盖回灰)。 */
|
|
1041
|
-
[data-theme="dark"] .qa-msg.qa-hosted .qa-bd{background
|
|
1144
|
+
[data-theme="dark"] .qa-msg.qa-hosted .qa-bd{background:rgba(var(--warning-rgb),.14);border-color:color-mix(in srgb, var(--amber) 45%, transparent)}
|
|
1042
1145
|
|
|
1043
|
-
[data-theme="dark"] .qa-av-txt{background:linear-gradient(180deg
|
|
1146
|
+
[data-theme="dark"] .qa-av-txt{background:linear-gradient(180deg,color-mix(in srgb,var(--muted) 18%,var(--raised)),var(--raised))}
|
|
1044
1147
|
|
|
1045
|
-
[data-theme="dark"] .qa-av-txt.qa-av-rev{background:linear-gradient(180deg
|
|
1148
|
+
[data-theme="dark"] .qa-av-txt.qa-av-rev{background:linear-gradient(180deg,color-mix(in srgb, var(--amber) 24%, var(--raised)),color-mix(in srgb, var(--amber) 10%, var(--raised)));color:var(--amber)}
|
|
1046
1149
|
|
|
1047
|
-
[data-theme="dark"] .qa-tool{border-color
|
|
1150
|
+
[data-theme="dark"] .qa-tool{border-color:var(--md-border);background:rgba(242,251,245,.02)}
|
|
1048
1151
|
|
|
1049
|
-
[data-theme="dark"] .qa-tool-head:hover{background:rgba(
|
|
1152
|
+
[data-theme="dark"] .qa-tool-head:hover{background:rgba(242,251,245,.05)}
|
|
1050
1153
|
|
|
1051
|
-
[data-theme="dark"] .qa-tool-name{color
|
|
1154
|
+
[data-theme="dark"] .qa-tool-name{color:var(--ink)}
|
|
1052
1155
|
|
|
1053
|
-
[data-theme="dark"] .qa-tool-args{color
|
|
1156
|
+
[data-theme="dark"] .qa-tool-args{color:var(--muted)}
|
|
1054
1157
|
|
|
1055
|
-
[data-theme="dark"] .qa-tool-bd{border-color
|
|
1158
|
+
[data-theme="dark"] .qa-tool-bd{border-color:var(--md-border)}
|
|
1056
1159
|
|
|
1057
|
-
[data-theme="dark"] .qa-tool.open .qa-tool-bd{border-color
|
|
1160
|
+
[data-theme="dark"] .qa-tool.open .qa-tool-bd{border-color:var(--md-border)}
|
|
1058
1161
|
|
|
1059
|
-
[data-theme="dark"] .qa-tool-sec pre{background
|
|
1162
|
+
[data-theme="dark"] .qa-tool-sec pre{background:var(--code)}
|
|
1060
1163
|
|
|
1061
|
-
[data-theme="dark"] .qa-sub{border-color
|
|
1164
|
+
[data-theme="dark"] .qa-sub{border-color:var(--md-border)}
|
|
1062
1165
|
|
|
1063
|
-
[data-theme="dark"] .qa-sub-t{color
|
|
1166
|
+
[data-theme="dark"] .qa-sub-t{color:var(--ink-soft)}
|
|
1064
1167
|
|
|
1065
|
-
[data-theme="dark"] .qa-agent-chip{background:rgba(
|
|
1168
|
+
[data-theme="dark"] .qa-agent-chip{background:rgba(242,251,245,.05);border-color:var(--md-border)}
|
|
1066
1169
|
|
|
1067
|
-
[data-theme="dark"] .qa-agent-chip.run{background:rgba(
|
|
1170
|
+
[data-theme="dark"] .qa-agent-chip.run{background:rgba(var(--warning-rgb),.14);border-color:rgba(var(--warning-rgb),.32)}
|
|
1068
1171
|
|
|
1069
|
-
[data-theme="dark"] .qa-think-bd{background:rgba(
|
|
1172
|
+
[data-theme="dark"] .qa-think-bd{background:rgba(242,251,245,.03);border-color:var(--md-border)}
|
|
1070
1173
|
|
|
1071
|
-
[data-theme="dark"] .qa-ask{border-color
|
|
1174
|
+
[data-theme="dark"] .qa-ask{border-color:var(--md-border);background:rgba(242,251,245,.02)}
|
|
1072
1175
|
|
|
1073
1176
|
[data-theme="dark"] .qa-ico svg{stroke:currentColor}
|
|
1074
1177
|
|
|
1075
1178
|
[data-theme="dark"] .qa-av-img{border-radius:8px}
|
|
1076
1179
|
|
|
1077
|
-
[data-theme="dark"] .qa-msg:not(.qa-mine) .qa-bd{color
|
|
1180
|
+
[data-theme="dark"] .qa-msg:not(.qa-mine) .qa-bd{color:var(--ink-soft)}
|
|
1181
|
+
|
|
1182
|
+
[data-theme="dark"] .qa-t.md-body a{color:var(--amber)}
|
|
1183
|
+
|
|
1184
|
+
[data-theme="dark"] .qa-t.md-body a:hover{color:var(--ink)}
|
|
1078
1185
|
|
|
1079
|
-
[data-theme="dark"] .qa-t.md-body
|
|
1186
|
+
[data-theme="dark"] .qa-t.md-body hr{border-color:var(--md-border)}
|
|
1080
1187
|
|
|
1081
|
-
[data-theme="dark"] .qa-t.md-body
|
|
1188
|
+
[data-theme="dark"] .qa-t.md-body img{border-color:var(--md-border)}
|
|
1082
1189
|
|
|
1083
|
-
[data-theme="dark"] .qa-
|
|
1190
|
+
[data-theme="dark"] .qa-think-toggle{color:var(--muted)}
|
|
1084
1191
|
|
|
1085
|
-
[data-theme="dark"] .qa-
|
|
1192
|
+
[data-theme="dark"] .qa-think-dur{color:var(--faint)}
|
|
1086
1193
|
|
|
1087
|
-
[data-theme="dark"] .qa-
|
|
1194
|
+
[data-theme="dark"] .qa-tools-toggle{color:var(--muted)}
|
|
1088
1195
|
|
|
1089
|
-
[data-theme="dark"] .qa-
|
|
1196
|
+
[data-theme="dark"] .qa-tools-count{color:var(--faint)}
|
|
1090
1197
|
|
|
1091
|
-
[data-theme="dark"] .qa-tools-
|
|
1198
|
+
[data-theme="dark"] .qa-tools-dur{color:var(--faint)}
|
|
1092
1199
|
|
|
1093
|
-
[data-theme="dark"] .qa-
|
|
1200
|
+
[data-theme="dark"] .qa-tool-ico{background:var(--activity)}
|
|
1094
1201
|
|
|
1095
|
-
[data-theme="dark"] .qa-
|
|
1202
|
+
[data-theme="dark"] .qa-tool-dur{color:var(--faint)}
|
|
1096
1203
|
|
|
1097
|
-
[data-theme="dark"] .qa-tool
|
|
1204
|
+
[data-theme="dark"] .qa-tool .chev{stroke:var(--faint)}
|
|
1098
1205
|
|
|
1099
|
-
[data-theme="dark"] .qa-tool-
|
|
1206
|
+
[data-theme="dark"] .qa-tool[data-state="running"] .qa-tool-st::before{background:var(--amber)}
|
|
1100
1207
|
|
|
1101
|
-
|
|
1208
|
+
/* ── 2026-10-25 · 深色配色收口(用户:「深色皮肤继续完成全部配色优化」)──
|
|
1209
|
+
这 199 条深色覆盖原先是照 ZCode 的 Stone 灰写死的字面量(#1C1C1E 面 / #3B3835 线 / #E5E5E5 字),
|
|
1210
|
+
外加珊瑚橙 #F06953 当链接、青绿 #34D399 当成功、暖灰 #A8A29E 当次要字。
|
|
1211
|
+
挂到移动端这套墨绿主题上就露出两处毛病:
|
|
1212
|
+
① 一屏两种色:宿主令牌早已是墨绿,这几行还是石褐灰 —— 灰底卡片和玉色卡片并排,像没刷完;
|
|
1213
|
+
② 和主色打架:珊瑚橙在墨绿上是最刺眼的一处,却偏偏用在链接、运行中徽标、批准按钮上,
|
|
1214
|
+
与「玉青 = 可点」的规则相反。
|
|
1215
|
+
所以这一段把深色覆盖统一改成主题令牌(上面 199 行已批量替换):
|
|
1216
|
+
#1C1C1E→--subtle、#0F0F10→--code、#2B2B2E→--md-code-bg、#3B3835→--md-border、
|
|
1217
|
+
#F5F4F3→--ink、#E5E5E5/#D6D3D1→--ink-soft、#A8A29E/#78716C/#71717A→--muted、
|
|
1218
|
+
#525252→--faint、#34D399→--success、#F87171→--fail、#FCA5A5→--error-text,
|
|
1219
|
+
叠加用的 rgba(245,244,243,…) 换成 rgba(242,251,245,…)(= --ink 的 rgb)。
|
|
1220
|
+
下面几条是替换后还要按这套皮肤自己的语义再定一次的:
|
|
1221
|
+
· 链接 / 运行中 / 删除行:珊瑚橙 → 琥珀 --amber。移动端的「可点」是玉青,暖色留给
|
|
1222
|
+
「注意 / 进行中」(与列表里的「等待中」同一个视觉语言);
|
|
1223
|
+
· 代码高亮的青(字符串):深色覆盖原来写薄荷 #5EEAD4(像荧光),改成与浅色同一支绿松石 --syntax-teal;
|
|
1224
|
+
· 「审核」头像格:金渐变换成琥珀两阶,和 --amber 的字同族。
|
|
1225
|
+
浅色一代(不带 [data-theme] 的那些行)一个字没动。 */
|
|
1102
1226
|
|
|
1103
|
-
|
|
1227
|
+
/* 朱砂实心按钮(「沿用这个选项」)上的字:原写 #1C1917(石褐墨),
|
|
1228
|
+
统一换成页面底 --canvas —— 主题里「压在实色上的字」一律是它。 */
|
|
1229
|
+
[data-theme="dark"] .qa-ask-other button{color:var(--canvas)}
|
|
1104
1230
|
|
|
1105
|
-
[data-theme="dark"] .qa-ask-
|
|
1231
|
+
[data-theme="dark"] .qa-ask-other button:hover{color:var(--canvas)}
|
|
1106
1232
|
|
|
1107
|
-
|
|
1233
|
+
/* diff 新增行:原来用 ZCode 的绿松石 #0A6A51(H166),和 --success 的 H142 是两种绿 ——
|
|
1234
|
+
文字提成 --success,与行底(--success-rgb 14%)同族;浅色那份(.qa-diff-row.add)不动。 */
|
|
1235
|
+
[data-theme="dark"] .qa-diff-row.add{color:var(--success)}
|
|
1108
1236
|
|
|
1109
|
-
[data-theme="dark"] .qa-
|
|
1237
|
+
[data-theme="dark"] .qa-diff-row.add .s{color:var(--success)}
|
|
1110
1238
|
|
|
1111
|
-
|
|
1239
|
+
/* 代码块内层底色:#0F0F10(石褐)→ --code(页面层级的代码底)。 */
|
|
1240
|
+
[data-theme="dark"] .qa-tool-sec pre{background:var(--code)}
|
|
1112
1241
|
|
|
1113
|
-
[data-theme="dark"] .qa-ask-
|
|
1242
|
+
[data-theme="dark"] .qa-ask-hd{color:var(--ink-soft)}
|
|
1114
1243
|
|
|
1115
|
-
[data-theme="dark"] .qa-ask-
|
|
1244
|
+
[data-theme="dark"] .qa-ask-tag{color:var(--indigo);border-color:color-mix(in srgb, var(--indigo) 40%, transparent);background:color-mix(in srgb, var(--indigo) 10%, transparent)}
|
|
1116
1245
|
|
|
1117
|
-
[data-theme="dark"] .qa-ask-
|
|
1246
|
+
[data-theme="dark"] .qa-ask-ttl{color:var(--faint)}
|
|
1118
1247
|
|
|
1119
|
-
[data-theme="dark"] .qa-ask-
|
|
1248
|
+
[data-theme="dark"] .qa-ask-qb{border-top-color:var(--md-border)}
|
|
1120
1249
|
|
|
1121
|
-
[data-theme="dark"] .qa-ask-
|
|
1250
|
+
[data-theme="dark"] .qa-ask-q{color:var(--ink)}
|
|
1122
1251
|
|
|
1123
|
-
[data-theme="dark"] .qa-ask-opt
|
|
1252
|
+
[data-theme="dark"] .qa-ask-opt{border-color:var(--md-border);background:transparent}
|
|
1124
1253
|
|
|
1125
|
-
[data-theme="dark"] .qa-ask-opt
|
|
1254
|
+
[data-theme="dark"] .qa-ask-opt:hover{border-color:color-mix(in srgb, var(--indigo) 45%, transparent);background:color-mix(in srgb, var(--indigo) 8%, transparent)}
|
|
1126
1255
|
|
|
1127
|
-
[data-theme="dark"] .qa-ask-opt
|
|
1256
|
+
[data-theme="dark"] .qa-ask-opt .lb{color:var(--ink-soft)}
|
|
1128
1257
|
|
|
1129
|
-
[data-theme="dark"] .qa-ask-
|
|
1258
|
+
[data-theme="dark"] .qa-ask-opt .ds{color:var(--muted)}
|
|
1130
1259
|
|
|
1131
|
-
[data-theme="dark"] .qa-ask-
|
|
1260
|
+
[data-theme="dark"] .qa-ask-opt .mk{border-color:var(--faint);background:transparent}
|
|
1132
1261
|
|
|
1133
|
-
[data-theme="dark"] .qa-ask-
|
|
1262
|
+
[data-theme="dark"] .qa-ask-opt.sel{border-color:var(--indigo);background:color-mix(in srgb, var(--indigo) 10%, transparent)}
|
|
1134
1263
|
|
|
1135
|
-
[data-theme="dark"] .qa-ask-
|
|
1264
|
+
[data-theme="dark"] .qa-ask-opt.sel .lb{color:var(--ink)}
|
|
1136
1265
|
|
|
1137
|
-
[data-theme="dark"] .qa-ask-
|
|
1266
|
+
[data-theme="dark"] .qa-ask-other input{background:var(--subtle);border-color:var(--md-border);color:var(--ink)}
|
|
1138
1267
|
|
|
1139
|
-
[data-theme="dark"] .qa-ask-
|
|
1268
|
+
[data-theme="dark"] .qa-ask-other button{background:var(--subtle);border-color:var(--md-border);color:var(--muted)}
|
|
1140
1269
|
|
|
1141
|
-
[data-theme="dark"] .qa-ask-
|
|
1270
|
+
[data-theme="dark"] .qa-ask-sub{background:color-mix(in srgb, var(--indigo) 10%, transparent);border-color:color-mix(in srgb, var(--indigo) 40%, transparent);color:var(--indigo)}
|
|
1142
1271
|
|
|
1143
|
-
[data-theme="dark"] .qa-ask-
|
|
1272
|
+
[data-theme="dark"] .qa-ask-sub:hover:not(:disabled){background:color-mix(in srgb, var(--indigo) 18%, transparent)}
|
|
1144
1273
|
|
|
1145
|
-
[data-theme="dark"] .qa-
|
|
1274
|
+
[data-theme="dark"] .qa-ask-hint{color:var(--faint)}
|
|
1146
1275
|
|
|
1147
|
-
[data-theme="dark"] .qa-
|
|
1276
|
+
[data-theme="dark"] .qa-ask-ans{border-top-color:var(--md-border)}
|
|
1148
1277
|
|
|
1149
|
-
[data-theme="dark"] .qa-ask-
|
|
1278
|
+
[data-theme="dark"] .qa-ask-ans .k{color:var(--faint)}
|
|
1150
1279
|
|
|
1151
|
-
[data-theme="dark"] .qa-ask-
|
|
1280
|
+
[data-theme="dark"] .qa-ask-ans .v{color:var(--success)}
|
|
1152
1281
|
|
|
1153
|
-
[data-theme="dark"] .qa-
|
|
1282
|
+
[data-theme="dark"] .qa-askdock>.qa-ask{background:var(--raised);box-shadow:0 6px 20px rgba(0,0,0,.4)}
|
|
1154
1283
|
|
|
1155
|
-
[data-theme="dark"] .qa-
|
|
1284
|
+
[data-theme="dark"] .qa-askdock::-webkit-scrollbar-thumb{background:var(--md-border)}
|
|
1156
1285
|
|
|
1157
|
-
[data-theme="dark"] .qa-
|
|
1286
|
+
[data-theme="dark"] .qa-ask-x{color:var(--muted)}
|
|
1158
1287
|
|
|
1159
|
-
[data-theme="dark"] .qa-
|
|
1288
|
+
[data-theme="dark"] .qa-ask-x:hover{background:rgba(242,251,245,.08);color:var(--ink)}
|
|
1160
1289
|
|
|
1161
|
-
[data-theme="dark"] .qa-run
|
|
1290
|
+
[data-theme="dark"] .qa-run{background:var(--subtle)}
|
|
1162
1291
|
|
|
1163
|
-
[data-theme="dark"] .qa-
|
|
1292
|
+
[data-theme="dark"] .qa-run::after{background:var(--subtle)}
|
|
1164
1293
|
|
|
1165
|
-
[data-theme="dark"] .qa-
|
|
1294
|
+
[data-theme="dark"] .qa-spinner{border-color:var(--md-border);border-top-color:var(--indigo)}
|
|
1166
1295
|
|
|
1167
|
-
[data-theme="dark"] .qa-
|
|
1296
|
+
[data-theme="dark"] .qa-run-pill{background:rgba(242,251,245,.05);border-color:var(--md-border)}
|
|
1168
1297
|
|
|
1169
|
-
[data-theme="dark"] .qa-
|
|
1298
|
+
[data-theme="dark"] .qa-run-t{color:var(--muted)}
|
|
1170
1299
|
|
|
1171
|
-
[data-theme="dark"] .qa-
|
|
1300
|
+
[data-theme="dark"] .qa-done{color:var(--muted)}
|
|
1172
1301
|
|
|
1173
|
-
[data-theme="dark"] .qa-
|
|
1302
|
+
[data-theme="dark"] .qa-done .d{background:var(--success)}
|
|
1174
1303
|
|
|
1175
|
-
[data-theme="dark"] .qa-
|
|
1304
|
+
[data-theme="dark"] .qa-done.err{color:var(--fail)}
|
|
1176
1305
|
|
|
1177
|
-
[data-theme="dark"] .qa-
|
|
1306
|
+
[data-theme="dark"] .qa-done.err .d{background:var(--fail)}
|
|
1178
1307
|
|
|
1179
|
-
[data-theme="dark"] .qa-
|
|
1308
|
+
[data-theme="dark"] .qa-agent-chip{color:var(--muted);border-color:var(--md-border);background:rgba(242,251,245,.05)}
|
|
1180
1309
|
|
|
1181
|
-
[data-theme="dark"] .qa-
|
|
1310
|
+
[data-theme="dark"] .qa-agent-chip.run{color:var(--amber);background:rgba(var(--warning-rgb),.16);border-color:rgba(var(--warning-rgb),.36)}
|
|
1182
1311
|
|
|
1183
|
-
[data-theme="dark"] .qa-
|
|
1312
|
+
[data-theme="dark"] .qa-agent-chip.ok{color:var(--success);background:rgba(var(--success-rgb),.12);border-color:rgba(var(--success-rgb),.38)}
|
|
1313
|
+
|
|
1314
|
+
[data-theme="dark"] .qa-agent-sess{color:var(--muted);border-color:var(--md-border)}
|
|
1315
|
+
|
|
1316
|
+
[data-theme="dark"] .qa-sub-h{color:var(--faint)}
|
|
1317
|
+
|
|
1318
|
+
[data-theme="dark"] .qa-sub-n{color:var(--faint)}
|
|
1319
|
+
|
|
1320
|
+
[data-theme="dark"] .qa-note{color:var(--faint)}
|
|
1184
1321
|
|
|
1185
1322
|
.qa-av.qa-av-sim{display:grid;place-items:center;background:linear-gradient(180deg,var(--cinnabar-hi),var(--cinnabar));color:#FFF7F5}
|
|
1186
1323
|
|
|
@@ -1209,9 +1346,9 @@
|
|
|
1209
1346
|
|
|
1210
1347
|
.qa-ask-other button:hover{background:var(--cinnabar-hi);border-color:var(--cinnabar-hi);color:#fff}
|
|
1211
1348
|
|
|
1212
|
-
[data-theme="dark"] .qa-ask-other button{background:var(--
|
|
1349
|
+
[data-theme="dark"] .qa-ask-other button{background:var(--amber);border-color:var(--amber);color:var(--canvas)}
|
|
1213
1350
|
|
|
1214
|
-
[data-theme="dark"] .qa-ask-other button:hover{background:var(--cinnabar-hi);border-color:var(--cinnabar-hi);color
|
|
1351
|
+
[data-theme="dark"] .qa-ask-other button:hover{background:var(--cinnabar-hi);border-color:var(--cinnabar-hi);color:var(--canvas)}
|
|
1215
1352
|
|
|
1216
1353
|
.qa-tool-name{font-size:10.5px;font-weight:500;color:var(--paper-dim)}
|
|
1217
1354
|
|
|
@@ -1319,13 +1456,13 @@
|
|
|
1319
1456
|
@keyframes qaHistSweep{0%{transform:translateX(-100%)}60%,100%{transform:translateX(100%)}}
|
|
1320
1457
|
@keyframes qaHistShimmer{0%{transform:translateX(-100%)}55%,100%{transform:translateX(100%)}}
|
|
1321
1458
|
|
|
1322
|
-
[data-theme="dark"] .qa-hist-note{background:rgba(
|
|
1459
|
+
[data-theme="dark"] .qa-hist-note{background:rgba(242,251,245,.04)}
|
|
1323
1460
|
|
|
1324
|
-
[data-theme="dark"] .qa-hist-note.wait{color
|
|
1461
|
+
[data-theme="dark"] .qa-hist-note.wait{color:var(--faint)}
|
|
1325
1462
|
|
|
1326
|
-
[data-theme="dark"] .qa-hist-note.lost{border-left-color
|
|
1463
|
+
[data-theme="dark"] .qa-hist-note.lost{border-left-color:var(--fail)}
|
|
1327
1464
|
|
|
1328
|
-
[data-theme="dark"] .qa-hist-lines span{background:rgba(
|
|
1465
|
+
[data-theme="dark"] .qa-hist-lines span{background:rgba(242,251,245,.09)}
|
|
1329
1466
|
|
|
1330
1467
|
[data-theme="dark"] .qa-hist-lines span::after{
|
|
1331
1468
|
background:linear-gradient(90deg,transparent,rgba(255,255,255,.16),transparent)}
|
|
@@ -1386,17 +1523,17 @@
|
|
|
1386
1523
|
background:#F5F4F3;font-family:var(--mono);font-size:10.5px;line-height:1.6;
|
|
1387
1524
|
color:#57534E;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere}
|
|
1388
1525
|
|
|
1389
|
-
[data-theme="dark"] .qa-hist-step{border-color
|
|
1526
|
+
[data-theme="dark"] .qa-hist-step{border-color:var(--md-border);background:rgba(242,251,245,.02)}
|
|
1390
1527
|
|
|
1391
|
-
[data-theme="dark"] .qa-hist-step summary:hover{background:rgba(
|
|
1528
|
+
[data-theme="dark"] .qa-hist-step summary:hover{background:rgba(242,251,245,.05)}
|
|
1392
1529
|
|
|
1393
|
-
[data-theme="dark"] .qa-hist-step summary::after{color
|
|
1530
|
+
[data-theme="dark"] .qa-hist-step summary::after{color:var(--muted)}
|
|
1394
1531
|
|
|
1395
|
-
[data-theme="dark"] .qa-hist-step--think{border-left-color
|
|
1532
|
+
[data-theme="dark"] .qa-hist-step--think{border-left-color:var(--md-border)}
|
|
1396
1533
|
|
|
1397
|
-
[data-theme="dark"] .qa-hist-step-body{color
|
|
1534
|
+
[data-theme="dark"] .qa-hist-step-body{color:var(--ink-soft)}
|
|
1398
1535
|
|
|
1399
|
-
[data-theme="dark"] .qa-hist-step-pre{background
|
|
1536
|
+
[data-theme="dark"] .qa-hist-step-pre{background:var(--code);color:var(--ink-soft)}
|
|
1400
1537
|
|
|
1401
1538
|
.qa-msg:not(.qa-mine):not(.qa-sim){flex-direction:column;gap:6px;align-items:stretch}
|
|
1402
1539
|
|
|
@@ -1515,7 +1652,7 @@
|
|
|
1515
1652
|
|
|
1516
1653
|
.qa-diff-row.del .s{color:#9E3120}
|
|
1517
1654
|
|
|
1518
|
-
.qa-diff-row.hunk{background:
|
|
1655
|
+
.qa-diff-row.hunk{background:color-mix(in srgb, var(--indigo) 7%, transparent);color:var(--indigo)}
|
|
1519
1656
|
|
|
1520
1657
|
.qa-diff-row.file{background:rgba(28,25,23,.035);color:var(--paper-mute)}
|
|
1521
1658
|
|
|
@@ -1578,33 +1715,33 @@
|
|
|
1578
1715
|
[data-theme="dark"] .qa-cf-bd pre,[data-theme="dark"] .qa-tool-sec pre{
|
|
1579
1716
|
color:#D6D3D1;background:transparent}
|
|
1580
1717
|
|
|
1581
|
-
[data-theme="dark"] .qa-tool-bd > * + *,[data-theme="dark"] .qa-fc-hd{border-color
|
|
1718
|
+
[data-theme="dark"] .qa-tool-bd > * + *,[data-theme="dark"] .qa-fc-hd{border-color:var(--md-border)}
|
|
1582
1719
|
|
|
1583
|
-
[data-theme="dark"] .qa-cf-copy:hover{background:rgba(
|
|
1720
|
+
[data-theme="dark"] .qa-cf-copy:hover{background:rgba(242,251,245,.09);color:var(--ink)}
|
|
1584
1721
|
|
|
1585
|
-
[data-theme="dark"] .qa-mk-row[data-tog="1"]:hover{background:rgba(
|
|
1722
|
+
[data-theme="dark"] .qa-mk-row[data-tog="1"]:hover{background:rgba(242,251,245,.05)}
|
|
1586
1723
|
|
|
1587
|
-
[data-theme="dark"] .qa-st{background:rgba(
|
|
1724
|
+
[data-theme="dark"] .qa-st{background:rgba(242,251,245,.05);border-color:var(--md-border)}
|
|
1588
1725
|
|
|
1589
|
-
[data-theme="dark"] .qa-diff-row .b{background
|
|
1726
|
+
[data-theme="dark"] .qa-diff-row .b{background:var(--md-border)}
|
|
1590
1727
|
|
|
1591
|
-
[data-theme="dark"] .qa-diff-row.add{background:rgba(
|
|
1728
|
+
[data-theme="dark"] .qa-diff-row.add{background:rgba(var(--success-rgb),.14);color:var(--success)}
|
|
1592
1729
|
|
|
1593
|
-
[data-theme="dark"] .qa-diff-row.add .s{color
|
|
1730
|
+
[data-theme="dark"] .qa-diff-row.add .s{color:var(--success)}
|
|
1594
1731
|
|
|
1595
|
-
[data-theme="dark"] .qa-diff-row.del{background:rgba(
|
|
1732
|
+
[data-theme="dark"] .qa-diff-row.del{background:rgba(var(--warning-rgb),.16);color:var(--error-text)}
|
|
1596
1733
|
|
|
1597
|
-
[data-theme="dark"] .qa-diff-row.del .s{color
|
|
1734
|
+
[data-theme="dark"] .qa-diff-row.del .s{color:var(--error-text)}
|
|
1598
1735
|
|
|
1599
|
-
[data-theme="dark"] .qa-diff-row.hunk{background:
|
|
1736
|
+
[data-theme="dark"] .qa-diff-row.hunk{background:color-mix(in srgb, var(--indigo) 12%, transparent);color:var(--indigo)}
|
|
1600
1737
|
|
|
1601
|
-
[data-theme="dark"] .qa-diff-row.file{background:rgba(
|
|
1738
|
+
[data-theme="dark"] .qa-diff-row.file{background:rgba(242,251,245,.045);color:var(--muted)}
|
|
1602
1739
|
|
|
1603
1740
|
.qa-msg.qa-mine .qa-fold-btn{background:transparent}
|
|
1604
1741
|
|
|
1605
1742
|
.qa-msg.qa-mine .qa-fold-btn:hover{background:rgba(28,25,23,.05)}
|
|
1606
1743
|
|
|
1607
|
-
[data-theme="dark"] .qa-msg.qa-mine .qa-fold-btn:hover{background:rgba(
|
|
1744
|
+
[data-theme="dark"] .qa-msg.qa-mine .qa-fold-btn:hover{background:rgba(242,251,245,.07)}
|
|
1608
1745
|
|
|
1609
1746
|
.qa-acts{display:flex;align-items:center;justify-content:flex-start;gap:2px;min-width:0}
|
|
1610
1747
|
|
|
@@ -1624,9 +1761,9 @@
|
|
|
1624
1761
|
/* 排队气泡上的「取消排队」:这里要的是**文字**按钮(用户得看懂点它会发生什么),
|
|
1625
1762
|
所以不复用上面 22×22 的图标尺寸,单开一档。 */
|
|
1626
1763
|
.qa-msg.qa-mine .qa-acts .qa-act--cancel{width:auto;height:22px;padding:0 8px;border-radius:var(--r-full);
|
|
1627
|
-
font-size:11.5px;line-height:22px;color:var(--queued
|
|
1628
|
-
.qa-msg.qa-mine .qa-acts .qa-act--cancel:hover{background:
|
|
1629
|
-
[data-theme="dark"] .qa-msg.qa-mine .qa-acts .qa-act--cancel{color
|
|
1764
|
+
font-size:11.5px;line-height:22px;color:var(--queued);white-space:nowrap}
|
|
1765
|
+
.qa-msg.qa-mine .qa-acts .qa-act--cancel:hover{background:color-mix(in srgb, var(--queued) 12%, transparent);color:var(--queued)}
|
|
1766
|
+
[data-theme="dark"] .qa-msg.qa-mine .qa-acts .qa-act--cancel{color:var(--queued)}
|
|
1630
1767
|
|
|
1631
1768
|
.qa-act svg{width:13px;height:13px;display:block;stroke:currentColor;fill:none;
|
|
1632
1769
|
stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
|
|
@@ -1637,7 +1774,7 @@
|
|
|
1637
1774
|
|
|
1638
1775
|
.qa-act-copy.copied .i-ok{display:block;stroke:var(--jade)}
|
|
1639
1776
|
|
|
1640
|
-
[data-theme="dark"] .qa-act:hover{background:rgba(
|
|
1777
|
+
[data-theme="dark"] .qa-act:hover{background:rgba(242,251,245,.09);color:var(--ink)}
|
|
1641
1778
|
|
|
1642
1779
|
/* ---- 任务列表(qaTodoNode / qaTodoFill,见 29-msg-variants)----
|
|
1643
1780
|
一族两形:工具卡明细里的「待办清单」与一条应答里唯一那块「任务列表」面板。
|
|
@@ -1692,10 +1829,10 @@
|
|
|
1692
1829
|
stroke-linecap:round;stroke-linejoin:round;transition:transform .15s}
|
|
1693
1830
|
.qa-todo-panel.open .qa-todo-toggle svg{transform:rotate(180deg)}
|
|
1694
1831
|
.qa-todo-panel:not(.open) .qa-todo-list{display:none}
|
|
1695
|
-
[data-theme="dark"] .qa-todo-hd{background:rgba(
|
|
1696
|
-
[data-theme="dark"] .qa-todo-ico{border-color
|
|
1697
|
-
[data-theme="dark"] .qa-todo-row.is-in_progress{color
|
|
1698
|
-
[data-theme="dark"] .qa-todo-row.is-completed{color
|
|
1832
|
+
[data-theme="dark"] .qa-todo-hd{background:rgba(242,251,245,.045);border-color:var(--md-border)}
|
|
1833
|
+
[data-theme="dark"] .qa-todo-ico{border-color:var(--faint)}
|
|
1834
|
+
[data-theme="dark"] .qa-todo-row.is-in_progress{color:var(--ink)}
|
|
1835
|
+
[data-theme="dark"] .qa-todo-row.is-completed{color:var(--muted)}
|
|
1699
1836
|
|
|
1700
1837
|
/* ============================================================================
|
|
1701
1838
|
* 令牌桥:magic-test 的调色板名字 → 各端宿主已有的令牌(**只用不定义**)
|
|
@@ -1708,6 +1845,24 @@
|
|
|
1708
1845
|
* 值是「兜底」:宿主给了同名令牌(--ink / --muted / …)就以宿主为准。
|
|
1709
1846
|
* ========================================================================== */
|
|
1710
1847
|
:where(:root) {
|
|
1848
|
+
/* 状态色的 **rgb 三通道**(2026-10-25 深色配色收口):
|
|
1849
|
+
深色覆盖里有一批「同色不同透明度」的叠加底(12 条 .05 / .04 / .03 …),
|
|
1850
|
+
写成 color-mix 会把 alpha 和颜色搅在一起、也没法一行改一处;
|
|
1851
|
+
透传三通道就能写出 rgba(var(--warning-rgb),.14):**颜色永远跟着主题令牌走**。
|
|
1852
|
+
⚠️ 不能写成 var(--amber-rgb, 217, 119, 6):兜底值里有逗号,语法上会被当成三个值。
|
|
1853
|
+
默认值就是本壳的琥珀 / 鎏金 / 玉绿 / 失败红;宿主想让叠加底跟着自己的令牌走,
|
|
1854
|
+
就在自己的 :root 里把 --warning-rgb 等四行改写成对应令牌的 rgb 通道。 */
|
|
1855
|
+
--warning-rgb: 217, 119, 6;
|
|
1856
|
+
--queued-rgb: 232, 199, 122;
|
|
1857
|
+
--success-rgb: 34, 197, 94;
|
|
1858
|
+
--fail-rgb: 248, 113, 113;
|
|
1859
|
+
/* 代码高亮里的「字符串」色:浅色代用的是绿松石 #0F766E(H175)。深色覆盖原来写的是
|
|
1860
|
+
薄荷 #5EEAD4(H166,压在深底上像荧光)—— 直接沿用同一支绿松石,两种主题的代码配色才一致。
|
|
1861
|
+
.md-body a 的「正文链接」默认也走这一支(那几行写成 color:#0F766E;color:var(--syntax-teal,#0F766E),
|
|
1862
|
+
浅色两个值相同 → 一个像素不变);深色覆盖再把正文链接显式换成 --amber(「正文里的可点」规则)。
|
|
1863
|
+
不在主题令牌里:它只服务本文件的 .hljs-string / 正文链接,不参与界面配色。 */
|
|
1864
|
+
--syntax-teal: #0F766E;
|
|
1865
|
+
|
|
1711
1866
|
/* 文字三级(magic-test: paper / paper-dim / paper-mute) */
|
|
1712
1867
|
--paper: var(--ink);
|
|
1713
1868
|
--paper-dim: var(--muted);
|