DS0
Components

Splitter

A resizable panel divider for creating adjustable split layouts.

Overview

Splitter creates a resizable split layout where users can drag a divider to resize adjacent panels. Supports horizontal and vertical orientations with min/max constraints.

Usage

<Splitter>
  <Splitter.Panel minSize={20}>
    <nav>Sidebar content</nav>
  </Splitter.Panel>
  <Splitter.Handle />
  <Splitter.Panel>
    <main>Main content</main>
  </Splitter.Panel>
</Splitter>

Vertical Split

<Splitter orientation="vertical">
  <Splitter.Panel><Editor /></Splitter.Panel>
  <Splitter.Handle />
  <Splitter.Panel><Preview /></Splitter.Panel>
</Splitter>

Accessibility

KeyAction
ArrowLeft/RightResize panels (horizontal)
ArrowUp/DownResize panels (vertical)
HomeCollapse to minimum
EndExpand to maximum
  • Handle has role="separator" with aria-orientation
  • aria-valuenow reflects current position

API Reference

PropTypeDefaultDescription
orientation'horizontal' | 'vertical''horizontal'Split direction
childrenReactNodePanels and handles

Splitter.Panel Props

PropTypeDefaultDescription
defaultSizenumberEqual distributionInitial size (%)
minSizenumber10Minimum size (%)
maxSizenumber90Maximum size (%)
collapsiblebooleanfalseAllow full collapse
ComponentWhen to Use Instead
GridFixed grid layout
StackNon-resizable linear layout

On this page