refine left nav: project glyphs, activity indicators, and design tokens#8547
Open
refine left nav: project glyphs, activity indicators, and design tokens#8547
Conversation
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
Category: improvement
User Impact: The sidebar navigation looks cleaner and more polished, with consistent folder icons for projects, subtler activity indicators, and softer placeholder text across the app.
Problem: The left nav had visual inconsistencies — projects used plain colored dots that didn't read as "project," activity indicators used a brand color that competed with the UI, section dividers were heavy visible lines, and placeholder text across inputs was too prominent.
Solution: Replace colored dots with colored folder icons via a shared
ProjectGlyphcomponent, switch activity indicators fromtext-brandto a new--color-text-info-strongsemantic token for better visual hierarchy, remove the visible divider line and⌘Kbadge from the sidebar, and introduce a--text-placeholdertoken used consistently across all input components.File changes
ui/goose2/src/shared/ui/ProjectGlyph.tsx
New shared component that renders a colored Lucide
Foldericon, replacing the ad-hoc colored dots used to represent projects.ui/goose2/src/features/chat/ui/ChatInputToolbar.tsx
Swapped the inline
ProjectDot(colored<span>) for the newProjectGlyphcomponent.ui/goose2/src/features/projects/ui/CreateProjectDialog.tsx
Color picker now shows
ProjectGlyphicons inside rounded button containers instead of plain colored circles.ui/goose2/src/features/projects/ui/ProjectsView.tsx
Project list cards now use
ProjectGlyphinstead of a colored dot span.ui/goose2/src/features/settings/ui/SettingsModal.tsx
Project list in settings now uses
ProjectGlyphinstead of a colored dot span.ui/goose2/src/features/sidebar/ui/Sidebar.tsx
Removed the
⌘Kkeyboard hint from search, shortened the search placeholder, replaced the visiblebg-borderdivider with spacing, updated the Goose icon totext-foreground, and addedmb-4spacing below search.ui/goose2/src/features/sidebar/ui/SidebarChatRow.tsx
Added
reserveActivitySpaceprop so the activity indicator column can be conditionally shown. Moved the indicator to the left of the title text.ui/goose2/src/features/sidebar/ui/SidebarProjectsSection.tsx
Replaced colored dots with
ProjectGlyphin both expanded and collapsed views. Updated section labels from uppercase/light to normal-case/medium with reduced opacity. Replaced visible divider lines with spacing.ui/goose2/src/features/sidebar/ui/tests/SidebarChatRow.test.tsx
Added tests for the new
reserveActivitySpacebehavior — verifying space is not reserved for idle rows and appears only when activity exists.ui/goose2/src/shared/ui/SessionActivityIndicator.tsx
Replaced
text-brand/bg-brandwith semantic--color-text-info-strong/--color-background-info-strongtokens. Added fade-in transitions for smoother appearance. Reduced unread dot size slightly.ui/goose2/src/shared/ui/SessionActivityIndicator.test.tsx
Updated assertions to match the new semantic token class names.
ui/goose2/src/shared/styles/globals.css
Added new semantic tokens:
--text-placeholder,--color-blue-300,--background-info-strong,--border-info-strong, and--text-info-strongfor both light and dark themes.ui/goose2/src/shared/ui/command.tsx
Updated placeholder color from
text-muted-foregroundtovar(--text-placeholder).ui/goose2/src/shared/ui/input.tsx
Updated placeholder color from
text-muted-foregroundtovar(--text-placeholder).ui/goose2/src/shared/ui/textarea.tsx
Updated placeholder color from
text-muted-foregroundtovar(--text-placeholder).ui/goose2/src/shared/i18n/locales/en/sidebar.json
Shortened search placeholder to "Search conversations".
ui/goose2/src/shared/i18n/locales/es/sidebar.json
Shortened search placeholder to "Buscar conversaciones".
Reproduction Steps
Screenshots/Demos
🤖 Generated with Claude Code