121
GitHub
Layout

Resizable

Frames panes that can be resized.

FrameworksAstro · React · Elements

Registry commandlumen add Resizable

InteractionEnhanced runtime

01

See it in context

Preview

Editor

Drag a separator or focus it and use Arrow Left / Arrow Right.

Preview

Double-click a separator to reset pane sizes.

02

Copy a working example

Usage

Astro examples assume UIPrimitives is mounted once in your root layout. Do not add the runtime next to each component instance.

astro
---
import {
  Kbd,
  Resizable
} from '@santi020k/lumen-astro'
---

<Resizable
  aria-label="Workspace panes"
  defaultSizes={[28, 44, 28]}
  minSize={[18, 24, 18]}
  style="height: 18rem;"
>
  <aside>
    <strong>Navigation</strong>
    <p>Projects, files, and saved views.</p>
  </aside>
  <section aria-label="Editor">
    <strong>Editor</strong>
    <p>Drag a separator or focus it and use <Kbd>Arrow Left</Kbd> / <Kbd>Arrow Right</Kbd>.</p>
  </section>
  <section>
    <strong>Preview</strong>
    <p>Double-click a separator to reset pane sizes.</p>
  </section>
</Resizable>
---
import {
  Kbd,
  Resizable
} from '@santi020k/lumen-astro'
---

<Resizable
  aria-label="Workspace panes"
  defaultSizes={[28, 44, 28]}
  minSize={[18, 24, 18]}
  style="height: 18rem;"
>
  <aside>
    <strong>Navigation</strong>
    <p>Projects, files, and saved views.</p>
  </aside>
  <section aria-label="Editor">
    <strong>Editor</strong>
    <p>Drag a separator or focus it and use <Kbd>Arrow Left</Kbd> / <Kbd>Arrow Right</Kbd>.</p>
  </section>
  <section>
    <strong>Preview</strong>
    <p>Double-click a separator to reset pane sizes.</p>
  </section>
</Resizable>
03

Choose your target

Add this component

Choose the package for your runtime. All adapters share the Lumen stylesheet. Use the matching registry command when you want a local wrapper for that framework.

bash@santi020k/lumen-astro
pnpm add @santi020k/lumen-astro
pnpm add @santi020k/lumen-astro
bashAstro wrapper
lumen add Resizable
lumen add Resizable

API reference

Lumen-specific props and runtime attributes for the Astro primitive. React props follow the same names; Elements use equivalent kebab-case attributes where custom elements expose them.

AttributeValuesDefaultDescription
defaultSizesnumber[]-Sets initial pane sizes as percentages, serialized for the runtime.
direction"horizontal" | "vertical""horizontal"Sets the resize axis and generated handle orientation.
maxSizenumber | number[]-Limits pane growth by percentage; pass an array for per-pane limits.
minSizenumber | number[]-Limits pane shrinkage by percentage; pass an array for per-pane limits.
resetOnDoubleClickbooleantrueRestores default pane sizes when a resize handle is double-clicked.
class, classNamestring""Merges custom classes with the generated ui-* root classes.
...native attributesHTML attributes-Forwards standard attributes to the root element unless the component consumes them.

Keyboard interactions

Keyboard behavior provided by the Astro UIPrimitives runtime for this component.

KeyAction
ArrowLeft, ArrowRight on a horizontal handleResize the leading panel by 2 percentage points, or 10 with Shift held.
ArrowUp, ArrowDown on a vertical handleResize the leading panel by 2 percentage points, or 10 with Shift held.
Home, End on a handleResize the leading panel to its configured minimum or maximum size.