PHPackages                             hammadzafar05/mobile-bottom-nav - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. hammadzafar05/mobile-bottom-nav

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

hammadzafar05/mobile-bottom-nav
===============================

A thumb-friendly mobile bottom navigation bar for Filament panels. It programmatically integrates with the Filament navigation registry to provide a seamless, ergonomic mobile experience with full support for dark mode and safe-area insets.

v1.4.1(2w ago)1821.3k↑141.5%51MITPHPPHP ^8.2CI passing

Since Feb 16Pushed 2w agoCompare

[ Source](https://github.com/hammadzafar05/mobile-bottom-nav)[ Packagist](https://packagist.org/packages/hammadzafar05/mobile-bottom-nav)[ Docs](https://github.com/hammadzafar05/mobile-bottom-nav)[ GitHub Sponsors](https://github.com/hammadzafar05)[ RSS](/packages/hammadzafar05-mobile-bottom-nav/feed)WikiDiscussions 5.x Synced 2w ago

READMEChangelog (6)Dependencies (38)Versions (13)Used By (1)

Mobile Bottom Navigation for Filament
=====================================

[](#mobile-bottom-navigation-for-filament)

[![Latest Version on Packagist](https://camo.githubusercontent.com/1a5cde9e3ad46ce703e376987f20873b4bbf85cc31b0708ea54d6026ae43b5f0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f68616d6d61647a6166617230352f6d6f62696c652d626f74746f6d2d6e61762e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/hammadzafar05/mobile-bottom-nav)[![GitHub Tests Action Status](https://camo.githubusercontent.com/1dfda0e55c1c46121c25d327969d35972ba5715df8c02d63b700215277eed0bc/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f68616d6d61647a6166617230352f6d6f62696c652d626f74746f6d2d6e61762f72756e2d74657374732e796d6c3f6c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/hammadzafar05/mobile-bottom-nav/actions?query=workflow%3Arun-tests+branch%3Amain)[![Total Downloads](https://camo.githubusercontent.com/b9a52ad7814b98a812f34037cd8505ddc18a27f8a5873f87c7c485755e405443/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f68616d6d61647a6166617230352f6d6f62696c652d626f74746f6d2d6e61762e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/hammadzafar05/mobile-bottom-nav)

A thumb-friendly mobile bottom navigation bar for Filament panels. Automatically extracts items from your Filament navigation and renders a fixed bottom bar on mobile viewports — with full support for dark mode, safe-area insets, badges, and sidebar integration.

**Supports Filament v4 and v5.**

Screenshots
-----------

[](#screenshots)

#### Light Mode

[](#light-mode)

[![Light Mode](art/screenshot-light.png)](art/screenshot-light.png)

#### Dark Mode

[](#dark-mode)

[![Dark Mode](art/screenshot-dark.png)](art/screenshot-dark.png)

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

[](#installation)

```
composer require hammadzafar05/mobile-bottom-nav
```

That's it. No custom theme or additional CSS configuration is required.

> **Filament 4.11.5+ or 5.6.5+ is recommended.** Earlier releases in both majors carry four published advisories, the most serious an unauthenticated temporary file upload on auth pages. This plugin works with any 4.x or 5.x, so the constraint stays `^4.0 || ^5.0` — which framework patch level you run is your application's decision. `composer audit` will tell you where you stand.

Usage
-----

[](#usage)

Register the plugin in your panel provider:

```
use Hammadzafar05\MobileBottomNav\MobileBottomNav;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            MobileBottomNav::make(),
        ]);
}
```

The plugin automatically extracts your top navigation items and displays them in a bottom bar on mobile screens. On desktop, it stays hidden.

Configuration
-------------

[](#configuration)

All configuration is optional and done via a fluent API.

### Navigation Limit &amp; More Button

[](#navigation-limit--more-button)

By default, the plugin shows 2 navigation items + a "More" button that opens the sidebar. You can adjust the total number of slots:

```
MobileBottomNav::make()
    ->fromNavigation(5)     // 4 nav items + 1 More button
```

To disable the "More" button entirely:

```
MobileBottomNav::make()
    ->fromNavigation(4)     // 4 nav items, no More button
    ->moreButton(false)
```

### Sidebar Toggle

[](#sidebar-toggle)

While the bottom bar is on screen, its "More" button already opens the sidebar, so Filament's own topbar hamburger is redundant — the plugin hides it below `1024px` by default. It is only hidden when the bar actually rendered *and* the "More" button is enabled, so the sidebar always stays reachable.

If you disable the "More" button, keep the hamburger:

```
MobileBottomNav::make()
    ->moreButton(false)
    ->hideSidebarToggle(false)
```

Hiding the hamburger is the one place this plugin reaches beyond the bar itself. If you want the rest of the panel to match (tables that stack instead of scrolling sideways, action buttons within thumb reach, modals that open as slide-overs), [`filament-mobile-preset`](https://github.com/hammadzafar05/filament-mobile-preset) bundles this plugin together with defaults for those.

### Custom Items

[](#custom-items)

Provide your own items instead of extracting from the navigation registry:

```
use Hammadzafar05\MobileBottomNav\MobileBottomNav;
use Hammadzafar05\MobileBottomNav\MobileBottomNavItem;

MobileBottomNav::make()
    ->items([
        MobileBottomNavItem::make('Home')
            ->icon('heroicon-o-home')
            ->activeIcon('heroicon-s-home')
            ->url('/admin')
            ->isActive(fn () => request()->is('admin')),
        MobileBottomNavItem::make('Inbox')
            ->icon('heroicon-o-inbox')
            ->url('/admin/inbox')
            ->badge(5, 'danger'),
        MobileBottomNavItem::make('Profile')
            ->icon('heroicon-o-user')
            ->url('/admin/profile'),
    ])
```

### Conditional Visibility

[](#conditional-visibility)

Items support conditional visibility:

```
MobileBottomNavItem::make('Admin')
    ->icon('heroicon-o-shield-check')
    ->url('/admin/settings')
    ->visible(fn () => auth()->user()?->isAdmin())
```

### All Options

[](#all-options)

MethodDefaultDescription`fromNavigation(int $limit)``3`Total number of bottom bar slots (includes the "More" button if enabled)`items(array $items)``null`Provide custom `MobileBottomNavItem` instances (disables auto-extraction)`moreButton(bool $enabled)``true`Show/hide the "More" button that opens the sidebar`moreButtonLabel(string $label)``'More'` (translatable)Customize the "More" button label`hideSidebarToggle(bool $condition)``true`Hide Filament's topbar sidebar toggle on mobile while the bottom bar is visible (only applied when the "More" button is enabled)`renderHook(string $hook)``PanelsRenderHook::BODY_END`Change which Filament render hook is used### Publishing Views

[](#publishing-views)

If you need to customize the Blade template:

```
php artisan vendor:publish --tag="mobile-bottom-nav-views"
```

Testing
-------

[](#testing)

```
composer test
```

Related
-------

[](#related)

This bar fixes navigation, and deliberately nothing else. On a phone your tables still scroll sideways, action buttons still sit at the far edge of the screen, and modals still open as centred dialogs.

[`filament-mobile-preset`](https://github.com/hammadzafar05/filament-mobile-preset) bundles this plugin together with defaults for those, for panels that want the whole thing to feel mobile-first. Same author, same no-build-step approach.

Changelog
---------

[](#changelog)

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

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

[](#contributing)

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

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

Please review [our security policy](.github/SECURITY.md) on how to report security vulnerabilities.

Credits
-------

[](#credits)

- [Hammad Zafar](https://github.com/hammadzafar05)
- [All Contributors](../../contributors)

License
-------

[](#license)

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

###  Health Score

54

—

FairBetter than 97% of packages

Maintenance96

Actively maintained with recent releases

Popularity39

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 77.5% of commits — single point of failure

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.

###  Release Activity

Cadence

Every ~18 days

Recently: every ~4 days

Total

10

Last Release

20d ago

Major Versions

v1.4.1 → 5.x-dev2026-07-29

### Community

Maintainers

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

---

Top Contributors

[![hammadzafar05](https://avatars.githubusercontent.com/u/75698921?v=4)](https://github.com/hammadzafar05 "hammadzafar05 (31 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (5 commits)")[![chengkangzai](https://avatars.githubusercontent.com/u/43839286?v=4)](https://github.com/chengkangzai "chengkangzai (2 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (1 commits)")[![Ninadjeret](https://avatars.githubusercontent.com/u/9552573?v=4)](https://github.com/Ninadjeret "Ninadjeret (1 commits)")

---

Tags

laravelfilamentfilament-pluginfilamentphphammadzafar05mobile-bottom-nav

###  Code Quality

TestsPest

Static AnalysisPHPStan, Rector

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/hammadzafar05-mobile-bottom-nav/health.svg)

```
[![Health](https://phpackages.com/badges/hammadzafar05-mobile-bottom-nav/health.svg)](https://phpackages.com/packages/hammadzafar05-mobile-bottom-nav)
```

###  Alternatives

[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3915.5k](/packages/rawilk-profile-filament-plugin)[backstage/mails

View logged mails and events in a beautiful Filament UI.

16429.7k](/packages/backstage-mails)[marcelweidum/filament-passkeys

Use passkeys in your filamentphp app

6758.2k2](/packages/marcelweidum-filament-passkeys)[stephenjude/filament-two-factor-authentication

Filament Two Factor Authentication: Google 2FA + Passkey Authentication

85240.3k9](/packages/stephenjude-filament-two-factor-authentication)[relaticle/custom-fields

User Defined Custom Fields for Laravel Filament

16461.2k](/packages/relaticle-custom-fields)[wsmallnews/filament-nestedset

Filament nestedset tree builder powered by kalnoy/nestedset with Filament v4 and v5 support

218.8k22](/packages/wsmallnews-filament-nestedset)

PHPackages © 2026

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