mcpField
U
umbraco-sections

umbraco-sections

github.com/umbracoDevelopment27389 installsUpdated 6w ago
Repository

About umbraco-sections

A reference skill for creating Umbraco backoffice sections, the top-level navigation areas used to host custom functionality. It guides developers through section manifests, dashboards, sidebars, routing, and user-group permissions, with links to documentation and a source example.

Key features

  1. 01Section manifest guidance
  2. 02Dashboard and sidebar patterns
  3. 03Routing and visibility references
  4. 04User-group permission steps
  5. 05Documentation and source example links

Use cases

  1. 01Adding a custom backoffice section
  2. 02Planning dashboards or a section sidebar
  3. 03Configuring section access for user groups

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/umbraco/umbraco-cms-backoffice-skills --skill umbraco-sections

After installing, type/umbraco-sectionsin Claude Code to confirm it loaded.

Details

From the project README

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:

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
  • Conditions: When implementing permissions, user group access, visibility controls, or section restrictions

    • Reference skill: umbraco-conditions
  • Routing: When implementing pathnames, navigation patterns, URLs, or section routing

    • Reference skill: umbraco-routing

Workflow

  1. Fetch docs - Use WebFetch on the URLs above
  2. Ask questions - What will the section contain? Dashboards? Trees? Sidebar needed?
  3. Generate files - Create manifest for section + related extensions based on latest docs
  4. 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:

  1. Navigate to Users section in Umbraco backoffice
  2. Select User Groups menu item
  3. Choose the user group to configure
  4. Click the Choose button under Sections
  5. Select your custom section
  6. 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.

Comments

Markdown supported