Tailwind CSS Integration
This example demonstrates integrating UmbNav with Tailwind CSS for styling navigation menus.
Prerequisites
Basic Tailwind Navigation
Razor Implementation
@using Umbraco.Community.UmbNav.Core.Models
@using Umbraco.Community.UmbNav.Core.Enums
@{
var home = Model.Root();
var navigation = home?.Value<IEnumerable<UmbNavItem>>("mainNavigation");
}
<nav class="bg-white shadow-sm">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex justify-between h-16">
<!-- Logo -->
<div class="flex-shrink-0 flex items-center">
<a href="@home?.Url()">
<img class="h-8 w-auto" src="/images/logo.svg" alt="Logo" />
</a>
</div>
<!-- Desktop Navigation -->
<div class="hidden md:flex md:items-center md:space-x-4">
@if (navigation != null)
{
foreach (var item in navigation)
{
@await Html.PartialAsync("_TailwindNavItem", item, new ViewDataDictionary(ViewData) { { "CurrentPage", Model } })
}
}
</div>
<!-- Mobile menu button -->
<div class="flex items-center md:hidden">
<button type="button"
class="inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-indigo-500"
aria-controls="mobile-menu"
aria-expanded="false"
x-data="{ open: false }"
@@click="open = !open">
<span class="sr-only">Open main menu</span>
<svg class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" />
</svg>
</button>
</div>
</div>
</div>
</nav>_TailwindNavItem.cshtml
Tailwind Mobile Menu with Alpine.js
_TailwindMobileNavItem.cshtml
Tailwind Mega Menu
Tailwind Footer
Tailwind Component Classes
Last updated
Was this helpful?