Skip to content
Components

Dockable Panel

ExperimentalExperimental — the contract and the rendering can change without notice. Own the installed copy before shipping it.

Non-modal workspace panel that moves between two explicit edge slots with a mobile Drawer fallback.

Composition

Workspace panel

  • <DockablePanel>
    • <DockablePanelHeader>
      • <DockablePanelDragHandle>
        • <DockablePanelTitle />
        </DockablePanelDragHandle>
      • <DockablePanelActions>
        • <DockablePanelDock />
        • <DockablePanelToggle />
        • <DockablePanelClose />
        </DockablePanelActions>
      </DockablePanelHeader>
    • <DockablePanelContent />
    </DockablePanel>

Installation

The Control UI source installs this primitive from src/registry/sources/control-ui/ui/dockable-panel.tsx.

Registry command
See registry manifest

Dependencies

Docking geometrysrc/registry/sources/control-ui/ui/dockable-panel-geometry.tsSupport
Mobile hooksrc/registry/hooks/use-mobile.tsHook
ButtonbuttonPrimitiveDrawerdrawerPrimitiveLive statuslive-statusPrimitiveScroll areascroll-areaPrimitiveSidebarsidebarPrimitive

Raw code

Primary installed source

src/registry/sources/control-ui/ui/dockable-panel.tsx

Knobs

Typed custom properties the recipe paints with. Set one on the root — style, a utility class, or a skin — and every slot inherits it.

--cui-dockable-panel-* · 9 knobsHow the cascade resolves
--cui-dockable-panel-radius<length-percentage>min( var(--radius-panel), calc(var(--control-h-sm) / 2 + var(--_dockable-panel-header-inset) + var(--cui-dockable-panel-border-width)) )
--cui-dockable-panel-background<color>var(--card)
--cui-dockable-panel-foreground<color>var(--card-foreground)
--cui-dockable-panel-border-color<color>oklch(from var(--border) l c h / 0.8)
--cui-dockable-panel-border-width<length>var(--control-rim-width)
--cui-dockable-panel-shadow*var(--shadow-pop)
--cui-dockable-panel-drop-zone-active-background<color>oklch(from var(--primary) l c h / 0.12)
--cui-dockable-panel-drop-zone-active-border-color<color>oklch(from var(--primary) l c h / 0.55)
--cui-dockable-panel-drop-zone-background<color>oklch(from var(--background) l c h / 0.12)