Workspace Views

Learn how to create workspace views that provide tab-based content areas for organizing different aspects of entity editing.

Workspace Views provide tab-based content areas within workspaces, allowing you to organize different aspects of entity editing into focused interfaces. They appear as tabs alongside the default content editing interface.

circle-info

Workspace Views were previously called Content Apps in earlier versions of Umbraco.

Purpose

Workspace Views provide:

  • Tab-based organization for different editing aspects

  • Contextual interfaces related to the current entity

  • Workspace integration with access to workspace contexts

  • Custom functionality specific to entity types

Workspace Views

Manifest

Key Properties

  • weight - Tab ordering (higher weight appears first)

  • meta.label - Text displayed on the tab

  • meta.pathname - URL segment for the view

  • meta.icon - Icon displayed on the tab

  • conditions - Determines workspace availability

Implementation

Implement your workspace view as a Lit element that extends UmbElementMixin. This creates a tab-based interface that users can navigate to within the workspace:

View Lifecycle

Initialization

  • Views initialize when their tab becomes active

  • Context consumption happens during construction

  • Views have access to workspace-scoped contexts

Tab Navigation

  • Views are lazy-loaded when first accessed

  • Navigation updates the workspace URL with view pathname

  • Views remain in memory while the workspace is open

Context Integration

Views can consume multiple workspace contexts:

Common Patterns

Entity Information View

Interactive Configuration View

Analytics Dashboard View

Best Practices

View Organization

  • Use descriptive tab labels that indicate the view's purpose

  • Order views by importance using the weight property

  • Group related functionality into a single view rather than many small tabs

Context Usage

  • Consume contexts in the constructor for immediate availability

  • Use observe() for reactive updates when context state changes

  • Check context availability before accessing properties

Performance

  • Keep views lightweight for fast tab switching

  • Load expensive data only when view becomes active

  • Use loading states for async operations

Conditional Availability

Only show views when relevant:

Last updated

Was this helpful?