Build flexible interfaces that split, resize, and rearrange.

Tilery gives you draggable tabs, resizable panels, persistent layouts, and a programmable core for complex product surfaces.

Try it — resize, drag, drop.

Loading interactive preview…

The primitives for panel-based apps.

Tab movement

Reorder tabs, move them across panels, or drop them into new split zones.

Resize model

Split dividers are derived from the layout tree automatically.

Rendering control

Bring your own tab headers, panel content, icons, and interaction chrome.

Styling system

Tune the default surface with CSS variables instead of replacing the whole renderer.

Package split

Install @tileryjs/react for apps; use tilery directly for framework adapters and layout tooling.

Imperative API
panel.split()

Split, append, insert, remove, activate, swap, and inspect layouts from product code.

Floating & popout

Detach a panel into a draggable overlay, or pop it out into its own browser window.

Save & restore
{ "panels": 2,
  "tabs": 7 }

Serialize the whole layout — tabs, splits, sizes, and active views — then restore it exactly.

Lock panels & tabs

Freeze resizing, dragging, dropping, or closing wherever you need it.