AGC 用户输入区域元素堆叠,优化输入框布局与样式 #600
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
问题描述
AGC 工作台用户输入区域当前布局不合理,输入框、模型选择、素材引用、麦克风、发送按钮及状态提示等元素堆叠在一起,间距和层级不清晰,影响识别与操作。
优化方向
验收标准
分析:AGC 输入区为什么「元素堆叠」
问题原因(实测定位)
.project-chat-composer.is-direct-codex当时是gap: 0,输入盒 / 工具栏 / 提示之间没有任何间距契约,谁都可以用绝对定位去压别人。position: absolute; bottom: 36px的浮层,锚点就在输入盒正下方,必然画在编辑器文字上——实测「本地模型服务不可用」与编辑器相交 70×36px,长草稿时整段盖住第 3~4 行正文。right: 0; bottom: 0)浮在编辑器右下角,实测与编辑器相交 28×24px;它和下方工具栏的发送钮还在同一条竖线上,看起来像「叠了两个按钮」。flex: 0 0 auto:宽度不够时既不收缩也不换行,整组向右溢出输入盒。≤296px 面板下「推理档」直接压在「添加文件」上(28×28px)、「插入素材引用」被压 20×28px。gap: 8px+padding-top: 2px、输入盒内部padding: 0 0 4px、提示段落margin: 4px 0 0,同一段视觉间距被三处各写一遍。打算进行的更改 / 实现思路(纯表现层,不改 JSX、不改事件 / state / ref)
用 CSS 把三层说清楚:
.project-chat-composer.is-direct-codex改单列网格 +gap: 8px。.resource-reference-input自己两行网格:编辑器横跨两列(文字用满整宽),第二行左边放润色状态、右边放「AI 润色 / 恢复原文」操作排(position: static回网格行,不再浮在文字上)。.project-chat-composer-controls:左右分组、gap: 6px 8px、允许换行;右侧组改flex: 1 1 auto可收缩,模型钮封顶 160px、模型名走省略号,推理档不参与收缩(避免「默认」被截成半个字)。gap负责,提示段落超过 96px 自己滚;模型错误提示从浮层收回控件排内独占一行。适用范围:Direct 工作台输入区(
.project-chat-surface.is-direct-codex)与策划输入区(.game-workbench-layout--design),两者共用同一批工具栏类名。落地情况
ac2df9f12(自审收口:宽度上限与间距写回各自规则,去掉重复声明)+f5886560b(主体),分支fix/agc-composer-layout,PR #607。apps/ai-game-creator-shell/src/styles.css、两个 CSS 契约测试(tests/chatDialogFrameLayout.test.ts、tests/appSurface/project-development.suite.ts)、docs/project-memory/shared-memory/pitfalls.md。.tmp/agc-composer-600/(未入仓)。@素材选择面板未展开、300px 以下面板未覆盖(详见 PR 正文的「未完成项 / 存疑 / 剩余风险」)。