Resizable

Containers with draggable dividers that allow users to resize adjacent panels.

Install

npx @vultra/cli add resizable

Usage

<script>
  import { Resizable } from '@vultra/ui';
</script>

<Resizable direction="horizontal">
  <Resizable.Panel defaultSize={30} minSize={20}>
    <div class="p-4">Sidebar</div>
  </Resizable.Panel>
  <Resizable.Handle />
  <Resizable.Panel defaultSize={70} minSize={30}>
    <div class="p-4">Main content</div>
  </Resizable.Panel>
</Resizable>

Subcomponents

ComponentDescription
ResizableContainer with direction (horizontal/vertical)
Resizable.PanelIndividual resizable panel
Resizable.HandleDraggable divider between panels

Panel Props

PropTypeDefaultDescription
defaultSizenumber50Initial size as percentage
minSizenumber10Minimum size percentage
maxSizenumber90Maximum size percentage
collapsiblebooleanfalseAllow panel to collapse

Notes

  • Supports nested resizable layouts.
  • Handles are keyboard accessible (Arrow keys to resize).