Skip to content

Space redistribution strategies across non-adjacent panes #59

Description

@gfazioli

Motivation

Core Splitter's redistribute option ('nearest' | 'equal' | custom fn) lets a drag borrow space from non-adjacent panes once the immediate neighbor hits its min/max. Split currently only affects the two panes adjacent to the dragged resizer — with 3+ panes and tight constraints, drags dead-stop where core keeps flowing.

Proposal

  • redistribute?: 'none' | 'nearest' | 'equal' | (ctx) => sizes on Split (default 'none' = current behavior, no breaking change)
  • 'nearest': borrow from the closest pane in the drag direction with available room
  • 'equal': distribute the overflow equally among all panes in the drag direction with room
  • Custom function receives current sizes (px), pane constraints, resizer index and delta

Design considerations

  • Must compose with grow panes, snap points and (future) collapsible panes
  • Keyboard resize should follow the same strategy as drag

Acceptance criteria

  • 3-pane demo where dragging past a min keeps resizing by borrowing from the third pane
  • Strategy honored by drag and keyboard alike
  • Comparison table 'Space redistribution strategies' row updated from ✗ to ✓

Filed as part of the Mantine 9.3 comparison audit (2026-06-04).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions