Collapsible Sub-Nav
CommunityAdds a clean and responsive collapsible sub-navigation system fully compatible with Filament’s topNavigation() mode.
Author:
Emuniq
Package health
BetaAutomated checks of this plugin's Composer package
15 checks
- Skipped: GitHub Actions pinned to SHA
- Skipped: GitLab CI includes pinned to SHA
- Passed: Open security advisories
- Passed: Dependabot PR responsiveness — No open Dependabot PRs.
- Skipped: Renovate MR responsiveness
- Skipped: Dependabot or Renovate configured
- Skipped: Dependency update cooldown configured
- Failed: Provides a security policy — View details on Plumb
- Passed: Abandoned or archived — No consulted source marks the package abandoned (packagist, github).
- Passed: Commit and release recency — Active: last commit 75 days ago; last release 75 days ago.
-
Passed:
composer.lock not committed by library
—
composer.lockis absent from the released dist archive. - Passed: Dist archive is lean
-
Passed:
Current Laravel version supported
—
Package dependencies resolve together with current Laravel
13.0. -
Passed:
Current PHP version supported
—
Constraint
^8.1supports current PHP8.5. - Skipped: Current Symfony version supported
filament/
namespace. Review the source and install at your own risk. Found
malware or an unresolved security issue the author won't
address?
Report it
.
Documentation
- Compatibility
- Installation
- Features
- How It Works
- Manual Registration (Optional)
- Troubleshooting
- Contributing
- Maintained by Emuniq
- License
A Filament v3, v4 & v5 plugin that adds a collapsible toggle to sub-navigation sidebars only. Perfect for resource pages with multiple tabs or sections using ->subNavigationPosition(SubNavigationPosition::Start).
Works with both top navigation and sidebar navigation layouts — the plugin specifically targets the sub-navigation sidebar that appears on individual resource pages, not the main panel navigation.
Without Top Navigation (Sidebar Layout):

With Top Navigation:

#Compatibility
| Plugin version | Filament | PHP | Laravel |
|---|---|---|---|
^1.0 |
v3, v4, v5 | 8.1+ | 10 / 11 / 12 / 13 |
Note: This plugin only affects sub-navigation sidebars (the secondary navigation within resource pages), not the main panel sidebar. It works regardless of whether you use top navigation or sidebar navigation for your main panel layout.
#Installation
Install the package via composer:
composer require emuniq/filament-collapsible-subnav
That's it! The plugin auto-registers to all panels and works immediately with zero flash.
#Optional: Theme Integration
For a slight performance boost, you can integrate the CSS into your Filament theme:
php artisan collapsible-subnav:install
npm run build
This bundles the plugin CSS with your theme, reducing HTTP requests. Not required — the plugin works perfectly without this step.
#Features
- ✅ Zero configuration — Auto-registers to all panels
- ✅ Collapsible sub-navigation sidebar toggle
- ✅ Persistent state using cookies (server-side rendered to avoid FOUC)
- ✅ Works with SPA mode (
livewire:navigatedre-sync) - ✅ Tooltips for collapsed items (native fallback for v4, Tippy for v3)
- ✅ Responsive — hidden on mobile (<768px)
- ✅ Smooth transitions
- ✅ No theme, npm, or build step required
#How It Works
The plugin automatically:
- Registers itself to all Filament panels on installation
- Injects critical CSS in the
<head>to prevent flashes on reload - Adds a toggle button to sub-navigation sidebars only (not main panel navigation)
- Persists the collapsed/expanded state via the
subnav_collapsedcookie - Re-syncs after each Livewire SPA navigation
The plugin detects pages with sub-navigation and only applies to those specific sidebars, leaving your main panel navigation (top or sidebar) untouched.
#Manual Registration (Optional)
If you prefer manual control, you can register the plugin explicitly on individual panels:
use Emuniq\FilamentCollapsibleSubnav\CollapsibleSubnavPlugin;
public function panel(Panel $panel): Panel
{
return $panel
// ...
->plugin(CollapsibleSubnavPlugin::make());
}
#Troubleshooting
Cloudflare Rocket Loader strips the early script. The plugin marks its critical inline script with data-cfasync="false" so Rocket Loader skips it. If you still see a flash on reload, check that your CDN or HTML minifier preserves the attribute.
SPA mode (->spa()) leaves the toggle out of sync. Fixed since the SPA re-sync patch — the plugin now listens to livewire:navigated and re-applies state on every navigation.
Tooltips don't appear in Filament v4. Filament v4 doesn't expose Tippy globally; the plugin falls back to the native HTML title attribute so a tooltip always shows on hover.
#Contributing
Issues and pull requests are welcome on GitHub. For bugs, please include your Filament version, PHP version, and a minimal reproduction.
#Maintained by Emuniq
This plugin is built and maintained by Emuniq — a Laravel & Filament consultancy based in Mexico. We help teams ship admin panels, custom Filament resources, and SaaS backoffices.
- 🌐 Website: emuniq.com
- 💼 Need a hand with your Filament project? Get in touch.
- ⭐ If this plugin saves you time, a GitHub star helps others find it.
#License
The MIT License (MIT). Please see LICENSE.md for more information.
The author
From the same author
Browser Notifications
Every ->sendToDatabase() in your app automatically triggers a browser push notification - no code changes needed.
Author:
Emuniq
Scrollable Top Navigation
Turn the top navigation into a single scrollable row instead of letting it wrap into multiple rows when you have many navigation groups or clusters.
Author:
Emuniq
Featured Plugins
A selection of plugins curated by the Filament team
Custom Dashboards
Let your users build and share their own dashboards with a drag-and-drop interface. Define your data sources in PHP and let them do the rest.
Filament
Advanced Tables (formerly Filter Sets)
Supercharge your tables with powerful features like user-customizable views, quick filters, multi-column sorting, advanced table searching, convenient view management, and more. Compatible with Resource Panel Tables, Relation Managers, Table Widgets, and Table Builder!
Kenneth Sese
Blueprint
Filament Blueprint is a premium Laravel Boost extension that helps AI agents produce accurate, detailed implementation plans and security reports for Filament apps.
Filament