Search by

verbb / navigation

verbb

Create navigation menus for your site.

Package info

github.com/verbb/navigation

Documentation

Type:craft-plugin

pkg:composer/verbb/navigation

Fund package maintenance!

verbb

Statistics

Installs: 723 531

Dependents: 18

Suggesters: 2

Stars: 91

Open Issues: 4

4.0.0 2026-09-22 02:55 UTC

This package is auto-updated.

Last update: 2026-09-23 09:26:31 UTC


README

Important

Navigation 4 for Craft 5 has some breaking changes. Consult our Upgrading from v3 docs for the details.

Navigation icon

Navigation for Craft CMS

Navigation is a Craft CMS plugin for building and rendering menus — nested link trees backed by Craft elements, custom URLs, dynamic branches, and structural node types.

What's new in Navigation 4

  • New menu builder — a modern control panel experience with non-live edits you publish when ready, plus menu content editing in slide-outs.
  • Menu element & menu fields — menu-level custom fields on a dedicated Menu element, separate from node fields.
  • Dynamic nodes — pluggable dynamic sources that project entries, categories, assets, or Commerce products at read time, with entry conditions and sort order.
  • Context APIcraft.navigation.context(handle) with siblings(), branch(), ancestors(), and more for section sidebars and sub-nav.
  • Menu breadcrumbscraft.navigation.menuBreadcrumbs(handle) for trail output based on your menu structure, alongside URL-segment breadcrumbs.
  • Performance & caching — tagged tree caching, smart hierarchy wiring, and opt-in linked-element hydration to cut down N+1 queries on large menus.
  • Smarter active state — single-pass matching with getActiveNodes(), getCurrentNodes(), and improved tree() output (current, hasActiveChild).
  • GraphQL — menu queries, context, menu breadcrumbs, and hydration flags for headless front ends.
  • Third-party migrations — import menus from FreeNav, MenuBuilder, Navigate, Navkit, Olivemenus, and tka navigation.

Features

  • Create multiple menus for your site
  • Link to entries, assets, categories, and Commerce products — or add custom URLs, site links, passive/group columns, and dynamic branches
  • Menu-level and node-level custom fields
  • Enable or disable nodes, open links in a new window, or apply additional CSS classes
  • Automatically updates nodes when linked elements' status or title changes
  • Navigation nodes are elements for flexible querying
  • Support for third-party node types with hooks
  • Multi-site menus with per-site link settings
  • Simple render() Twig function, or roll your own with nodes(), tree(), and the Context API
  • Generate breadcrumbs from your menu structure or from URL segments
  • GraphQL support for menus, nodes, context, and breadcrumbs
  • Performance caching with tagged invalidation (Blitz-friendly)
  • Migrate from FreeNav, MenuBuilder, Navigate, Navkit, Olivemenus, or tka navigation
  • Feed Me support for importing nodes

Documentation

Visit the Navigation Plugin page for all documentation, guides, pricing and developer resources.

Support

Get in touch with us via the Navigation Support page or by creating a Github issue

Verbb