Configure your Filament navigation via a simple PHP configuration file - no manual navigation building required!
Perfect for applications where navigation needs to be easily manageable, version-controlled, and consistent across environments.
- β Simple Configuration - Define navigation in a clean PHP config file
- β Full Control - Groups, direct links, and visual separators
- β 24 Separator Styles - From classic lines to hearts and stars
- β Order Preservation - Array order = display order
- β
External Links - Support for external URLs with
target="_blank" - β Icon Support - Full Heroicon support for groups and items
- β No Hover on Separators - Automatically disables hover effects
- β Filament 4 Compatible - Built specifically for Filament 4.x
Install via composer:
composer require shuxx/filament-navigationPublish the configuration file:
php artisan vendor:publish --tag="filament-navigation-config"This creates config/filament-navigation.php.
In app/Providers/Filament/AdminPanelProvider.php:
use Shuxx\FilamentNavigation\FilamentNavigationPlugin;
public function panel(Panel $panel): Panel
{
return $panel
->plugin(FilamentNavigationPlugin::make());
}Edit config/filament-navigation.php:
return [
'items' => [
// Dashboard
[
'type' => 'link',
'label' => 'Dashboard',
'url' => '/admin',
'icon' => 'heroicon-o-home',
],
// Separator
['type' => 'separator', 'style' => 'default'],
// Users Group
[
'type' => 'group',
'label' => 'Users',
'icon' => 'heroicon-o-user-group',
'collapsible' => true,
'items' => [
['type' => 'link', 'label' => 'All Users', 'url' => '/admin/users'],
['type' => 'link', 'label' => 'Roles', 'url' => '/admin/roles'],
],
],
['type' => 'separator', 'style' => 'dots'],
// External link
[
'type' => 'link',
'label' => 'Documentation',
'url' => 'https://filamentphp.com/docs',
'icon' => 'heroicon-o-book-open',
'external' => true,
],
],
];That's it! Your navigation is now configured. π
Creates a collapsible navigation group:
[
'type' => 'group',
'label' => 'Settings',
'icon' => 'heroicon-o-cog-6-tooth',
'collapsible' => true, // optional, default: true
'items' => [
// ... sub-items
],
]Creates a navigation link:
[
'type' => 'link',
'label' => 'Dashboard',
'url' => '/admin/dashboard',
'icon' => 'heroicon-o-home', // optional
'external' => false, // optional, opens in new tab if true
]Creates a visual separator:
[
'type' => 'separator',
'style' => 'default', // optional, see styles below
]defaultβ βββββββββββlongβ ββββββββββββββββdoubleβ βββββββββββthickβ βββββββββββdashβ - - - - - - - -underscoreβ ___________
dotsβ β’ β’ β’ β’ β’ β’ β’ β’circleβ β β β β β βcircle-filledβ β β β β β βellipsisβ β― β― β― β― β―
squareβ βͺ βͺ βͺ βͺ βͺ βͺdiamondβ β β β β βtriangleβ βΈ βΈ βΈ βΈ βΈ βΈarrowβ β β β β βchevronβ βΊ βΊ βΊ βΊ βΊ βΊ
starsβ β β β β βheartsβ β₯ β₯ β₯ β₯ β₯plusβ + + + + + + +crossβ β β β β β
waveβ ο½ο½ο½ο½ο½ο½ο½wavyβ γ°γ°γ°γ°γ°zigzagβ οΉοΉοΉοΉοΉ
spaceβ (large empty space)blankβ Β· (minimal visible space)
By default, separators have hover effects disabled. You can enable them:
FilamentNavigationPlugin::make()
->disableSeparatorHover(false)In Filament 4, you cannot have icons on both the group AND its items. Choose one:
Option 1 - Icons on groups (recommended):
[
'type' => 'group',
'icon' => 'heroicon-o-user-group', // β
Icon here
'items' => [
['label' => 'Users', 'url' => '...'], // β No icons
],
]Option 2 - Icons on items:
[
'type' => 'group',
// β No icon on group
'items' => [
['label' => 'Users', 'icon' => 'heroicon-o-users'], // β
Icons here
],
]The order of items in your config array is the display order. The plugin transforms everything into navigation groups internally to maintain order control (a Filament 4 requirement).
composer testPlease see CHANGELOG for recent changes.
- Installation Guide - Get started in minutes
- Usage Examples - Real-world navigation configs (Blog, E-commerce, SaaS, CRM, etc.)
- Separator Styles - All 24 available styles
- API Reference - Complete configuration options
- Changelog - Version history and updates
Contributions are welcome! Please see CONTRIBUTING for details on:
- Reporting bugs
- Suggesting features
- Submitting pull requests
- Development guidelines
Need help or have questions?
- π Documentation - Check EXAMPLES.md for common use cases
- π Issues - Report bugs or request features
- π‘ Discussions - Ask questions or share ideas
- π§ Email - Contact the author at github.com/shuxx
If you discover any security-related issues, please email the author directly instead of using the issue tracker. All security vulnerabilities will be promptly addressed.
- Author: Shuxx
- Contributors: All Contributors
- Inspired by: Filament navigation system
- Built with: spatie/laravel-package-tools
The MIT License (MIT). Please see License File for more information.
Made with β€οΈ for the Filament community
β Star this repo if you find it helpful!
