Basic Navigation

This example demonstrates a simple top-level navigation menu using UmbNav.

Prerequisites

  • UmbNav package installed

  • A Data Type configured with UmbNav property editor

  • A document type with the UmbNav property

  • Content created with menu items

Basic Implementation

View (Razor)

@using Umbraco.Community.UmbNav.Core.Models

@{
    var navigation = Model.Value<IEnumerable<UmbNavItem>>("mainNavigation");
}

@if (navigation?.Any() == true)
{
    <nav class="main-navigation" aria-label="Main navigation">
        <ul class="nav-list">
            @foreach (var item in navigation)
            {
                <li class="nav-item">
                    <umbnavitem menu-item="@item"
                                active-class="active"
                                current-page="@Model"
                                is-active-ancestor-check="true">
                    </umbnavitem>
                </li>
            }
        </ul>
    </nav>
}

CSS

With Descriptions

If you've enabled descriptions in your Data Type configuration:

With Images/Icons

If you've enabled images in your Data Type configuration:

Using a Partial View

For reusability, create a partial view.

Usage in Layout

Handling Different Item Types

UmbNav supports different item types that you may want to render differently:

With View Component

For more complex logic, use a View Component:

Views/Shared/Components/Navigation/Default.cshtml

Usage

Accessibility Considerations

  1. Use semantic HTML: <nav> element with aria-label

  2. Keyboard navigation: Ensure links are focusable

  3. Visual focus indicators: Style :focus states

  4. Screen reader support: Meaningful link text

Last updated

Was this helpful?