feat(ui): polish chat interface, message bubbles, upload zone & header#10
Merged
Conversation
…ader - ChatArea: replace input with auto-growing textarea (Shift+Enter newline, Enter to send), rewrite message bubbles (blue pill for user, card for assistant, warning tint for errors), enclose typing indicator in a chat bubble, improve empty-state with Sparkles icon, spin send button while generating, add hint text below input - Sidebar: move upload zone above document list and enlarge it, add PDF badge + drag glow effect, replace text progress with Loader2 spinner + gradient progress bar, add colored icon per status (success/warning/ primary), show error state with orange tint, thin custom scrollbar - Header: add gradient logo mark, animated ping on connection dot, remove redundant Upload button, show indexed/total doc count inline - globals.css: add ::selection highlight, scrollbar-thin utility class Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
This PR overhauls the entire frontend UI across
ChatArea,Sidebar, andHeaderwithout touching any backend logic or API contracts. The focus is on visual polish, better UX affordances, and a cleaner layout — every existing feature continues to work exactly as before.Changes by component
ChatArea.tsxbg-accent-primary,rounded-2xl rounded-tr-sm). Assistant messages are left-aligned card bubbles with a bot-avatar circle. Error messages (no docs, API failure) get an orange warning tint (bg-accent-warning/10) instead of a left border.framer-motionbounces.<input>with an auto-growing<textarea>(max 140 px).Entersends,Shift+Enterinserts a newline. A hint line below the box reminds users of the shortcut.Sparklesicon inside a gradient rounded square with a green status dot. Added a short description line below the heading.AnimatePresenceso they fade out gracefully once the first message is sent.Sidebar.tsxbg-accent-primary/5), icon lift animation on hover/drag, PDF format badge, and clearer copy ("Drag & drop or click to browse").indexed→ greenCheckCircle2+ "Indexed at HH:MM"Loader2+ status label + gradient progress barerror→ orangeAlertCircle+ orange-tinted card borderfrom-accent-primary to-blue-400with a smoothframer-motionwidth animation. Replaces the raw text percentage display.scrollbar-thinutility class for a subtle 4 px scrollbar instead of hiding it entirely.X/Y indexedratio inline instead of just the total count.Header.tsxfrom-accent-primary to-blue-400) with a white "R" before the wordmark.animate-pingoverlay for a live pulse effect.indexed/total docsonly when at least one document exists, keeping the header clean on first load.globals.css::selection— Brand-blue highlight (rgba(74,125,255,0.25)) for selected text.scrollbar-thin— New utility: 4 px wide,#3a3a3fthumb on transparent track, using bothscrollbar-width: thin(Firefox) and::-webkit-scrollbar(Chrome/Safari).What was NOT changed
sendChat,uploadPdf) are untoucheduseStore) is untouchedTest plan
Enterto send,Shift+Enterfor newline🤖 Generated with Claude Code