Skip to content

Improve split pane behavior and UI polish#585

Open
Finesssee wants to merge 9 commits intoathasdev:masterfrom
Finesssee:split-pane-pr
Open

Improve split pane behavior and UI polish#585
Finesssee wants to merge 9 commits intoathasdev:masterfrom
Finesssee:split-pane-pr

Conversation

@Finesssee
Copy link
Copy Markdown
Contributor

Summary

This pulls the split-pane work out into its own PR instead of burying it inside the larger Pi/Harness parity branch.

It does three things:

  • prevents split panes from collapsing into unusable slivers and auto-repairs bad restored ratios
  • changes generic split actions to create a new empty pane instead of duplicating the active tab
  • polishes split-pane UI so empty panes, active focus, resize handles, and narrow layouts feel intentional

What changed

Split sizing and recovery

  • raise the minimum pane threshold to 20%
  • normalize collapsed split pairs to 40/60 on drag release
  • repair previously bad split ratios on restore/startup

Split semantics

  • generic split actions now open an empty pane and focus it
  • tab-context split actions still open the selected tab in the new pane
  • generic UI copy now says Split Pane

Split UI polish

  • always show structural tab chrome for empty panes
  • make active pane focus clearer with calmer hierarchy
  • slim the resize handle visually while keeping a generous hit area
  • hide nonessential tab chrome in narrow panes so cramped splits stay usable

Verification

Ran on this branch:

  • bun typecheck
  • bun lint
  • bunx vp test run src/features/panes/stores/pane-store.test.ts src/features/panes/utils/pane-tree.test.ts
  • bunx vp build
  • git diff --check

Watched-app verification used the existing local X11/VNC flow and screenshots:

  • /tmp/athas-split-empty-after-key.png
  • /tmp/athas-empty-split-normal.png
  • /tmp/athas-empty-split-narrow.png
  • /tmp/athas-tab-context-split.png

Notes

The repo's full pre-push gate on this branch still trips over upstream master Rust issues that are unrelated to this PR:

  • cargo fmt --check --all reports formatting drift in crates/runtime and crates/tooling
  • cargo check --workspace fails on Linux in src-tauri/src/commands/ui/window.rs because hidden_title(...) is not available on this target

I left those out of this PR on purpose so the split-pane extraction stays scoped.

- Ensure empty panes always render tab bar structure and New Tab '+' button
- Add subtle ring and z-index to active pane container for focus clarity
- Dim inactive tab bars to opacity-60 for calm visual hierarchy
- Refine resize handles from 4px to 1px visual line while keeping generous hit area
- Hide non-essential tab bar buttons (back/forward/split/fullscreen) on narrow panes
@Finesssee Finesssee closed this Apr 2, 2026
@Finesssee Finesssee reopened this Apr 2, 2026
@mehmetozguldev mehmetozguldev self-requested a review April 6, 2026 12:52
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.

1 participant