Prodular UI

Workspace

Pro

Docked, resizable panes for workstation screens: explorer, canvas, inspector and a bottom panel, collapsible to rails, remembered across reloads and stacked on small screens.

npx prodular-ui add workspace

Part of Prodular UI Pro. Preview and read the docs freely, install with a license. See pricing

Operations console

Sites, a map canvas, events and an inspector in compact density. Drag the handles, fold panels with the header buttons, reload and the sizes stay.

Edge operations

Sites

5
Europe3
FrankfurtHigh
AmsterdamRoutine
DublinElevated
Map canvas

Events

12
14:24 Checkout latency over budget in Frankfurt.

Frankfurt

Severity
High
Region
eu-central-1
Site ID
fra-07
Owner
Not set
Connected
5 sites
Updated 14:31 UTC

Anatomy

<AppShell layout="rail" fill nav={nav}>  <Workspace storageKey="ops">    <WorkspacePanel id="explorer" label="Explorer" collapsible>…</WorkspacePanel>    <WorkspaceHandle />    <WorkspaceMain>      <WorkspaceArea>…</WorkspaceArea>      <WorkspaceHandle />      <WorkspacePanel id="timeline" label="Timeline" side="bottom" collapsible>…</WorkspacePanel>    </WorkspaceMain>    <WorkspaceHandle />    <WorkspacePanel id="inspector" label="Inspector" side="end" collapsible>…</WorkspacePanel>  </Workspace></AppShell>

Guidance

Use it when

  • Screens people keep open all day and arrange to their task: consoles, editors, investigation tools.
  • AppShell with fill around it, so the page area does not scroll.
  • PanelHeader at the top of each panel.

Avoid

  • Workspace for regular SaaS pages. Use the page layouts and MasterDetail.
  • More than four panes. Put secondary views in tabs inside a pane.
  • Collapsing by dragging only. Add WorkspacePanelToggle buttons, and a hotkey if the app has them.

Rules for AI agents

Published in llms-full.txt, the registry and the MCP server, so coding agents follow them when they build with this component.

  • Alternate panes and WorkspaceHandle: panel, handle, main, handle, panel.
  • Give every WorkspacePanel a unique id and a label; the label names the rail and the toggle.
  • Set storageKey so sizes and collapsed panes persist.
  • Wrap the screen in AppShell fill (or a parent with a fixed height). Workspace fills its parent and never scrolls itself; panes scroll inside.
  • Use WorkspacePanelToggle or useWorkspacePanel(id).toggle for buttons and shortcuts instead of resizing panels yourself.
  • Pass sizes in rem or px strings ("18rem"), numbers for pixels, or unitless strings for percentages.

API

Workspace

PropTypeDefaultDescription
storageKeystringKeeps sizes and collapsed panes in localStorage.
stackBelownumber768Viewport width in px under which panes stack vertically.

WorkspacePanel

PropTypeDefaultDescription
idstringUnique id, also used by WorkspacePanelToggle.
labelstringNames the pane, its rail and its toggle.
side"start" | "end" | "bottom""start"Where it docks.
collapsiblebooleanfalseFolds to a rail below minSize or from its toggle.
defaultSizenumber | string"18rem"Also minSize and maxSize.

WorkspacePanelToggle

PropTypeDefaultDescription
panelstringThe id of the panel it folds and opens.

AppShell

PropTypeDefaultDescription
fillbooleanfalseThe page area fills the space under the top bar and does not scroll.

Installation

The Prodular UI CLI adds the source to components/ui with everything it depends on. In a project that already uses shadcn/ui, the shadcn CLI installs it from the Prodular registry too. See Installation for the first setup.

npx prodular-ui add workspace# or, with the registry in components.jsonnpx shadcn@latest add @prodular/workspace