fix(ui): align Talk settings Voice/Model/Sensitivity controls vertically#96973
fix(ui): align Talk settings Voice/Model/Sensitivity controls vertically#96973wm0018 wants to merge 1 commit into
Conversation
|
Thanks for the context here. I swept through the related work, and this is now duplicate or superseded. Close as superseded: this CSS-only branch fixes the visible alignment, but #96925 is an open, clean, proof-positive candidate for the same linked bug and removes the redundant selected-label DOM at the source with focused test updates. Canonical path: Land the cleaner source/test fix in #96925, then close the duplicate candidate branches and the linked alignment issue after merge. So I’m closing this here and keeping the remaining discussion on #96925. Review detailsBest possible solution: Land the cleaner source/test fix in #96925, then close the duplicate candidate branches and the linked alignment issue after merge. Do we have a high-confidence way to reproduce the issue? Yes. Current main source renders Voice and Sensitivity with an extra selected-label line while Model has only label plus input, and the reporter/proof screenshots show the resulting visible row mismatch. Is this the best way to solve the issue? No. The CSS mitigation aligns the visible controls, but #96925 is the better landing path because it removes the redundant DOM that causes the mismatch and updates focused tests. Security review: Security review cleared: The diff changes only Control UI CSS and introduces no dependency, CI, permission, network, secret, package, or code-execution surface. AGENTS.md: found and applied where relevant. What I checked:
Likely related people:
Codex review notes: model internal, reasoning high; reviewed against 9a735bea03f6. |
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
ClawSweeper applied the proposed close for this PR.
|
What Problem This Solves
Fixes an issue where users who open the Talk settings panel in the Control UI webchat see the Voice, Model, and Sensitivity input fields vertically misaligned in the primary settings row. Model's
<input>sits higher than Voice and Sensitivity's<select>elements, making the row look uneven.Why This Change Was Made
Voice and Sensitivity are rendered via
renderNativeTalkSelect()which emits aselectedLabelline above the<select>, creating a 3-row flex layout. Model is a plain<label>with only a label<span>and an<input>, creating a 2-row layout. Since all three are in the same CSS grid row, the shorter Model column leaves its<input>at the top while the taller columns push their<select>down by the extra label height.[label]+[selectedLabel]+[select][label]+[input][label]+[selectedLabel]+[select]The fix adds
margin-top: autoto the last child of.agent-chat__talk-field, which pushes every input/select to the bottom of its flex container. Because the grid row height is driven by the tallest column, all control elements end up at the same vertical position.This is preferred over adding a hidden spacer span because it is:
Non-goal: this does not change any Talk settings behavior, values, callbacks, or mobile layout. It only fixes the visual alignment in the primary row.
User Impact
Users opening Talk settings will see Voice, Model, and Sensitivity controls aligned on the same horizontal row instead of the Model input sitting visibly higher. No functional changes — values, interactions, and accessibility labels are unaffected.
Evidence
pnpm test ui/src/ui/views/chat.test.ts)ui/src/styles/chat/layout.cssmargin-top: autoon flex last-child, a standard Flexbox alignment techniqueBefore — Model's
<input>sits ~21px higherAfter — controls align at the same row
Closes #96915