Resizable

ResizablePanel component (Phlex) Individual resizable panel within a panel group

Examples

Default

Accessible resizable panel groups with keyboard support.

One
Two
<%= render "ui/resizable/panel_group", direction: "horizontal", classes: "max-w-md rounded-lg border" do %>
  <%= render "ui/resizable/panel", default_size: 50 do %>
    <div class="flex h-[200px] items-center justify-center p-6">
      <span class="font-semibold">One</span>
    </div>
  <% end %>
  <%= render "ui/resizable/handle" %>
  <%= render "ui/resizable/panel", default_size: 50 do %>
    <div class="flex h-[200px] items-center justify-center p-6">
      <span class="font-semibold">Two</span>
    </div>
  <% end %>
<% end %>

Vertical

Panels stacked vertically.

One
Two
<%= render "ui/resizable/panel_group", direction: "vertical", classes: "min-h-[200px] max-w-md rounded-lg border" do %>
  <%= render "ui/resizable/panel", default_size: 50 do %>
    <div class="flex h-full items-center justify-center p-6">
      <span class="font-semibold">One</span>
    </div>
  <% end %>
  <%= render "ui/resizable/handle" %>
  <%= render "ui/resizable/panel", default_size: 50 do %>
    <div class="flex h-full items-center justify-center p-6">
      <span class="font-semibold">Two</span>
    </div>
  <% end %>
<% end %>

Handle with Grip

Handle with visible grip icon for better visibility.

One
Two
<%= render "ui/resizable/panel_group", direction: "horizontal", classes: "min-h-[200px] max-w-md rounded-lg border" do %>
  <%= render "ui/resizable/panel", default_size: 50 do %>
    <div class="flex h-full items-center justify-center p-6">
      <span class="font-semibold">One</span>
    </div>
  <% end %>
  <%= render "ui/resizable/handle", with_handle: true %>
  <%= render "ui/resizable/panel", default_size: 50 do %>
    <div class="flex h-full items-center justify-center p-6">
      <span class="font-semibold">Two</span>
    </div>
  <% end %>
<% end %>

API Reference

Resizable Panel

Parameters

NameTypeDefaultDescription
default_sizeStringnilThe default size
min_sizeStringnilThe min size
max_sizeStringnilThe max size

Group

Parameters

NameTypeDefaultDescription
directionStringhorizontalThe direction
keyboard_resize_byInteger10The keyboard resize by