PHPackages                             frameworkdesign/nova-menu-builder - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. frameworkdesign/nova-menu-builder

ActiveLibrary

frameworkdesign/nova-menu-builder
=================================

Menu Builder Tool for Laravel Nova.

043Vue

Since Jan 23Pushed 3y agoCompare

[ Source](https://github.com/FrameworkDesign/Nova-Menu-Builder)[ Packagist](https://packagist.org/packages/frameworkdesign/nova-menu-builder)[ RSS](/packages/frameworkdesign-nova-menu-builder/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Nova Menu Builder
=================

[](#nova-menu-builder)

This tool allows you to create menus in Laravel Nova

[![menu builder Home](https://user-images.githubusercontent.com/42798230/50765532-7632ea80-1276-11e9-8fed-ec1f6d53983a.png)](https://user-images.githubusercontent.com/42798230/50765532-7632ea80-1276-11e9-8fed-ec1f6d53983a.png)

[![Menu Builder Items](https://user-images.githubusercontent.com/42798230/50765390-06bcfb00-1276-11e9-9e82-fd7956507c78.png)](https://user-images.githubusercontent.com/42798230/50765390-06bcfb00-1276-11e9-9e82-fd7956507c78.png)

Installation
------------

[](#installation)

You can install the package in to a Laravel app that uses [Nova](https://nova.laravel.com) via composer:

```
composer require FrameworkDesign/nova-menu-builder
```

Then you should publish the database table file and migrate it:

```
php artisan vendor:publish --tag=menu-builder-migration
php artisan migrate
```

Usage
-----

[](#usage)

Next up, you must register the tool with Nova. This is typically done in the tools method of the NovaServiceProvider.

```
// in app/Providers/NovaServiceProvider.php

// ...

public function tools()
{
    return [
        // ...
        new \Infinety\MenuBuilder\MenuBuilder(),
    ];
}
```

Helpers
-------

[](#helpers)

There are three helpers built in for your blades

- **menu\_builder('slug')**.

    ```
    	Creates an html menu for given slug. Extra options are not required. By default tags are `ul` and `li`, and without html classes.

    ```

```
{!! menu_builder('main') !!}

//or

{!! menu_builder('main', 'parent-class', 'child-class', 'dl', 'dd') !!}
```

- **menu\_name('slug')**.

    ```
    	Returns the name of the menu for a given slug.

    ```

```
{{ menu_name('main') }}
```

- **menu\_json('slug')**.

    ```
    	Returns a json with all items for given slug.

    ```

```
{!! menu_json('main') !!}
```

Example using blade.
--------------------

[](#example-using-blade)

```
@foreach (getMenuBySlug('header')->parentItems as $menuItem)
    @include('menu-builder::menu-item', [
      'menu' => $menuItem,
      'active_top_class' => 'active',
      'active_child_class' => 'active',
    ])
@endforeach
```

Localization
------------

[](#localization)

Set your translations in the corresponding xx.json file located in /resources/lang/vendor/nova

```
"Menu Builder": "Menu Builder",
"Menu Items": "Menu Items",
"Add item": "Add item",
"Delete item": "Delete item",
"Are you sure to delete this menu item?": "Are you sure to delete this menu item?",
"Take care. All children items will be deleted cause you're deleting the parent.": "Take care. All children items will be deleted cause you're deleting the parent.",
"Cancel": "Cancel",
"Yes, remove!": "Yes, remove!",
"Add Menu item": "Add Menu item",
"Name": "Name",
"Slug": "Slug",
"Menu Helper": "Menu Helper",
"Link type": "Link type",
"Choose an option": "Choose an option",
"Static Url": "Static Url",
"Dynamic Route": "Dynamic Route",
"URL": "URL",
"Route": "Route",
"Parameters": "Parameters",
"Open in": "Open in",
"Same window": "Same window",
"New window": "New window",
"Classes": "Classes",
"Create menu item": "Create menu item",
"Update menu item": "Update menu item",
"Item removed successfully!": "Item removed successfully!",
"Item created!": "Item created!",
"Item updated!": "Item updated!",
"Menu reordered!": "Menu reordered!",
"Error on server!": "Error on server!",
"Enabled": "Enabled",
"Disabled": "Disabled"
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

Security
--------

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

Postcardware
------------

[](#postcardware)

You're free to use this package, but if it makes it to your production environment we highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using.

Our address is: Infinety - Calle Comedias, 8 Floor 3, Suite 5 46003 Valencia (Spain).

Credits
-------

[](#credits)

- [Eric Lagarda](https://github.com/Krato)
- [Ralph Huwiler (vue-nestable)](https://github.com/rhwilr/vue-nestable)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

16

—

LowBetter than 5% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity23

Early-stage or recently created project

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/f023883d8048f26ebdd24f3228d3f58072811079545913392a7ca84af4d10977?d=identicon)[MattHadfield113](/maintainers/MattHadfield113)

---

Top Contributors

[![Krato](https://avatars.githubusercontent.com/u/74367?v=4)](https://github.com/Krato "Krato (8 commits)")[![MattHadfield113](https://avatars.githubusercontent.com/u/30897252?v=4)](https://github.com/MattHadfield113 "MattHadfield113 (5 commits)")[![paulweareframework](https://avatars.githubusercontent.com/u/46562148?v=4)](https://github.com/paulweareframework "paulweareframework (2 commits)")[![kikoseijo](https://avatars.githubusercontent.com/u/1528668?v=4)](https://github.com/kikoseijo "kikoseijo (2 commits)")[![hofmannsven](https://avatars.githubusercontent.com/u/1214387?v=4)](https://github.com/hofmannsven "hofmannsven (1 commits)")[![Manoz](https://avatars.githubusercontent.com/u/1554207?v=4)](https://github.com/Manoz "Manoz (1 commits)")[![hellozach](https://avatars.githubusercontent.com/u/8039641?v=4)](https://github.com/hellozach "hellozach (1 commits)")[![atmonshi](https://avatars.githubusercontent.com/u/1952412?v=4)](https://github.com/atmonshi "atmonshi (1 commits)")

### Embed Badge

![Health badge](/badges/frameworkdesign-nova-menu-builder/health.svg)

```
[![Health](https://phpackages.com/badges/frameworkdesign-nova-menu-builder/health.svg)](https://phpackages.com/packages/frameworkdesign-nova-menu-builder)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
