PHPackages                             muazzambuilds/filament-white-label - 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. muazzambuilds/filament-white-label

ActiveLibrary

muazzambuilds/filament-white-label
==================================

Total panel white-label for Filament v5 — brand, colors, fonts, layout, CSS, footer. Per panel and optional per tenant.

v1.0.0(1mo ago)1127—0%3[2 PRs](https://github.com/muazzambuilds/filament-white-label/pulls)MITPHPPHP ^8.2

Since Jul 14Pushed 1mo agoCompare

[ Source](https://github.com/muazzambuilds/filament-white-label)[ Packagist](https://packagist.org/packages/muazzambuilds/filament-white-label)[ Docs](https://github.com/muazzambuilds/filament-white-label)[ RSS](/packages/muazzambuilds-filament-white-label/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (1)Dependencies (7)Versions (2)Used By (0)

 [![Filament White Label](media/cover-2560x1440.png)](media/cover-2560x1440.png)

Filament White Label
====================

[](#filament-white-label)

Total panel rebranding for **Filament v5** — no code edits required for day-to-day branding. Admins configure brand identity, theme colors, fonts, layout, behavior, footer, and custom CSS from a single settings page.

Works **per panel**, and optionally **per tenant** when Filament tenancy is active.

 [![White Label settings — Colors tab](art/screenshot.png)](art/screenshot.png)

Requirements
------------

[](#requirements)

DependencyVersionPHP`^8.2`Laravel`^11` / `^12`Filament`^5.0`Installation
------------

[](#installation)

```
composer require muazzambuilds/filament-white-label
```

Publish config (optional) and migrate:

```
php artisan vendor:publish --tag=filament-white-label-config
php artisan migrate
php artisan storage:link
```

The settings migration loads automatically via the package (`runsMigrations`). Publish config only when you need to override disks, cache, navigation, or defaults.

Link storage so uploaded logos and favicons are publicly reachable.

Setup
-----

[](#setup)

### Register the plugin

[](#register-the-plugin)

```
use MuazzamBuilds\FilamentWhiteLabel\WhiteLabelPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugin(
            WhiteLabelPlugin::make()
                ->navigationGroup('Settings')
                ->navigationSort(99)
                ->authorize(fn (): bool => auth()->user()?->is_admin ?? true),
        );
}
```

Open **Settings → White Label** in the panel.

### Fluent options

[](#fluent-options)

MethodPurpose`enabled(bool | Closure)`Toggle the entire plugin`navigationLabel(...)`Nav item label`navigationGroup(...)`Nav group`navigationIcon(...)`Heroicon / string icon`navigationSort(...)`Sort order`registerNavigation(...)`Show / hide nav item`authorize(...)`Who can open the settings page```
WhiteLabelPlugin::make()
    ->navigationLabel('Appearance')
    ->navigationIcon('heroicon-o-paint-brush')
    ->authorize(fn (): bool => auth()->user()->can('manage-branding'));
```

Features
--------

[](#features)

### Brand identity

[](#brand-identity)

 [![Brand settings — logos, favicon, and brand name](art/screenshot-brand.png)](art/screenshot-brand.png)

SettingDescription**App / brand name**Overrides the panel brand name (sidebar / topbar)**Logo (light)**Image used in light mode**Logo (dark)**Image used when dark mode is active**Logo height**CSS length (`2rem`, `40px`, …)**Favicon**Panel favicon (`png`, `ico`, `svg`, `webp`, `jpeg`)Uploads use the configured filesystem disk (`public` by default) under `white-label/`.

### Theme colors

[](#theme-colors)

 [![Colors settings — primary, gray, danger, warning, success, info](art/screenshot-settings.png)](art/screenshot-settings.png)

| Role | Use | |---|---| | `primary` | Buttons, links, accents | | `gray` | Neutrals / chrome | | `danger` | Destructive actions | | `warning` | Warnings | | `success` | Success states | | `info` | Informational states | Pick hex values in the UI — Filament builds the full shade palette via `FilamentColor`. Leave a role empty to keep the panel provider default.

Colors register early (plugin `register` + `FilamentColor`) so they actually reach the theme CSS variables. Saving settings hard-reloads the page so new colors apply immediately.

### Typography

[](#typography)

- Curated **Bunny Fonts** list (Inter, Figtree, Outfit, JetBrains Mono, Playfair Display, …)
- Dropdown options render **in their own typeface** so you can preview before selecting
- Selected family is applied to the panel through Filament’s Bunny font provider

### Layout

[](#layout)

SettingDescriptionTop navigationSwitch to top nav modeTop barShow / hide topbarBreadcrumbsShow / hide breadcrumbsCollapsible sidebarDesktop collapse behaviorFully collapsible sidebarIcon-rail collapseCollapsible nav groupsGroup expand / collapseSidebar widthCSS length (`18rem`, …)Max content width`7xl`, `full`, `screen`, … or panel default### Behavior

[](#behavior)

SettingDescriptionSPA modeFilament SPA navigationSPA prefetchingPrefetch on hover (requires SPA)Unsaved changes alertsWarn before leaving dirty formsDatabase notificationsBell / DB notificationsDark modeAllow dark theme switching**Guardrails:** database notifications stay off unless the `notifications` table exists **and** the auth user model uses `Notifiable`. The toggle is disabled with a clear message when the environment is not ready — the panel will not crash.

### Footer

[](#footer)

- Optional footer strip on every panel page
- HTML text supported (for short brand / copyright lines)

### Advanced — custom CSS

[](#advanced--custom-css)

- Inject sanitized CSS into every panel page (`panels::styles.after`)
- `@import`, `javascript:`, `expression()`, and `behavior:` are stripped
- Size capped via `custom_css_max_length` (default 50KB)

Multi-panel &amp; tenancy
-------------------------

[](#multi-panel--tenancy)

ModeStorage keyBehaviorSingle panel`panel_id` + empty `tenant_key`One settings row per panelMulti-tenant`panel_id` + tenant keyResolves current tenant; falls back to panel-global rowDefaults from `config/filament-white-label.php` apply when no DB row exists yet.

Safety &amp; reliability
------------------------

[](#safety--reliability)

Built to stay **crash-free**:

- Missing settings / notifications tables → soft defaults + UI messages (no 500s)
- Invalid hex colors / media paths → ignored
- Unsafe behavior toggles → forced off on save with warning notifications
- Plugin boot wrapped in try/catch — branding failures are reported, panel still loads
- CSS sanitization on custom styles
- Aggressive caching with bust-on-save

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

[](#configuration)

```
// config/filament-white-label.php

return [
    'navigation_group' => 'Settings',
    'navigation_sort' => 99,
    'navigation_icon' => 'heroicon-o-swatch',

    'disk' => 'public',
    'directory' => 'white-label',

    'cache' => [
        'enabled' => true,
        'ttl' => 3600,
        'key_prefix' => 'filament-white-label',
    ],

    'custom_css_max_length' => 50000,

    'defaults' => [
        // brand_name, logos, colors, layout, behavior, footer, custom_css…
    ],
];
```

How it works (short)
--------------------

[](#how-it-works-short)

1. Settings saved to `filament_white_label_settings` (`panel_id` + `tenant_key` + JSON `data`)
2. `WhiteLabelManager` merges DB data with config defaults (cached)
3. `WhiteLabelPlugin` applies values through Filament panel APIs + `FilamentColor`
4. Custom CSS / footer inject via panel render hooks

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

[](#screenshots)

BrandColors[![Brand](art/screenshot-brand.png)](art/screenshot-brand.png)[![Colors](art/screenshot-settings.png)](art/screenshot-settings.png)Testing
-------

[](#testing)

```
cd filament-white-label
composer install
vendor/bin/phpunit
```

Changelog mindset
-----------------

[](#changelog-mindset)

This package targets **Filament v5** only. Panel color registration follows Filament’s boot order (`FilamentColor` before plugin `boot`) so theme colors apply correctly.

Support
-------

[](#support)

If this package helps you, consider supporting development:

[![Buy Me A Coffee](https://camo.githubusercontent.com/ae1848f99ea87c538c70dd9051798b769ba715939b8398ed02ad68a7da5d22bc/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4275792532304d6525323061253230436f666665652d6666646430303f7374796c653d666f722d7468652d6261646765266c6f676f3d6275792d6d652d612d636f66666565266c6f676f436f6c6f723d626c61636b)](https://buymeacoffee.com/muazzambuilds)

License
-------

[](#license)

MIT — see [LICENSE](LICENSE).

---

 [![Filament White Label icon](art/icon.png)](art/icon.png)

 Built for the [Muazzam Builds](https://github.com/muazzambuilds) Filament plugin suite.

###  Health Score

43

—

FairBetter than 89% of packages

Maintenance90

Actively maintained with recent releases

Popularity19

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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

Unknown

Total

1

Last Release

48d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/300896156?v=4)[Muazzam Ali Khan](/maintainers/muazzambuilds)[@muazzambuilds](https://github.com/muazzambuilds)

---

Top Contributors

[![muazzambuilds](https://avatars.githubusercontent.com/u/300896156?v=4)](https://github.com/muazzambuilds "muazzambuilds (2 commits)")

---

Tags

laravelSettingsthemefilamentfilament-pluginbrandingwhite-label

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/muazzambuilds-filament-white-label/health.svg)

```
[![Health](https://phpackages.com/badges/muazzambuilds-filament-white-label/health.svg)](https://phpackages.com/packages/muazzambuilds-filament-white-label)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3365.5M359](/packages/psalm-plugin-laravel)[spatie/laravel-health

Monitor the health of a Laravel application

89313.5M195](/packages/spatie-laravel-health)[laravel/ai

The official AI SDK for Laravel.

1.1k6.4M360](/packages/laravel-ai)[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3915.5k](/packages/rawilk-profile-filament-plugin)[simplestats-io/laravel-client

Server-side analytics for Laravel that follows the full funnel from visit to registration to payment, attributed to the channel that drove it. Revenue, MRR, churn and ad-spend profit (ROAS/CAC) per channel. GDPR compliant, ad-blocker proof.

5226.7k](/packages/simplestats-io-laravel-client)[harris21/laravel-fuse

Circuit breaker for Laravel queue jobs. Protect your workers from cascading failures.

24795.1k](/packages/harris21-laravel-fuse)

PHPackages © 2026

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