https://framer.com/m/SplitPanelPro-SHYPvP.js

Io / UI Basics / SplitPanelPro

SplitPanelPro

SplitPanelPro divides a view into two panes with a handle between them. Orientation, the resting split, the bounds and the handle are props — and either pane can be collapsed away entirely without changing the markup.

Layouttwo panesresizablehorizontal or vertical

Examples

Live specimens for every control the component exposes.

Default

Two panes side by side, with a draggable handle between them.

Panel A

The left or top pane.

Its size is what the handle changes.

Panel B

The right or bottom pane.

It takes whatever space is left.

Orientation

type turns the split from side-by-side into stacked. The panes and the handle come with it.

Panel A

The left or top pane.

Its size is what the handle changes.

Panel B

The right or bottom pane.

It takes whatever space is left.

type horizontal

Panel A

The left or top pane.

Its size is what the handle changes.

Panel B

The right or bottom pane.

It takes whatever space is left.

type vertical

Collapsing a pane

layout drops to a single pane without touching the content. Useful when the same view has a detail mode and a full-width mode.

Panel A

The left or top pane.

Its size is what the handle changes.

Panel B

The right or bottom pane.

It takes whatever space is left.

layout split

Panel A

The left or top pane.

Its size is what the handle changes.

layout onlyA

Panel B

The right or bottom pane.

It takes whatever space is left.

layout onlyB

Fixed split

resize off keeps the handle in place, so the split becomes a layout decision rather than something the reader can change.

Panel A

The left or top pane.

Its size is what the handle changes.

Panel B

The right or bottom pane.

It takes whatever space is left.

resize true

Panel A

The left or top pane.

Its size is what the handle changes.

Panel B

The right or bottom pane.

It takes whatever space is left.

resize false

Props

The controls exposed on the instance panel.

PropTypeBehaviour
panelAslotContent of the first pane — left when horizontal, top when vertical.
panelBslotContent of the second pane.
layoutenumsplit shows both panes; onlyA and onlyB collapse to one.
typeenumhorizontal splits side by side; vertical stacks the panes.
resizebooleanWhether the handle can be dragged at all.
defaultobjectResting size of the first pane.
minobjectSmallest the first pane may be dragged to.
maxobjectLargest the first pane may be dragged to.
dividerobjectThickness and colour of the line between the panes.
handleobjectAppearance of the grab handle on that line.
occludebooleanClips pane content at the divider instead of letting it bleed.
PropTypeBehaviour
panelAslotContent of the first pane — left when horizontal, top when vertical.
panelBslotContent of the second pane.
layoutenumsplit shows both panes; onlyA and onlyB collapse to one.
typeenumhorizontal splits side by side; vertical stacks the panes.
resizebooleanWhether the handle can be dragged at all.
defaultobjectResting size of the first pane.
minobjectSmallest the first pane may be dragged to.
maxobjectLargest the first pane may be dragged to.
dividerobjectThickness and colour of the line between the panes.
handleobjectAppearance of the grab handle on that line.
occludebooleanClips pane content at the divider instead of letting it bleed.

Usage

Guidance carried over from the component definition.

Reach for SplitPanelPro

A view genuinely has two parts the reader may want to rebalance.

The same layout needs a two-pane and a single-pane mode.

The divider and handle should follow the theme.

The split should work both side by side and stacked.

Reach for something else

The layout is static — a stack or grid is simpler.

You need more than two areas.

Only the basic two-pane behaviour is needed — SplitPanel covers that.

Io — UI Basics

Every split above is a live SplitPanelPro instance with two slotted panes. Colour, type and radius resolve from the project theme tokens.

io

An experiment in what a design system becomes when AI can consume it.

© 2026 io

Contact me

Create a free website with Framer, the website builder loved by startups, designers and agencies.