Extensibility
UmbNav is designed to be fully extensible. You can customize both the frontend (TypeScript/Lit) and backend (C#) to match your specific requirements.
Extension Architecture
┌─────────────────────────────────────────┐
│ Backoffice UI (Lit) │
│ ┌─────────────────────────────────┐ │
│ │ Extension Registry │ │ ← Register custom actions, slots, types
│ │ • Toolbar Actions │ │
│ │ • Item Slots │ │
│ │ • Item Types │ │
│ └─────────────────────────────────┘ │
│ ┌─────────────────────────────────┐ │
│ │ Component Classes │ │ ← Subclass for deep customization
│ │ • UmbNavItem │ │
│ │ • UmbNavGroup │ │
│ │ • UmbNavPropertyEditorUI │ │
│ └─────────────────────────────────┘ │
└─────────────────────────────────────────┘
┌─────────────────────────────────────────┐
│ Backend (C#) │
│ ┌─────────────────────────────────┐ │
│ │ Services │ │ ← Override for custom processing
│ │ • UmbNavMenuBuilderService │ │
│ └─────────────────────────────────┘ │
│ ┌─────────────────────────────────┐ │
│ │ TagHelpers │ │ ← Extend for custom rendering
│ │ • UmbnavitemTagHelper │ │
│ └─────────────────────────────────┘ │
│ ┌─────────────────────────────────┐ │
│ │ Converters │ │ ← Override for custom conversion
│ │ • UmbNavValueConverter │ │
│ └─────────────────────────────────┘ │
└─────────────────────────────────────────┘Frontend Extensions
Extension Registry
Type
Purpose
Documentation
Component Subclassing
Backend Extensions
Menu Builder Service
TagHelper
Extension Points Summary
Frontend (TypeScript/Lit)
Extension Point
Method
Use Case
Backend (C#)
Extension Point
Method
Use Case
When to Use Each Approach
Use Extension Registry When:
Use Component Subclassing When:
Use Service Override When:
Use TagHelper Override When:
Importing the API
Best Practices
1. Preserve Core Functionality
2. Use Unique Aliases
3. Handle Errors Gracefully
4. Register in Composers
5. Test Your Extensions
Last updated
Was this helpful?