Repository navigation
Conversation
ventupx
force-pushed
the
contrib/top-tab-styles
branch
from
October 21, 2026 07:37
10547db to
05d4318
Compare
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.
Result / 用户结果
Top tabs follow their title width, capped at 220 logical pixels. Appearance settings offer Chrome, Minimal and Tag treatments. Long names stay still and fade out at the trailing edge in every state; the shell indicator stays on the right and yields to hover-close. Chrome tabs use larger lower curves, overlapping feet and content padding without separator lines. The titlebar and terminal top inset are more compact.
Design / 设计边界
nebula_settings::TabStyleowns saved values/default/reset; top-tab layout owns shared geometry for rendering, overflow navigation and frozen drag snapshots. Presentation stays in the tab style/label modules. Changing the tab count invalidates stale drag snapshots. Sidebar ordering semantics stay intact. The optional OneDark treatment checks the existing stable theme identifier, so this branch builds independently of the separate theme proposal.This focused branch starts from upstream
8d6295595e084a12f9c2fe159f65c2dcd332d866. It excludes fork release/version/package metadata. Under the repository'spr-sizeexclusions, it changes 1178 counted lines, within the 1500-line default.Evidence / 验证依据
Executed on Windows against this branch:
python scripts/check_architecture.py --base upstream/main— passed; existing budgets unchanged.python -m unittest scripts.tests.test_architecture_budgets scripts.tests.test_architecture_dependencies scripts.tests.test_architecture_governance— successful (55 tests, 3 platform-specific skips).cargo test --manifest-path tools/i18n-contract/Cargo.toml --locked— 24 passed, 1 existing ignored test.cargo test -p nebula-settings --locked— 101 passed.cargo test -p nebula --test file_line_budget --locked— 2 passed.cargo fmt --all -- --checkandgit diff --cached --check— passed.cargo check -p nebula --bin pebrel --features gpui-test-support --tests --locked— passed.cargo test -p nebula --bin pebrel --features gpui-test-support --locked --no-run— passed. Targeted GPUI tests use the same interaction-test feature as upstream CI and the filters below with-- --test-threads=1: 39 passed.Filters:
workspace::top_tabs::,workspace::settings_navigation::ui_tests::,workspace::window_titlebar::,tab_style_settings_tests::,terminal_grid_keeps_inset_coordinates,terminal::view::reading::tests::.Regression coverage: Mixed-width navigation and dragging in both directions; all three rendered styles; CJK/long titles; static fade under selection/hover; padding and close hitboxes across Chrome overlaps; canceled stale drag snapshots; terminal pointer inset; keyboard persistence, reopen and Escape cancellation.
Localization: New style labels/descriptions use typed IDs in English and Simplified Chinese, with the existing English fallback elsewhere.
Visual/platform scope: the integrated changes were manually reviewed in a Windows preview before this split. These branch checks exercise rendered hitboxes/state and keyboard input where applicable; new screenshot captures and a DPI matrix were not run for this head. Linux/macOS current-head validation is left to upstream CI. The earlier full integrated-source validation passed 24 jobs at
6e86ea5c3ff29671043dfc62a788f1d4fde80732; that is supplemental evidence, not a check result for this PR head.Runtime cost: Overflow glyphs are shaped once per label paint and reused across 24 bounded fade bands. Fading adds no animation/timer; no dedicated allocation or frame-time benchmark is claimed.
Required Review / 必须确认
CONTRIBUTING.md,docs/architecture.md, anddocs/project-constraints.md.