Skip to content

fix: make goose2 respect accent color - #8952

Merged
morgmart merged 2 commits into
mainfrom
kalvin/goose2-accent-color
May 1, 2026
Merged

fix: make goose2 respect accent color#8952
morgmart merged 2 commits into
mainfrom
kalvin/goose2-accent-color

Conversation

@kalvinnchau

@kalvinnchau kalvinnchau commented May 1, 2026

Copy link
Copy Markdown
Collaborator

Category: fix
User Impact: Goose2 now applies the selected accent color consistently across themed controls, loading states, and selection surfaces.
Problem: Changing the accent color did not fully affect the Goose2 UI because several theme aliases still resolved to neutral accent tokens. Users could choose a color, but parts of the interface continued to look disconnected from that preference.
Solution: This PR promotes the saved accent color into the core brand tokens, applies matching foreground contrast, and initializes those values before React mounts so the app renders with the correct theme immediately.

File changes

ui/goose2/AGENTS.md
Updates the Goose2 documentation to match the Tailwind CSS version in use and describe the accent token behavior accurately.

ui/goose2/index.html
Adds a pre-mount theme initializer so saved theme, accent, contrast, and density values are applied before React renders.

ui/goose2/src/features/agents/ui/AvatarDropZone.tsx
Uses brand tokens for drag and hover states so avatar interactions reflect the selected accent color.

ui/goose2/src/features/settings/ui/AgentProviderCard.tsx
Updates active provider and loading indicators to use brand styling tied to the saved accent color.

ui/goose2/src/features/settings/ui/ModelProviderPanels.tsx
Uses the brand token for model inventory loading indicators.

ui/goose2/src/features/settings/ui/ModelProviderRow.tsx
Uses the brand token for authentication and inventory sync spinners.

ui/goose2/src/features/settings/ui/ProvidersSettings.tsx
Uses the brand token for provider status loading indicators.

ui/goose2/src/shared/styles/globals.css
Rewires the theme aliases so primary, sidebar, ring, accent, selection, and brand colors inherit from the configured accent color.

ui/goose2/src/shared/theme/ThemeProvider.test.tsx
Adds coverage for accent token application, hex normalization, invalid color fallback, and foreground contrast selection.

ui/goose2/src/shared/theme/ThemeProvider.tsx
Normalizes saved accent colors, computes accessible foreground colors, and applies accent-related CSS variables in one place.

Reproduction Steps

  1. Launch Goose2 and open Settings.
  2. Change the accent color to a non-default value, such as orange.
  3. Open provider settings and model provider panels.
  4. Confirm active states, loading indicators, selection color, and branded surfaces use the selected accent color.
  5. Reload the app and confirm the accent color is applied immediately without flashing back to the default blue.
accent2.mov

Comment thread ui/goose2/AGENTS.md
## Project Overview

Goose2 is a Tauri 2 + React 19 desktop app. It uses TypeScript strict mode, Vite, and Tailwind CSS 3. The codebase follows a feature-sliced architecture organized under `src/app/`, `src/features/`, and `src/shared/`.
Goose2 is a Tauri 2 + React 19 desktop app. It uses TypeScript strict mode, Vite, and Tailwind CSS 4. The codebase follows a feature-sliced architecture organized under `src/app/`, `src/features/`, and `src/shared/`.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@morgmart
morgmart added this pull request to the merge queue May 1, 2026
Merged via the queue into main with commit 9b1780b May 1, 2026
24 of 25 checks passed
@morgmart
morgmart deleted the kalvin/goose2-accent-color branch May 1, 2026 20:48
shafqatevo pushed a commit to shafqatevo/goose that referenced this pull request Aug 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants