Skip to content

[Design] Improve drag-and-drop of Panels - #355

Merged
danyaberezun merged 1 commit into
mainfrom
enhance-drag-drop-discoverability
Sep 1, 2026
Merged

[Design] Improve drag-and-drop of Panels#355
danyaberezun merged 1 commit into
mainfrom
enhance-drag-drop-discoverability

Conversation

@juliashilovaa

@juliashilovaa Julia Shilova (juliashilovaa) commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

Draft — still needs refinement. One known issue is that Terminal can currently only be opened by dragging it out of the bottom panel; when the bottom panel is absent, there is no other way to open Terminal yet.

This PR explores a more discoverable drag-and-drop model for the flexible panel layout. When a tab is picked up, available drop targets become visible. Hovering a target makes it more prominent and previews where the tab will be placed.

The goal is to make it clear that any tab can be moved to different areas of the layout without keeping the bottom panel permanently visible. When the bottom area is empty, it disappears completely and only appears as a drop target while dragging.

The interaction and drop-zone behavior follow the current Figma exploration and still need some visual/behavioral tuning before this is ready to merge.

Demo

Drag-and-drop discoverability demo

Screenshots

State
Resting — no drop-zone chrome resting
Drag started — every valid destination revealed subtly drag started
Hovering a center-split target — the true resulting half fills hover split half
After dropping — side-by-side split created after split
Bottom hidden — no resting chrome, reserves no height bottom hidden
Dragging a bottom-eligible tab — 24px drop zone (subtle) bottom subtle
Hovering the bottom drop zone — stronger treatment bottom strong

@juliashilovaa Julia Shilova (juliashilovaa) changed the title Improve drag-and-drop discoverability [Design] Improve drag-and-drop of Panels Aug 31, 2026
@danyaberezun
danyaberezun marked this pull request as ready for review September 1, 2026 19:40

@jetbrains-air jetbrains-air Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requesting changes — please address the blocking inline finding.

Comment thread e2e/layout.spec.ts Outdated
Reveal every currently-valid docking destination the instant a movable
tab is picked up (subtle Primary treatment), then emphasize the one under
the pointer (strong Primary), so the flexible panel/tab layout teaches
itself. Two states derived from the existing drag state + each site's
already-computed validity — no second drag-state machine, semantic Primary
tokens only.

- Tab headers outline the whole valid group (not individual tabs).
- Center split: compact per-direction edge hints on drag-start; the true
  resulting half fills on hover.
- Bottom docking: the persistent "Show bottom panel" rail is removed — an
  empty/hidden bottom now renders no chrome and reserves no height; during
  a compatible drag a 24px Primary drop zone appears over the accepting
  span (keyboard Mod+Shift+J still restores). View-scoped only; the layout
  document model, sync, and persistence are unchanged.

Updates the layout SPEC and the bottom-panel/layout e2e specs to match.
@danyaberezun
danyaberezun force-pushed the enhance-drag-drop-discoverability branch from 5e1b67d to 2bd042b Compare September 1, 2026 20:02

@jetbrains-air jetbrains-air Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved — ready to merge.

@danyaberezun
danyaberezun added this pull request to the merge queue Sep 1, 2026
Merged via the queue into main with commit 3df38f8 Sep 1, 2026
6 checks passed
@danyaberezun
danyaberezun deleted the enhance-drag-drop-discoverability branch September 1, 2026 20:39
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.

2 participants