From 60d66195989ad725e791e73c59ffb248f68bd639 Mon Sep 17 00:00:00 2001 From: Suzumiya Date: Wed, 16 Sep 2026 03:03:45 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=9F=E4=B8=80=E5=AF=B9=E8=AF=9D=E5=8C=BA?= =?UTF-8?q?=E5=9F=9F=E6=96=87=E5=AD=97=E9=A2=9C=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 正文、工具内容、执行过程和时间统一使用主题正文色 保留错误与禁用状态语义,移除硬编码字体颜色并同步文档 --- apps/ai-game-creator-shell/src/styles.css | 61 ++++++++++++------- ...方案】GameAgent对话工具调用卡片-2026-09-14.md | 1 + 2 files changed, 41 insertions(+), 21 deletions(-) diff --git a/apps/ai-game-creator-shell/src/styles.css b/apps/ai-game-creator-shell/src/styles.css index ec4faaf54..0e5566d46 100644 --- a/apps/ai-game-creator-shell/src/styles.css +++ b/apps/ai-game-creator-shell/src/styles.css @@ -2738,7 +2738,7 @@ textarea { .project-supervisor-process-elapsed { margin-left: auto !important; - color: #795548 !important; + color: inherit; font-size: 13px !important; font-style: normal; font-weight: 500; @@ -2800,7 +2800,7 @@ textarea { padding: 0; border: 0; background: transparent; - color: #2f6f4b; + color: inherit; font: inherit; font-size: 12px; cursor: pointer; @@ -8858,7 +8858,7 @@ iframe.preview-frame { border: 1px solid var(--platform-button-primary-border); border-radius: 14px 14px 4px; background: var(--platform-warm-bg); - color: var(--platform-text-strong); + color: var(--platform-text-base); } /* 输入区是对话框内部的一块:四边内缩 12px,不贴外框、也不与外框的描边重叠。 @@ -10747,6 +10747,7 @@ button.design-workspace-tree__entry:hover, .resource-reference-input-placeholder { top: 0; left: 0; + color: var(--platform-text-soft); } .game-workbench-chat @@ -11328,7 +11329,7 @@ button.design-workspace-tree__entry:hover, border-color: var(--platform-surface-border); border-radius: 14px; background: var(--platform-input-fill); - color: var(--platform-text-strong); + color: var(--platform-text-base); pointer-events: auto; } @@ -11818,7 +11819,7 @@ button.design-workspace-tree__entry:hover, .agent-tool-call-group-head:hover, .agent-tool-call-group-head:focus-visible { background: var(--platform-button-ghost-fill); - color: var(--platform-text-strong); + color: inherit; outline: none; } @@ -11827,7 +11828,7 @@ button.design-workspace-tree__entry:hover, align-items: center; justify-content: center; flex: 0 0 auto; - color: var(--platform-text-soft); + color: inherit; } /* 汇总压在图标后面:窄面板下靠 ellipsis 收窄,不换行、不把时间与用时挤出可视区。 */ @@ -11835,7 +11836,7 @@ button.design-workspace-tree__entry:hover, flex: 1 1 auto; min-width: 0; overflow: hidden; - color: var(--platform-text-strong); + color: inherit; font-size: 12px; font-weight: 600; text-overflow: ellipsis; @@ -11845,7 +11846,7 @@ button.design-workspace-tree__entry:hover, .agent-tool-call-group-time, .agent-tool-call-group-duration { flex: 0 0 auto; - color: var(--platform-text-soft); + color: inherit; font-size: 11px; font-variant-numeric: tabular-nums; white-space: nowrap; @@ -11853,7 +11854,7 @@ button.design-workspace-tree__entry:hover, .agent-tool-call-group-chevron { flex: 0 0 auto; - color: var(--platform-text-soft); + color: inherit; transition: transform 120ms ease; } @@ -11909,7 +11910,7 @@ button.design-workspace-tree__entry:hover, .agent-tool-call-row-head:hover, .agent-tool-call-row-head:focus-visible { background: var(--platform-button-ghost-fill); - color: var(--platform-text-strong); + color: inherit; outline: none; } @@ -11918,7 +11919,7 @@ button.design-workspace-tree__entry:hover, align-items: center; justify-content: center; flex: 0 0 auto; - color: var(--platform-text-soft); + color: inherit; } .agent-tool-call-row-text { @@ -11931,7 +11932,7 @@ button.design-workspace-tree__entry:hover, .agent-tool-call-row-status { flex: 0 0 auto; - color: var(--platform-text-soft); + color: inherit; font-size: 11px; } @@ -11939,7 +11940,7 @@ button.design-workspace-tree__entry:hover, .agent-tool-call-row-duration { flex: 0 0 auto; margin-left: auto; - color: var(--platform-text-soft); + color: inherit; font-size: 11px; font-variant-numeric: tabular-nums; white-space: nowrap; @@ -11947,7 +11948,7 @@ button.design-workspace-tree__entry:hover, .agent-tool-call-row-chevron { flex: 0 0 auto; - color: var(--platform-text-soft); + color: inherit; transition: transform 120ms ease; } @@ -11967,7 +11968,7 @@ button.design-workspace-tree__entry:hover, } .agent-tool-call-row-section > small { - color: #8d7668; + color: inherit; font-size: 11px; font-weight: 600; } @@ -12008,14 +12009,14 @@ button.design-workspace-tree__entry:hover, .agent-tool-call-row-changes li small { flex: 0 0 auto; - color: var(--platform-text-soft); + color: inherit; font-size: 10px; } .agent-tool-call-group-foot { margin: 0; padding: 0 8px 2px; - color: var(--platform-text-soft); + color: inherit; font-size: 11px; font-variant-numeric: tabular-nums; } @@ -12067,6 +12068,7 @@ button.design-workspace-tree__entry:hover, .project-supervisor-conversation > .project-supervisor-process-card { margin: 0 16px 8px; + color: var(--platform-text-base); } /* 直连回合的「思考过程」块:默认折叠(
默认收起),展开后按步骤列过程行。 @@ -12152,7 +12154,7 @@ button.design-workspace-tree__entry:hover, .message-sent-at { display: block; margin-top: 4px; - color: var(--platform-text-soft); + color: inherit; font-size: 11px; text-align: right; font-variant-numeric: tabular-nums; @@ -12160,11 +12162,12 @@ button.design-workspace-tree__entry:hover, .message-turn-process { min-width: 0; + color: var(--platform-text-base); } .message-turn-process > summary { padding: 6px 0; - color: var(--platform-text-soft); + color: inherit; font-size: 12px; cursor: pointer; } @@ -12184,7 +12187,7 @@ button.design-workspace-tree__entry:hover, margin: 0; padding: 0 2px; text-align: right; - color: var(--platform-text-soft); + color: var(--platform-text-base); font-size: 12px; line-height: 1.6; font-variant-numeric: tabular-nums; @@ -12196,7 +12199,7 @@ button.design-workspace-tree__entry:hover, .project-supervisor-message-list details[data-testid='live-reasoning'] { margin: 0; - color: var(--platform-text-soft); + color: var(--platform-text-base); font-size: 12px; } @@ -12218,6 +12221,22 @@ button.design-workspace-tree__entry:hover, font-size: 12px; line-height: 1.5; } +/* Markdown 正文继承消息颜色,层级由字号和字重表达,不混入全局段落或引用颜色。 */ +.game-workbench-chat + .project-supervisor-surface.is-direct-codex + .project-supervisor-message-list + .message + :where(p, h1, h2, h3, h4, h5, h6, ul, ol, li, blockquote, pre, code, strong, em, th, td) { + color: inherit; +} + +.game-workbench-chat + .project-supervisor-surface.is-direct-codex + .project-supervisor-message-list + .message p { + opacity: 1; +} + /* 对话正文的行高统一为 1.5:段落、列表、列表项一致。 面板里原本有 1.7 / 1.6 / 1.5 / 1.4 多套值,段落与列表各自命中不同规则, 看起来"上下行高不一样"。 */ diff --git a/docs/technical/【技术方案】GameAgent对话工具调用卡片-2026-09-14.md b/docs/technical/【技术方案】GameAgent对话工具调用卡片-2026-09-14.md index 6e249f891..472967863 100644 --- a/docs/technical/【技术方案】GameAgent对话工具调用卡片-2026-09-14.md +++ b/docs/technical/【技术方案】GameAgent对话工具调用卡片-2026-09-14.md @@ -99,6 +99,7 @@ toolCalls?: DirectTurnToolCall[] | null; - 耗时:单条工具 = `startedAt` → `updatedAt`,块头总用时 = 该回合所有工具的 `min(startedAt)` → `max(updatedAt)`。单条格式:`<1s` → `0.4s`、`<60s` → `12.3s`(整秒省略小数)、`≥60s` → `2m 5s`;块头格式:`42秒` / `4分钟` / `5分钟 45秒`。`startedAt` 为 0 或 `updatedAt < startedAt` 时不显示耗时(不显示 `0s` / 负数),耗时为 0 时同样不显示 `0s`。 - 时间:块头显示该回合结束时间(`max(updatedAt)` 的本地 `HH:mm:ss`);同一回合能拿到用户消息时间(`updatedAt > 0`)时显示 `HH:mm:ss → HH:mm:ss`(发送 → 结束),取不到就只显示结束时间,不编造。 - 回合结束时间与耗时在正文下方右对齐;Direct 对话输入框提示统一为“描述你的想法,或 @ 引用素材”,引用按钮保留输入盒的 12px 内边距,不使用负边距贴边。 + - 对话普通文字统一使用 `--platform-text-base`:用户与助手正文、工具摘要和输入输出、执行过程、发送时间及耗时同色,层级通过字号和字重表达。工具子元素继承容器颜色,失败状态保留错误色;输入提示使用主题弱文字色,禁用状态保留原有反馈,不混用硬编码灰蓝、绿色或棕色。 - Windows 命令展示:仅 `command` 卡片识别 `pwsh` / `powershell`(含完整路径、`.exe`、常见启动选项)的 `-Command` / `-c` 外层包装,摘要和展开输入只展示脚本正文,并解开单个 shell 参数的引用拼接。摘要优先读取已脱敏的 `detail.command`,再按首行 120 字符截断,避免历史摘要被可执行文件路径占满。无法识别的启动方式、`-File`、`-EncodedCommand`、普通命令和 MCP 输入原样展示;执行参数、持久化原文、脱敏和输出均不改变。 - 调试属性:块与行都带 `data-duration-ms`(原始毫秒,无法计算时为空串)与稳定 `data-testid`(块 `agent-tool-call-group`、行 `agent-tool-call-row`)。 - 必须用 `