Repository navigation
fix(ui): build tab strips on gpui-base Tab and Tabs - #568
Merged
Merged
Conversation
The settings nav, the terminal tab strip, the right-panel tabs and the model picker's provider rail each hand-made their Role::Tab clickables and TabList containers; they are now gpui-base Tab elements inside Tabs lists, through material::tab for the focus ring, and keep only their own styling.
Owner
Author
|
Visual check done on the desktop binary (throwaway profile, seeded project) in light and dark, and on the phone example:
|
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.
Changed behaviour
Five tab strips — the settings navigation, the terminal drawer's tab strip, the right panel's Diff/Plan tabs and the model picker's provider rail (desktop and compact) — each hand-made their
Role::Tabclickables withaccessible_clickableand theirRole::TabListcontainers. They are nowgpui_base::Tabelements insidegpui_base::Tabs, which own the tab role,aria-selected, activation and press handling;material::tabadds the keyboard focus ring and pointer cursor, and each site keeps only its own layout and colours. The provider rail'sTabssits inside the existing scroll area (baseTabsis not a scroll container).Stacked on #567 (shares
material::focus_ring); retarget tomainonce that merges.Per Principle 7 as extended in #564.
Tests
Existing tests cover the strips' presence and switching (
shellright-panel tests, settings and picker tests) and all pass. Tab activation and accessibility are gpui-base's own tested contract; no tcode-specific contract changed.Checks run
cargo fmt --all --check,cargo clippy --workspace --all-targets --locked -- -D warningscargo nextest run -p tcode-ui --locked— 347 passedNot verified visually (no Accessibility/Screen Recording permission for the computer-use tools here). Base
Tabcentres its content by default; the two left-aligned strips (settings nav, terminal tabs) setjustify_startto keep their layout. Please glance at the settings page, the terminal drawer and the right-panel tabs before merging, or grant the permission and I will.