Optionalchildren?: ReactNodePanel and Separator components that comprise this group.
OptionalclassName?: stringCSS class name.
OptionaldefaultLayout?: LayoutDefault layout for the Group.
ℹ️ This value allows layouts to be remembered between page reloads.
⚠️ Slight layout shift may occur when server-rendering panels with percentage-based default sizes. Refer to the documentation for suggestions on how to minimize the impact of this.
OptionaldisableCursor?: booleanThis library sets custom mouse cursor styles to indicate drag state. Use this prop to disable that behavior for Panels and Separators in this group.
Optionaldisabled?: booleanDisable resize functionality.
OptionalelementRef?: Ref<null | HTMLDivElement>Ref attached to the root HTMLDivElement.
OptionalgroupRef?: Ref<null | GroupImperativeHandle>Exposes the following imperative API:
getLayout(): LayoutsetLayout(layout: Layout): voidℹ️ The useGroupRef and useGroupCallbackRef hooks are exported for convenience use in TypeScript projects.
Optionalid?: string | numberUniquely identifies this group within an application.
Falls back to useId when not provided.
ℹ️ This value will also be assigned to the data-group attribute.
OptionalonLayoutChange?: (layout: Layout) => undefined | voidCalled when the Group's layout is changing.
⚠️ For layout changes caused by pointer events, this method is called each time the pointer is moved.
For most cases, it is recommended to use the onLayoutChanged callback instead.
OptionalonLayoutChanged?: (layout: Layout) => undefined | voidCalled after the Group's layout has been changed.
ℹ️ For layout changes caused by pointer events, this method is not called until the pointer has been released. This method is recommended when saving layouts to some storage api.
Optionalorientation?: "horizontal" | "vertical"Specifies the resizable orientation ("horizontal" or "vertical"); defaults to "horizontal"
OptionalresizeTargetMinimumSize?: { coarse: number; fine: number }Minimum size of the resizable hit target area (either Separator or Panel edge)
This threshold ensures are large enough to avoid mis-clicks.
ℹ️ Apple interface guidelines suggest 20pt (27px) on desktops and 28pt (37px) for touch devices
In practice this seems to be much larger than many of their own applications use though.
Optionalstyle?: CSSPropertiesCSS properties.
⚠️ The following styles cannot be overridden: display, flex-direction, flex-wrap, and overflow.
Optionaldirection?: "horizontal" | "vertical"OptionalonLayout?: (sizes: number[]) => voidCalled when the panel sizes change, with an array of sizes in the same order as the panels
Accessible resizable panel groups and layouts with keyboard support. This component is built on react-resizable-panels and styled with Shadcn UI.