Draggable, resizable, stackable panels as a plain ESM library. No build step. No dependencies. Optional ZUI integration.
npm install panel-api
Live — drag it, resize it, close it.
Quick start
import panel from "panel-api";
// open a panel
const h = panel.open("", "Hello", {
width: 360, height: 200
});
h.setHTML("<p>Hello world!</p>");
Import once, call panel.open(). The returned handle lets you set content,
move, resize, minimize, and close the panel programmatically.
Every behaviour — dragging, stacking, the close button — is a plugin you can
replace or extend.
Core demos