Nova Menu Advanced
Visit this package on GitHub

Menu Card

This package adds the possibility to display cards in the menu.

You can create a new menu card by calling the MenuCard::make method.

use NormanHuth\NovaMenu\MenuCard;
 
Nova::mainMenu(function (Request $request) {
return [
//..
MenuCard::make(),
//..
];
});

You can set a string as content for a menu card by invoking the content method when defining the menu card:

use NormanHuth\NovaMenu\MenuCard;
 
Nova::mainMenu(function (Request $request) {
return [
//..
MenuCard::make()
->content('Norman Huth'),
//..
];
});

You can set a Blade template as content for a menu card by invoking the view method when defining the menu card:

use NormanHuth\NovaMenu\MenuCard;
 
Nova::mainMenu(function (Request $request) {
return [
//..
MenuCard::make()
->view('admin.news', ['name' => $request->user()->name])),
//..
];
});

You can hide a card from a group of users by invoking the canSee method when defining the menu card:

use NormanHuth\NovaMenu\MenuCard;
 
Nova::mainMenu(function (Request $request) {
return [
//..
MenuCard::make()
->canSee(function (Request $request) {
return str_ends_with($request->user()->email, '@huth.it');
}),
//..
];
});

The static make method accept a theme argument. Valid themes are info, success, warning and danger.

use NormanHuth\NovaMenu\MenuCard;
 
Nova::mainMenu(function (Request $request) {
return [
//..
MenuCard::make('info'),
//..
];
});

You can add a border radius by invoking the rounded method when defining the menu card:

use NormanHuth\NovaMenu\MenuCard;
 
Nova::mainMenu(function (Request $request) {
return [
//..
MenuCard::make('info')
->rounded(),
MenuCard::make('info')
->rounded('sm'),
MenuCard::make('info')
->rounded('md'),
MenuCard::make('info')
->rounded('lg'),
//..
];
});

You can add classes to the menu card class attribute by invoking the addClasses method when defining the menu card:

use NormanHuth\NovaMenu\MenuCard;
 
Nova::mainMenu(function (Request $request) {
return [
//..
MenuCard::make('info')
->addClasses(['text-center', 'text-white']),
//..
];
});

You can add styles to the menu card style attribute by invoking the addStyles method when defining the menu card:

use NormanHuth\NovaMenu\MenuCard;
 
Nova::mainMenu(function (Request $request) {
return [
//..
MenuCard::make('info')
->addStyles([
'color' => 'white',
'text-align' => 'center',
]),
//..
];
});

You can add the same left margin spacing like a MenuItem by invoking the asItem method when defining the menu card:

use NormanHuth\NovaMenu\MenuCard;
 
Nova::mainMenu(function (Request $request) {
return [
//..
MenuCard::make('info')
->asItem(),
//..
];
});