skylence / filament-mega-menu
A mega menu sidebar plugin for Filament 4
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/skylence/filament-mega-menu
Requires
- php: ^8.2
- filament/filament: ^4.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- orchestra/testbench: ^10.0
- pestphp/pest: ^3.0
This package is auto-updated.
Last update: 2026-01-14 01:18:02 UTC
README
A mega menu sidebar plugin for Filament 4.
Installation
composer require skylence/filament-mega-menu
Usage
Add the plugin to your Filament panel provider:
use Skylence\FilamentMegaMenu\MegaMenuPlugin; use Skylence\FilamentMegaMenu\MegaMenuItem; use Skylence\FilamentMegaMenu\MegaMenuColumn; use Skylence\FilamentMegaMenu\MegaMenuLink; public function panel(Panel $panel): Panel { return $panel ->plugins([ MegaMenuPlugin::make() ->logoIcon('heroicon-o-cube') ->logoUrl('/') ->panelWidth(900) ->menuItems([ MegaMenuItem::make('dashboard') ->label('Dashboard') ->icon('heroicon-o-home') ->url('/dashboard'), MegaMenuItem::make('sales') ->label('Sales') ->icon('heroicon-o-shopping-cart') ->columns([ MegaMenuColumn::make('Orders') ->links([ MegaMenuLink::make('All Orders') ->url('/orders') ->icon('heroicon-o-document-text'), MegaMenuLink::make('Create Order') ->url('/orders/create'), ]), MegaMenuColumn::make('Invoices') ->links([ MegaMenuLink::make('All Invoices') ->url('/invoices'), ]), ]), ]), ]); }
Configuration
Menu Items
Menu items can be direct links or expandable panels with columns:
// Direct link MegaMenuItem::make('dashboard') ->label('Dashboard') ->icon('heroicon-o-home') ->url('/dashboard') // Resource link MegaMenuItem::make('users') ->label('Users') ->icon('heroicon-o-users') ->resource(UserResource::class) // Panel with columns MegaMenuItem::make('sales') ->label('Sales') ->icon('heroicon-o-shopping-cart') ->columns([...]) ->sort(10) ->visible(fn () => auth()->user()->can('view_sales'))
Columns
Columns group related links within a menu panel:
MegaMenuColumn::make('Orders') ->links([...]) ->visible(fn () => auth()->user()->can('view_orders'))
Links
Links are the individual navigation items:
MegaMenuLink::make('All Orders') ->url('/orders') ->icon('heroicon-o-document-text') ->badge('5', 'bg-red-100 text-red-800') ->visible(fn () => auth()->user()->can('view_orders')) ->disabled(fn () => ! Feature::active('orders')) ->isActiveWhen(fn () => request()->routeIs('orders.*'))
Styling
The sidebar uses Tailwind CSS classes. To customize the appearance, you can publish the views:
php artisan vendor:publish --tag=filament-mega-menu-views
Requirements
- PHP 8.2+
- Laravel 11+
- Filament 4.0+
License
MIT