Skip to content

Resizable

Panels split by draggable handles; each child is one panel.

Group: Layout · Kind: native · in the lite catalog

example
Boards
Drag the handle or use the arrow keys.
direction · vertical
Boards
Drag the handle or use the arrow keys.

Open in the playground

The same specimen painted by React, SwiftUI, Compose and gpui.

exponential-ui-resizable on Web
exponential-ui-resizable on iOS
exponential-ui-resizable on Android
exponential-ui-resizable on Desktop
Prop Type Required Bindable Description
direction horizontal | vertical – – Side by side or stacked. Default "horizontal". Responsive: takes a per-breakpoint object.
sizes [number] – yes Percent per panel; bind it.
panels [panel] – – Per-panel limits, by index.
handle boolean – – Draws a grip on each handle. Default false.
style style – – Extra Box styles for the group box (give it a height).
  • on.change: runs an action

None.

many

No basic catalog component maps here.

A native component: every renderer paints it directly.

Role: group

group; each handle a focusable separator (aria-orientation = the line’s, valuenow = the size of the panel before it, valuemin/max = its limits, controls = that panel), named $string.resize

Keys Action
Arrow keys on a handle move it on screen by 10 points (Left/Right horizontal, Up/Down vertical; rtl: ArrowRight shrinks the first panel)
Home End the panel before the handle to its min / max
Enter collapse or reopen a collapsible panel

Recipe parts: Resizable/root Resizable/panel Resizable/handle Resizable/grip

Keyed by: direction handle :hover :pressed :focus :disabled :checked :open :selected :invalid :dragover

Themes · Write a theme

Box · Stack · Grid · Card · Separator · List · ScrollArea · Sidebar