Workspace shell [UI]
Source path: knowledge-base/diagrams/ui/workspace-shell.md
# Workspace shell `[UI]`
The regions of `WorkspaceShell` — a stable cockpit around a mutable Stage. Two **edge rails** share the same `RailFrame` chrome and each toggle a collapsible pane beside them.
```mermaid
flowchart TB
TopBar["**TopBar** — menus · theme · usage · audio · export · slides"]
TopBar --> Rail & SideL & StageBar & URail
Rail["**DomainRail** (left, 56px)<br/>story tiles"]
SideL["**DrivePanel** (left pane)<br/>the Drive"]
URail["**UtilityRail** (right, 56px)<br/>panel tabs"]
URail -->|opens active tab| UPanel["**UtilityPanel** (right pane)"]
StageBar["**StageBar** — view switcher"] -->|sets state.stageView| Stage["**Stage** — render dispatch"]
Stage --> Palette["StagePalette (overlay)"]
StageBar --> RunBar["**RunBar** — run status"] --> Bottom["ScenePanel · TimelineStrip · ForceTimeline"]
```
- **DomainRail** (left, story tiles) toggles **DrivePanel** (the Drive); **UtilityRail** (right, panel tabs) toggles **UtilityPanel** (the popout). *(This rail + popout split replaced the former single `InspectorPanel`; tab state lives in `inspector/utility-panel-context`.)*
- The center is a render switch on `state.stageView` — the views it dispatches to are in [ui/center-views](center-views.md); the right popout's tabs in [ui/inspector](inspector.md); the TopBar menus in [ui/topbar](topbar.md).
- On a phone this whole shell is replaced by a separate focused path — [ui/mobile](mobile.md).
Open on GitHubRaw Markdown source