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.

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?