HCS.UmbCustomHeader
1.0.0
dotnet add package HCS.UmbCustomHeader --version 1.0.0
NuGet\Install-Package HCS.UmbCustomHeader -Version 1.0.0
<PackageReference Include="HCS.UmbCustomHeader" Version="1.0.0" />
<PackageVersion Include="HCS.UmbCustomHeader" Version="1.0.0" />
<PackageReference Include="HCS.UmbCustomHeader" />
paket add HCS.UmbCustomHeader --version 1.0.0
#r "nuget: HCS.UmbCustomHeader, 1.0.0"
#:package HCS.UmbCustomHeader@1.0.0
#addin nuget:?package=HCS.UmbCustomHeader&version=1.0.0
#tool nuget:?package=HCS.UmbCustomHeader&version=1.0.0
<p align="center"><img src="https://raw.githubusercontent.com/NikRimington/HCS.UmbCustomHeader/main/docs/images/icon.png" alt="HCS.UmbCustomHeader logo" width="96"></p>
Grouped Navigation
Group Umbraco backoffice sections into dropdowns in the top navigation, driven by appsettings.json.
Presentation only: grouping never grants or hides access. Sections still come from the user's group permissions and manifest conditions, and Umbraco's own route guards still apply.

Install
dotnet add package HCS.UmbCustomHeader
Requires Umbraco CMS 17.x.
Configure
{
"HCS": {
"UmbCustomHeader": {
"Enabled": true,
"Groups": [
{
"Alias": "management",
"Label": "Management",
"Icon": "icon-settings",
"Sections": [ "Umb.Section.Settings", "Umb.Section.Users", "Umb.Section.Members" ]
}
]
}
}
}
Environment variables use the same path with double underscores, for example HCS__UmbCustomHeader__Enabled=false.
The dropdown lists only the sections the current user can access:

| Setting | Notes |
|---|---|
Enabled |
false restores the native navigation. |
Alias |
Unique per group. |
Label |
Text or a localisation key such as #groupedNav_management. |
Icon |
Optional icon alias shown beside the label. |
Weight |
Optional. Places the group by weight among top-level items (higher first) instead of at its first member. |
Sections |
Section aliases, in dropdown order. Unknown or inaccessible aliases are ignored. |
Section aliases (checked against Umbraco 17.7 with Forms 17.6, Commerce 17.2 and Workflow 17.5):
| Section | Alias |
|---|---|
| Content, Media, Settings, Packages, Users, Members, Translation | Umb.Section.<Name> (Users is Umb.Section.Users, Members is Umb.Section.Members) |
| Forms | Umb.Section.Forms |
| Workflow | Umb.Section.Workflow |
| Commerce | commerce |
Rules:
- A group with no visible members is removed; with one visible member it renders as that section's plain tab.
- A section listed in more than one group belongs to the first group only.
- Invalid config (duplicate aliases, empty labels or sections) is logged and the native navigation is used.
- Edits apply on the next backoffice load.
The package replaces the header's render method, as Umbraco has no extension point for header sections. If the header's structure changes, or another package already patched it, the package logs a warning and leaves the native navigation in place.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Umbraco.Cms.Api.Common (>= 17.0.0 && < 18.0.0)
- Umbraco.Cms.Api.Management (>= 17.0.0 && < 18.0.0)
- Umbraco.Cms.Web.Common (>= 17.0.0 && < 18.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 83 | 10/21/2026 |