Skip to content

fix(chat): 输入框让出右侧控制列,滚动条不再压住用量环 - #438

Merged
su-fen merged 1 commit into
mainfrom
fix/composer-control-rail-scrollbar
Aug 12, 2026
Merged

fix(chat): 输入框让出右侧控制列,滚动条不再压住用量环#438
su-fen merged 1 commit into
mainfrom
fix/composer-control-rail-scrollbar

Conversation

@su-fen

@su-fen su-fen commented Aug 12, 2026

Copy link
Copy Markdown
Member

Linked issue

Closes #437

Summary

提示词输入框里,编辑器的纵向滚动条会从上下文用量环与展开图标上穿过。

三个右侧控件(展开/还原、用量环、发送)都是 right-3 + h-8 w-8,共同占据卡片右缘 44px 宽的竖直轨道;而编辑器所在行只有 px-4,让位靠编辑器自身的 pr-8padding 不改变滚动条位置 —— overflow-y: auto 元素的滚动条恒贴自身 border box 右缘,pr-8 只把文字推开 32px,那条全局 6px 滚动轨仍停在距卡片右缘 16–22px 处,正好落在环心与展开图标下方。

本 PR 把让位从"内边距"提升成布局让位:编辑器外层容器 px-4pl-4 pr-12(48px = 44px 轨道 + 4px 间隙),收窄编辑器 border box,滚动条随之被推到轨道左侧;编辑器不再补 pr

  • 文本可用宽度不变:改前 W−16(pl)−16(pr)−32(编辑器 pr),改后 W−16−48,都是 W−64;仅溢出时同样多让出 6px 给滚动条。
  • 顺带修掉两个同源表现:占位符 ::before 的包含块是外层 wrapper 而非编辑器,此前窄屏会钻到按钮底下;输入框展开态时用量环浮在正文中央同样压字 —— 现在都落在让位区内。
  • 未改全局滚动条样式:Firefox 默认较宽的滚动条也落在 48px 让位区内,不会碰到轨道,无需动两端 index.css 镜像。

Change scope

  • Modules: agent-ui(桌面端 GUI 与网关 WebUI 共用同一份 composer,改一处两端同时生效)
  • Key paths:
    • crates/agent-ui/src/pages/chat/ChatComposerBar.tsx —— 编辑器行 pl-4 pr-12,编辑器 className 去掉 pr-8
    • crates/agent-gui/test/chat/context-usage.test.mjs —— 新增布局不变量测试

Screenshots / preview

41b9ecbe6003da78b61be6f8da3423c3_720

Verification

  • cd crates/agent-gui && node --test test/chat/*.test.mjs —— 616 passed / 0 failed
  • cd crates/agent-gateway/web && npm test —— 557 passed / 0 failed
  • cd crates/agent-ui && npx biome check src/pages/chat/ChatComposerBar.tsx —— clean
  • 新增测试 composer editor row reserves the right control rail so the scrollbar clears the ring 锁住不变量:让位必须做在编辑器外层容器上,编辑器不得复活 pr-8(下次有人"顺手"把 padding 挪回去会直接红)

Pre-submit checklist

  • A requirement issue is linked (or this is a trivial fix that needs no issue, as explained in the summary).
  • Synced with the target branch; no merge conflicts.
  • The change is focused, with no unrelated modifications.
  • No secrets, tokens, or personal data included.
  • Docs are updated for changes affecting user behavior, deployment, or configuration.(纯布局修复,代码注释已同步说明为何让位不能做在编辑器上)

展开/还原按钮、上下文用量环、发送按钮都是 right-3 + w-8,共同占据输入框
卡片右缘 44px 宽的竖直轨道;而编辑器所在行只有 px-4,让位靠编辑器自身的
pr-8。padding 不改变滚动条位置——overflow-y:auto 的滚动条恒贴元素 border
box 右缘,pr-8 只把文字推开、留下那条 6px 滚动轨停在距卡片右缘 16–22px
处,正好压在环心与展开图标下方。

改为把让位提升成布局让位:编辑器外层容器 px-4 → pl-4 pr-12(48px = 44px
轨道 + 4px 间隙),收窄编辑器 border box,滚动条随之被推到轨道左侧;编辑器
不再补 pr。文本可用宽度不变(W−16−16−32 = W−16−48),仅溢出时同样多让出
6px 给滚动条。

顺带修掉两个同源表现:占位符 ::before 的包含块是外层 wrapper,此前窄屏会
钻到按钮底下;展开态用量环浮在正文中央同样压字,现在都落在让位区内。

Closes #437
@StackCairn
StackCairn marked this pull request as draft August 12, 2026 13:52
@github-actions

Copy link
Copy Markdown
Contributor

PR governance checks failed — this PR has been converted to draft.

  • UI change without screenshots: this PR modifies frontend code. Please add before/after screenshots or a recording under "Screenshots / preview" in the PR body.

Fix the items above, then click Ready for review to re-run the checks.

@su-fen su-fen added the governance-exempt Skip PR governance checks label Aug 12, 2026
@su-fen
su-fen marked this pull request as ready for review August 12, 2026 13:53
@su-fen
su-fen merged commit fac4739 into main Aug 12, 2026
9 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

governance-exempt Skip PR governance checks

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] 提示词输入框:用量环与展开按钮被编辑器滚动条压住

1 participant