Resizable Panels
Drag-to-resize panel layout.
Generated from the package's public source.
API
Handlecomponent
@solidiom/resizable-panels — Headless resizable panel layout primitive. Parts: PanelGroup, Panel, Handle.
Handle(props: HandleProps): Element
Props
class?stringdisabled?boolean— Whether this handle is disabled.indexnumber— The index of the handle (separates panel[index] and panel[index+1]).ref?(el: HTMLDivElement) => void
children: Element
HandlePropsinterface
Props for a resize handle between panels.
Props
class?stringdisabled?boolean— Whether this handle is disabled.indexnumber— The index of the handle (separates panel[index] and panel[index+1]).ref?(el: HTMLDivElement) => void
children: Element
Panelcomponent
@solidiom/resizable-panels — Headless resizable panel layout primitive. Parts: PanelGroup, Panel, Handle.
Panel(props: PanelProps): Element
Props
class?stringcollapsible?boolean— Whether the panel can collapse to 0 below minSize.defaultSize?numbermaxSize?numberminSize?number— Size constraints for this panel.ordernumber— Unique order index for this panel within the group.ref?(el: HTMLDivElement) => voidstyle?string | CSSProperties
children: Element
PanelConstraintsinterface
Size constraint for a single panel.
Props
collapsible?boolean— Whether this panel can collapse to 0 when dragged below minSize.defaultSize?number— Default size as a percentage.maxSize?number— Maximum size as a percentage (0–100). Default: 100.minSize?number— Minimum size as a percentage (0–100). Default: 0.
PanelEntryinterface
Registration entry for a panel in the group.
Props
constraintsPanelConstraintsidstringordernumber
PanelGroupcomponent
@solidiom/resizable-panels — Headless resizable panel layout primitive. Parts: PanelGroup, Panel, Handle.
PanelGroup(props: PanelGroupProps): Element
Props
class?stringdefaultSizes?number[]— Default sizes for uncontrolled mode.direction?"horizontal" | "vertical"— Layout direction. Default: "horizontal".onSizesChange?(sizes: number[], details: ChangeDetails<PanelResizeReason>) => void— Called when panel sizes change.sizes?Accessor<number[]>— Controlled panel sizes as percentages.
children: Element
PanelGroupContextValueinterface
Props
baseIdstring— Generated base ID.directionAccessor<"horizontal" | "vertical">— Layout direction.panelsAccessor<PanelEntry[]>— Ordered panel entries.registerPanel(entry: PanelEntry) => () => void— Register a panel and return a cleanup function.requestSizeChange(sizes: number[], details: ChangeDetails<PanelResizeReason>) => void— Request a size change for the group layout.sizesAccessor<number[]>— Current panel sizes as percentages, indexed by panel order.
PanelGroupPropsinterface
Props for the resizable panel group container.
Props
class?stringdefaultSizes?number[]— Default sizes for uncontrolled mode.direction?"horizontal" | "vertical"— Layout direction. Default: "horizontal".onSizesChange?(sizes: number[], details: ChangeDetails<PanelResizeReason>) => void— Called when panel sizes change.sizes?Accessor<number[]>— Controlled panel sizes as percentages.
children: Element
PanelPropsinterface
Props for an individual resizable panel.
Props
class?stringcollapsible?boolean— Whether the panel can collapse to 0 below minSize.defaultSize?numbermaxSize?numberminSize?number— Size constraints for this panel.ordernumber— Unique order index for this panel within the group.ref?(el: HTMLDivElement) => voidstyle?string | CSSProperties
children: Element
PanelResizeReasontype
Reason for a panel size change.