Section
Designer
Composable canvas-editor primitives. The chrome lives in @hilum/designer (engine-agnostic) and the canvas engine in @hilum/designer-canvas (generic free-positioned canvas with a pluggable renderer registry).
How To Use This Page
Designer pages document the composition environment itself: canvas behavior, shell layout, and pane orchestration.
Use this section when you are working on authoring workflows rather than end-user UI alone.
How The Content Is Grouped
- The top-level Designer page groups the catalog by subcategory, making it easier to choose a family of patterns before drilling into an implementation.
- Use the highlighted links below to start with the highest-signal areas of the section.
Start With
Runnable demos
Start with a working surface
Shell
DesignerShell, Header, Sidebar, Panel, Pane, Toolbar — engine-agnostic chrome.
Canvas
Live demo of <Designer> + <DesignerCanvas> + <DesignerFrame>. Drag, marquee-select, zoom.
Static Frame
Read-only DesignerStaticFrame for thumbnails / previews. Same renderers, no interactivity.
Pane Visibility
Interactive demo of DesignerPane.showFor with multiple layer types selected.
Property controls
Dense inspector inputs
TwoValueControl
Paired numeric values for geometry and offsets.
SpacingControl
Four sides with optional linked editing.
CornerRadiusControl
Corner-specific values over the same four-value base.
Exported API
Components, providers, hooks, and actions
@hilum/designer
Engine-agnostic editor chrome for shells, panes, panels, sidebars, and toolbar controls.
ShellProvider
ProviderProvides selectedIds, activeTool, readOnly, and resolveKind to designer chrome.
useShellContext
HookReads and updates the shell state from toolbars, panes, sidebars, and app controls.
DesignerShell
LayoutRoot full-height shell that hosts header, sidebar, canvas, panels, and toolbars.
DesignerHeader
LayoutTop chrome for document title, breadcrumbs, status, and primary actions.
DesignerSidebar
NavigationVertical tool or mode rail wired to activeTool through ShellContext.
DesignerPanel
LayoutLeft or right inspector panel with configurable width and border side.
DesignerPane
InspectorPanel section with collapsible state and showFor visibility by selected item kind.
DesignerPaneTitle
InspectorPane header with optional action content and collapse trigger behavior.
DesignerPaneContent
InspectorConsistent content spacing for property rows and controls inside a pane.
TwoValueControl
InspectorCompact paired numeric fields for properties such as X/Y, W/H, and offsets.
FourValueControl
InspectorGeneric 2×2 numeric control with linked/unlinked behavior for sides and corners.
SpacingControl / CornerRadiusControl
InspectorSemantic wrappers over FourValueControl for padding, margins, and corner radii.
DesignerToolbar
ToolbarFloating or inline toolbar container for canvas and document actions.
DesignerToolbarGroup
ToolbarGroups related toolbar controls without creating extra layout chrome.
DesignerToolbarButton
ToolbarTooltip-ready icon button with active, disabled, label, and shortcut states.
DesignerToolbarSeparator
ToolbarVisual divider for related toolbar button groups.
useHistory
HookSmall undo/redo state helper for editor workflows that need local history.
useKeybindings
HookRegisters keyboard shortcuts with enablement and cleanup handled by the hook.
@hilum/designer-canvas
Generic free-positioned canvas engine with context state, renderers, overlays, hooks, and actions.
Designer
CompositionHigh-level provider composition for canvas state, shell context, and renderer registry.
CanvasProvider
ProviderOwns canvas state, dispatch, selection, viewport, pan, zoom, and history wiring.
useCanvasContext
HookReads canvas state and dispatch from custom inspectors, overlays, and actions.
RendererProvider
ProviderRegisters layer renderers by type so the canvas can stay engine-agnostic.
DesignerCanvas
CanvasInteractive surface that hosts frames, overlays, pointer selection, and pan behavior.
DesignerFrame
CanvasEditable frame that renders positioned layers with the active renderer registry.
DesignerStaticFrame
PreviewRead-only frame for thumbnails, previews, and catalog examples.
GridOverlay
OverlayDraws grid guides from the frame and viewport state.
LayerSelectionOverlay
OverlayDisplays selected-layer outlines and handles on top of rendered layers.
MarqueeOverlay
OverlayDisplays drag-selection bounds while selecting multiple layers.
useLayers / useLayer / useSelectedLayers
HooksConvenience readers for layer lists, individual layers, and current selection.
useZoom / useDragInteraction / useHistoryActions
HooksCanvas interaction helpers for viewport controls, dragging, and undo or redo actions.
ActionAddLayer / ActionAlign / ActionArrange
ActionsReusable toolbar actions for creating layers and controlling layer position.
ActionDelete / ActionDuplicate / ActionGroup
ActionsReusable toolbar actions for common document editing commands.
ActionLock / ActionTool / ActionTransform / ActionUndoRedo / ActionZoom
ActionsReusable controls for locks, tools, transforms, history, and viewport zoom.
Integration contracts
Behavior that apps wire themselves
DesignerPane.showFor
Accepts selected item kinds and renders the pane only when ShellContext.resolveKind returns a matching kind.
ShellContext.resolveKind
Maps opaque selected IDs to app-defined layer kinds such as text, image, shape, or group.
Renderer registry
Maps layer type strings to app-owned React renderers so the canvas package does not own domain UI.
Static frame rendering
Uses the same canvas state and renderers without pointer interactions for thumbnails and previews.