Resizable
Resizable panel layout with draggable dividers for split-pane interfaces.
When to use
- Code editors — split panes for code and preview.
- Dashboards — adjustable panel widths.
- Email clients — three-panel layout (list, preview, detail).
- Admin interfaces — resizable sidebars.
Import
import {
ResizablePanelGroup,
ResizablePanel,
ResizableHandle,
} from '@mihcm/ui/Resizable';Basic usage
<ResizablePanelGroup direction="horizontal">
<ResizablePanel defaultSize={50}>
<div className="p-4">Left</div>
</ResizablePanel>
<ResizableHandle />
<ResizablePanel defaultSize={50}>
<div className="p-4">Right</div>
</ResizablePanel>
</ResizablePanelGroup>With grip handle
<ResizableHandle withHandle />Vertical direction
<ResizablePanelGroup direction="vertical">
<ResizablePanel defaultSize={30}>Header</ResizablePanel>
<ResizableHandle />
<ResizablePanel defaultSize={70}>Content</ResizablePanel>
</ResizablePanelGroup>Constrained panels
<ResizablePanel defaultSize={25} minSize={15} maxSize={40}>
Sidebar
</ResizablePanel>Composition
ResizablePanelGroupwraps all panels. Setdirectionto"horizontal"(default) or"vertical".ResizableHandlerenders between panels. PasswithHandlefor a visible grip indicator.- Use
minSizeandmaxSize(percentages) to constrain panel dimensions. defaultSizesets the initial split. For persistent layouts, store the sizes and pass them on mount.