umbraco-sections
Umbraco Sections
What is it?
Sections are top-level navigation items in the Umbraco backoffice that appear alongside default options like Content, Media, and Settings. They serve as a home for custom content and functionality, providing a blank canvas that can be extended with dashboards, sidebars, and section views. Sections require permission configuration for user groups to access them.
Documentation
Always fetch the latest docs before implementing:
- Main docs: https://docs.umbraco.com/umbraco-cms/customizing/extending-overview/extension-types/sections/section
- Section Views: https://docs.umbraco.com/umbraco-cms/customizing/extending-overview/extension-types/sections/section-view
- Section Sidebar: https://docs.umbraco.com/umbraco-cms/customizing/extending-overview/extension-types/sections/section-sidebar
- Dashboard: https://docs.umbraco.com/umbraco-cms/customizing/extending-overview/extension-types/dashboard
- Foundation: https://docs.umbraco.com/umbraco-cms/customizing/foundation
- Extension Registry: https://docs.umbraco.com/umbraco-cms/customizing/extending-overview/extension-registry
Reference Example
The Umbraco source includes a working example:
Location: /Umbraco-CMS/src/Umbraco.Web.UI.Client/examples/section-sidebar-menu-expansion/
This example demonstrates section sidebar menu expansion patterns. Study this for sidebar customization.
Related Foundation Skills
If you need to explain these foundational concepts when implementing sections, reference these skills:
-
Context API: When implementing section contexts or explaining how section extensions communicate
- Reference skill:
umbraco-context-api
- Reference skill:
-
Conditions: When implementing permissions, user group access, visibility controls, or section restrictions
- Reference skill:
umbraco-conditions
- Reference skill:
-
Routing: When implementing pathnames, navigation patterns, URLs, or section routing
- Reference skill:
umbraco-routing
- Reference skill:
Workflow
- Fetch docs - Use WebFetch on the URLs above
- Ask questions - What will the section contain? Dashboards? Trees? Sidebar needed?
- Generate files - Create manifest for section + related extensions based on latest docs
- Explain - Show what was created and how to configure permissions
Minimal Examples
Basic Section (umbraco-package.json)
{
"type": "section",
"alias": "My.Section",
"name": "My Section",
"meta": {
"label": "My Section",
"pathname": "my-section"
}
}
Section with Icon (manifest.ts)
export const manifests = [
{
type: "section",
alias: "My.CustomSection",
name: "Custom Section",
meta: {
label: "Custom",
pathname: "custom-section"
},
conditions: [
{
alias: "Umb.Condition.SectionUserPermission",
match: "My.CustomSection"
}
]
}
];
Section with Dashboard (manifest.ts)
export const manifests = [
{
type: "section",
alias: "My.Section",
name: "My Section",
meta: {
label: "My Section",
pathname: "my-section"
}
},
{
type: "dashboard",
alias: "My.Section.Dashboard",
name: "My Section Dashboard",
element: () => import('./dashboard.element.js'),
meta: {
label: "Welcome",
pathname: "welcome"
},
conditions: [
{
alias: "Umb.Condition.SectionAlias",
match: "My.Section"
}
]
}
];
Section with Sidebar (manifest.ts)
export const manifests = [
{
type: "section",
alias: "My.Section",
name: "My Section",
meta: {
label: "My Section",
pathname: "my-section"
}
},
{
type: "sectionSidebarApp",
alias: "My.Section.Sidebar",
name: "My Section Sidebar",
element: () => import('./sidebar.element.js'),
conditions: [
{
alias: "Umb.Condition.SectionAlias",
match: "My.Section"
}
]
}
];
Key Properties
- type: Always
"section" - alias: Unique identifier for the section
- name: Display name in backoffice
- meta.label: Label shown in navigation
- meta.pathname: URL route for the section
- element: Optional custom element (not recommended - use dashboards instead)
- conditions: Control visibility and access
Granting Permissions
To enable a custom section for users:
- Navigate to Users section in Umbraco backoffice
- Select User Groups menu item
- Choose the user group to configure
- Click the Choose button under Sections
- Select your custom section
- Save changes
Built-in Sections
- Umb.Section.Content - Content management
- Umb.Section.Media - Media library
- Umb.Section.Settings - System settings
- Umb.Section.Packages - Package management
- Umb.Section.Users - User management
- Umb.Section.Members - Member management
That's it! Always fetch fresh docs, keep examples minimal, generate complete working code.