Skip to main content

Widgets: Shells, Panes And Overlays

Use these widgets when the app needs shell chrome, transient overlays, or denser pane management.

Dialogs, overlays, and transient UI

WidgetUse it forCapabilitiesGood example
Dialogfocused modal promptsconfirmation/result flow with dialog result eventsshell-style apps
Modalframed modal contentcustom modal surface hostingdenser shells
ContextMenupointer/selection context actionscontextual action menus with item executiontool/workbench flows
CommandPalettecommand overlaysearchable command executionGitConsole-style flows
QuickOpenOverlayjump overlayquick entity/file open flowworkspaces
ToastCentertransient toast notificationsshort-lived toast message surfacesadvanced notification flows

Shell chrome and persistent utilities

WidgetUse it forCapabilitiesGood example
StatusBarfooter/system stripleft/right status text across the shellstarters and flagships
Notificationslightweight visible feedstacked notifications in one panestarter and shell flows
NotificationInboxpersistent inboxread/pin inbox workflow for denser appsadvanced dev/ops flows
EmptyStateblank-state guidanceexplicit “nothing here yet” surfaceonboarding and empty panels
KeyBindingHelpDialogshortcut referencevisible keybinding help inside the UIadvanced tooling
PaletteEditorpalette/theme editinginteractive palette work and swatch selectiontheme tooling

Pane and workspace management

WidgetUse it forCapabilitiesGood example
SplitViewsimple split-pane layoutstwo-region split surfacesearly multi-pane shells
ResizablePaneGroupadjustable pane layoutsdraggable/resizable pane groupsworkbenches
DockWorkspacedocked shell compositiondock panes around a central workspaceadvanced workspaces
PaneTabstabbed subpanestab management inside one regionworkspaces
InspectorPanelstructured side inspectioncollapse/expand detail sectionsDataWorkbench

When to choose which shell widget

  • use SplitView for the first split
  • use ResizablePaneGroup once the user needs control of pane sizes
  • use DockWorkspace when the layout itself becomes a product feature
  • use PaneTabs when one pane needs multiple subviews
  • use Dialog or Modal when the user must resolve something before continuing