UI polish: TUI redesign pass (chat, home, server/setup, settings) - #39
Open
Melloss wants to merge 19 commits into
Open
UI polish: TUI redesign pass (chat, home, server/setup, settings)#39Melloss wants to merge 19 commits into
Melloss wants to merge 19 commits into
Conversation
- Composer: filled primary send button, bordered attach button, "▷ Message OpenCode…" placeholder to match design 05. - Permission prompts (session-scoped + tool-scoped): warning left-border card, buttons reordered to allow-once / always / deny with typed outlined colors. - User message: flat panel surface with a "you" label instead of primary tint. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Section labels now use monospace + letter-spacing (design 02 typography). - Home header reads "Home" instead of "[ Home ]". Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Renders the design 05 `▓▓▓░ 62%` meter right-aligned in the model/agent bar, computed from the newest assistant reply's token totals against the selected model's context window. Tints warning/error as usage climbs. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Provider auth / run errors now render as a left-border card (accent strip + monospace `provider auth error · 401` header + message), with an outlined "update key" action wired to the existing provider-auth handler. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Full-width, bottom-anchored panel over the dialog scrim instead of a centered box, with a monospace primary "Select Model" header. Search, provider filter tabs, favorites/recent/other, [R]/[T] badges and star all unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Replaces the server filter-toggle cards with a collapsible per-server tree of project rows, and restyles RECENT WORKSPACES rows to the design's ↺ + project-pill + server·recency layout. Server browsing is now expand/collapse (no enable/disable filtering); search still returns flat workspace+session results. Drops the now-unused filter-card composables, DISABLED_FILTER_ALPHA and visualLabel helper. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Setup welcome: >_ primary hero glyph and "connect to a running opencode server" tagline in the secondary accent. - Server connect: plain (de-bracketed) title and a "/" primary prefix on the URL field. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The design's most-repeated signatures were missing app-wide: - Tab bar: panel background, active tab now carries a 2px primary top-border strip on a #1e1e1e fill, 30px height, monospace labels, close × on every closeable tab, and a divided monospace "+" new-tab button + bottom border. - TuiSwitch: replaced the two-cell OFF/ON text toggle with the design's 36x20 knob-slider (square knob slides right=success / left=muted). - Status dots: SessionStatusDot and TuiStatusDot now render flat squares instead of circles, matching the design's square indicators everywhere. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- TuiTopBar now sits flush on the page background with a 0.5px bottom border (was a filled #1e1e1e bar) and a semibold title, matching the design. - New TuiSectionHeader: monospace, letter-spaced, uppercase label on a full-width panel bar with optional trailing slot, for the design's section labels across settings/lists. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Adds TuiSectionHeader group bars, switches the row chevron to › in the border tone, and adds the monospace version footer (P4OC vX · applicationId). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Replaces the Material file/folder vector icons with the design's glyph system: ▸ for folders (secondary blue), ■ for files in their type color (git status still overrides), monospace file names, and a › open-chevron on files only. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Agents: replace the rounded Material Card with a flat element surface, a square agent-color status dot and a monospace @name + built-in pill. - Add shape = RectangleShape to the remaining Material Card usages in Visual, Skills and Model-controls screens so nothing renders with rounded corners. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…n 12) Connected bordered cells with a filled active cell (element bg + semibold primary) replace the gapped FilterChip row for System/Light/Dark. Shared component is reusable for tool-display / effort selectors. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Notification and Connection settings now use the shared monospace, letter-spaced panel-bar section header instead of an inline accent title. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Matches the model picker: reasoning = [R] in info cyan, tools = [T] in accent, replacing the "Reasoning"/"Tools" text chips. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
New NotificationRoutingMode (All/Mentions/Off) persisted per server endpointKey in NotificationSettings/DataStore. NotificationEventObserver honors it via pure, tested gates: awaiting-input (permission/question) delivers unless Off; turn-complete delivers only under All. Absent entry defaults to All, so existing behavior is unchanged. NotificationSettings screen gains a "Routing · per server" section with a per-server All/Mentions/Off dropdown. Granularity is per-server rather than per-project: the app has no persisted per-workspace catalogue to enumerate in settings, and every notification event carries its serverRef so the gate is exact. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
De-brackets the title to show the filename (semibold monospace) and adds green/red addition/deletion counts in the top bar. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
Summary
Visual polish pass aligning the app with the new TUI design spec — flat/monospaced
terminal aesthetic applied across shared chrome and the core screens (Chat, Home,
Server/Setup, Settings). Same design tokens the app already used; this is UI
restructuring, not a rebuild.
back button (~17 screens)
@agent · modelheader, reworked slash-command popup, restyled permission prompts
workspace-detail session listing
capability badges
Test plan
./gradlew :app:assembleDebug— installs and launches./gradlew :app:testDebugUnitTest— passing./scripts/check_theme_violations.sh— cleanpicker, settings sections, diff viewer