Splitter

Splitter is utilized to separate and resize panels.

1
2
PREVIEW

Divides a layout into resizable panels with a draggable divider.

1
2
basic-demo

Panels are stacked when layout is set to vertical.

1
2
vertical-demo

Initial dimensions are percentage based and provided through sizes on Splitter. Per-panel constraints are configured with minSize and maxSize.

1
2
size-demo

Each panel can declare a minSize and a maxSize in percentages. The splitter ensures the panel cannot shrink below minSize nor grow beyond maxSize during a resize.

1
2
1
2
3
minmax-demo

Adding collapsible to a panel allows it to snap to collapsedSize (default 0%) once it is dragged past the halfway point between collapsedSize and minSize. Keyboard resize collapses immediately when the panel reaches minSize.

1
2
1
2
collapsible-demo

Splitters can be nested by placing another Splitter inside a SplitterPanel.

1
2
3
4
nested-demo

Splitter emits resizestart, resize, and resizeend while a gutter is being dragged, and collapse whenever a collapsible panel snaps to or out of collapsedSize. Every event carries the current sizes.

onResizeStart: [50.0%, 50.0%]
onResize: [50.0%, 50.0%]
onResizeEnd: [50.0%, 50.0%]
onCollapse: –
1
2
resize-events-demo

Binding the panel sizes with v-model:sizes turns the Splitter into a controlled component. Persisting the bound state to localStorage keeps the layout across page reloads. The built-in stateKey/stateStorage pair offers the same persistence without manual bookkeeping.

1(30.0%)
2(70.0%)
stateful-demo

When disabled is present on the splitter, every gutter becomes non-interactive. The splitter is rendered with data-disabled, which the theme uses to fade the gutter and turn off pointer interactions.

1
2
3
disabled-demo

The default appearance is fully overridable through Tailwind utilities on the panels and the pt API on the gutter. Below, panels become colored badge containers and the gutter is rendered as a thin rounded bar.

1
2
custom-demo

A real-world layout combining a collapsible navigation pane, a custom gutter handle and a viewport that adapts to the current sizes. The pane switches to a compact list once its width drops below 28%.

  • Amy Elsner10:24 AM
    Q1 Marketing Report
    Hi team, I've attached the Q1 marketing report. Please review the campaign metrics and share your feedback before our meeting on Friday.
  • Bernardo Dominic9:15 AM
    Design System Update
    The new design tokens are ready for review. I've updated the color palette and typography scale based on our last discussion.
  • Ioni BowcherYesterday
    Sprint Retrospective Notes
    Here are the notes from yesterday's retro. Key takeaways: improve code review turnaround and schedule more pair programming sessions.
  • Stephen ShawYesterday
    Server Migration Plan
    The migration to the new cloud infrastructure is scheduled for next weekend. Please ensure all services have proper health checks configured.
  • Elwin SharvillMonday
    New Component Library Release
    Version 4.0 of the component library is now available. Major changes include accessibility improvements and new theming capabilities.

Q1 Marketing Report

10:24 AM
Amy Elsner

Hi team, I've attached the Q1 marketing report. Please review the campaign metrics and share your feedback before our meeting on Friday.

advanced-demo

Screen Reader

Splitter gutter defines separator as the role with aria-orientation set to either horizontal or vertical. Each gutter provides aria-valuenow, aria-valuemin, and aria-valuemax to communicate panel sizes. Adjacent panels are linked via aria-controls.

Keyboard Support

KeyFunction
tabMoves focus through the splitter bar.
down arrowMoves a vertical splitter down.
up arrowMoves a vertical splitter up.
left arrowMoves a horizontal splitter to the left.
right arrowMoves a horizontal splitter to the right.
Theme Designer