fix(vscode): fit settings sidebar to localized section labels - #12032
Merged
Conversation
The settings sidebar used a fixed 150px width that clipped long localized labels (e.g. German 'Automatisch genehmigen', 'Autovervollständigung'). The Kilo override intended to set 180px but was dead: it lacked the [data-orientation=vertical] qualifier the upstream rule has, so the upstream 150px won on specificity. Match the upstream selector specificity and switch to content-driven sizing (width: auto, min-width: 180px) so the list grows to fit the longest translated label instead of truncating it.
marius-kilocode
enabled auto-merge (squash)
July 8, 2026 08:16
Contributor
Code Review SummaryStatus: No Issues Found | Recommendation: Merge The fix correctly equalizes selector specificity with the upstream Files Reviewed (2 files)
Reviewed by claude-sonnet-5-20260630 · Input: 24 · Output: 11.5K · Cached: 519.2K Review guidance: REVIEW.md from base branch |
johnnyeric
approved these changes
Jul 8, 2026
t7tran
pushed a commit
to t7tran/kilocode
that referenced
this pull request
Aug 14, 2026
…rg#12032) The settings sidebar used a fixed 150px width that clipped long localized labels (e.g. German 'Automatisch genehmigen', 'Autovervollständigung'). The Kilo override intended to set 180px but was dead: it lacked the [data-orientation=vertical] qualifier the upstream rule has, so the upstream 150px won on specificity. Match the upstream selector specificity and switch to content-driven sizing (width: auto, min-width: 180px) so the list grows to fit the longest translated label instead of truncating it.
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.
Problem
The settings sidebar clipped localized section labels in non-English languages. German labels like "Automatisch genehmigen" and "Autovervollständigung" (22 chars) were truncated with an ellipsis because the sidebar was only 150px wide.
Before:

After:

Root cause
Two competing CSS rules set the settings sidebar width, and the wrong one won on specificity:
packages/ui/src/components/tabs.css—[data-orientation="vertical"][data-variant="settings"]setswidth: 150px(200px at viewport ≥ 640px). Specificity (0,4,0).packages/kilo-ui/src/components/tabs.css—[data-variant="settings"](missing thedata-orientationqualifier) intendedwidth: 180pxbut only has specificity (0,3,0), so the upstream 150px always won. The Kilo override was effectively dead code.A fixed 180px would also still be too narrow for the longest translations across all locales (e.g. Italian "Informazioni su Kilo Code", Spanish "Comportamiento del agente", Polish "Automatyczne zatwierdzanie" — ~25 chars).
Fix
In
packages/kilo-ui/src/components/tabs.css:[data-orientation="vertical"]qualifier so the Kilo rule matches the upstream selector specificity and actually takes effect.width: 180pxto content-driven sizing:width: auto; min-width: 180px. The sidebar now grows to fit the longest translated label instead of truncating it, while keeping a sensible minimum for short locales. The content panel already hasflex: 1, so it absorbs the remaining space.This is entirely Kilo-owned CSS (
packages/kilo-ui/), so nokilocode_changemarkers are needed and there is no upstream merge impact.Verification
Built the extension and verified in an isolated VS Code self-test instance. Queried the live settings webview DOM: all 16 section labels render with
clipped: false(triggerscrollWidth≤clientWidth), and the list width is 180px for English (the min-width floor). Longer locales will expand beyond that as needed.