fix(provider-icons): colorize brand icons and correct the OpenCodeX mark - #1037
Merged
Merged
Conversation
- opencode.svg is now the real OpenCodeX mark (rounded-square ring with diagonal slash) in the brand accent instead of the placeholder frame - all provider icons render with their official brand colors (explicit fills; monochrome/currentColor variants replaced) - providers without a logo asset get a deterministic colored initial-letter tile instead of the generic server icon - Usage surface marks use the colored variants; dark-mode invert filter removed so brand colors stay correct
Contributor
📝 WalkthroughWalkthroughProvider workspace icons now use localized fallback marks with deterministic colors and initials. Usage filters use colored Claude and xAI assets. Dark-theme inversion rules for usage source marks were removed. ChangesProvider icon visual updates
Estimated code review effort: 2 (Simple) | ~10 minutes Sequence Diagram(s)sequenceDiagram
participant ProviderIcon
participant Translation
participant ProviderFallbackMark
participant ProviderIconStyles
ProviderIcon->>Translation: Resolve localized provider name
Translation-->>ProviderIcon: Return display name
ProviderIcon->>ProviderFallbackMark: Pass name and label
ProviderFallbackMark->>ProviderIconStyles: Apply fallback styling
ProviderIconStyles-->>ProviderFallbackMark: Render colored initial tile
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
…viewBoxes - opencode.svg keeps the original frame + inner-field shape (as in the shipped logo) and is now colored in the brand accent instead of gray - every provider SVG is normalized to viewBox 0 0 24 24 with no fixed width/height, so icons render at the CSS size of their slot instead of intrinsic sizes ranging from 16px (1em) to 800px
… grok mark xAI has no colored logo, so grok-color.svg was a duplicate of grok.svg that only rendered black. Remove it and point the xai alias and the Usage surface mark at grok.svg (explicit black fill).
…duplicates - opencode.svg renders the brand frame in #211E1E (the warm dark tone from the official logo asset) with a transparent inner field; no more pink - remove unused monochrome variants where a -color logo exists and is the only referenced asset: claude.svg, gemini.svg, copilot.svg, antigravity.svg, kiro.svg, cursor.svg
This was referenced Aug 5, 2026
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.
What
Provider icons across the dashboard were a mix of monochrome
currentColormarks (rendered gray in light mode), Simple-Icons-style paths without any fill
(rendered solid black), icons with wildly different intrinsic sizes (16 px from
width="1em"up to 800 px), and a generic server icon for providers without anasset. The OpenCodeX mark itself rendered in gray instead of the brand color.
Changes
opencode.svgkeeps the original frame shape (as in theshipped logo) and renders in the official warm dark tone
#211E1Ewith atransparent inner field — no more gray placeholder or accent-purple — used by
the OpenCode providers in the rail and the API tab's OpenCode export-client
row.
official brand-color fill (Anthropic clay, Gemini gradients, NVIDIA green,
Cloudflare orange, Mistral orange, Groq orange, DeepSeek blue, Xiaomi orange,
Baidu blue, Hugging Face yellow, GitLab orange, Alibaba orange, Fireworks
pink, LM Studio purple, Moonshot blue, Qwen indigo, OpenRouter indigo, vLLM
blue, OpenAI brand purple, plus black for officially black brands: xAI,
Ollama, Vercel, GitHub Copilot, Kimi). xAI uses the plain monochrome
grok.svg— the previous
grok-color.svgwas a duplicate that only rendered black, so itwas removed.
a
-colorlogo is the only referenced asset —claude.svg,gemini.svg,copilot.svg,antigravity.svg,kiro.svg,cursor.svg(Gemini keeps onlyits colored variant).
viewBox="0 0 24 24"with no fixedwidth/height, so every icon renders atthe CSS size of its slot instead of its intrinsic size (previously 16 px up to
800 px depending on the file).
providers now get a deterministic colored initial-letter tile (hue derived
from the provider id) instead of the gray server icon — in the rail, provider
details, and the overview dashboard.
colored variants; the dark-mode
invert(1)filter was removed so brand colorsstay correct in both themes.
Verification
bun run buildgreenbun run lintgreenbun test tests— 584/584 green (usage-grok-filter test updated to thecolored asset)
bun x tsc --noEmitgreenNotes
Ollama, Vercel, GitHub Copilot, Kimi) render in their official black/brand
color rather than an invented color.