Improve the chat input field - #420
Conversation
TheGreatAxios
left a comment
There was a problem hiding this comment.
critique · no blockers
The composer is now a full-width bordered column: draft on top, attach / Enter-to-send / send ArrowUp in a bottom rail. Hover-edit setText, Enter send, attachments, and send-disabled-while-sending all survive the merge onto current main. chat-ui composer tests pass.
Should-fix that landed on this branch before merge: the keyboard hint was opacity-only, so screen readers still announced “Enter to send” on an empty composer. Restored visibility: hidden plus aria-hidden until the draft is focused and non-empty.
Visual notes (not blocking): --ui-radius-lg is 0 in product so the box stays square; attach/send stay pills; focus is a --primary color swap rather than the old foreground inset hairline. Those match first-run composer more than the previous conversation row.
CI on this updated head (main merged in) is the merge gate.

Before
The composer felt like a thin, detached text field. Typing a message or using commands introduced excess vertical space and pushed the controls away from the draft, so the whole surface looked unbalanced.
After
The input is now one full-width, bordered surface: the draft stays at the top and the actions remain anchored in a compact bottom rail. The keyboard shortcut appears only for a focused, non-empty draft, without creating extra padding. Attachment and send controls stay icon-only.
Verification
bun test test/composer.test.tsx && bun run typecheckinpackages/chat-uibun run buildinapps/webbun run checkis still blocked by an existing Hono 4.13.2/4.13.3 type mismatch in unchanged packages; dependency resolution was deliberately left out of this UI contribution.