PHPackages                             jeffersongoncalves/filament-panel-theme-isolation - 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. jeffersongoncalves/filament-panel-theme-isolation

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

jeffersongoncalves/filament-panel-theme-isolation
=================================================

Isolates dark/light theme preference per Filament panel using prefixed localStorage keys

v3.0.0(3mo ago)20MITBladePHP ^8.2

Since Mar 29Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/jeffersongoncalves/filament-panel-theme-isolation)[ Packagist](https://packagist.org/packages/jeffersongoncalves/filament-panel-theme-isolation)[ RSS](/packages/jeffersongoncalves-filament-panel-theme-isolation/feed)WikiDiscussions 3.x Synced 3w ago

READMEChangelog (3)Dependencies (7)Versions (6)Used By (0)

[![Filament Panel Theme Isolation](https://raw.githubusercontent.com/jeffersongoncalves/filament-panel-theme-isolation/3.x/art/jeffersongoncalves-filament-panel-theme-isolation.png)](https://raw.githubusercontent.com/jeffersongoncalves/filament-panel-theme-isolation/3.x/art/jeffersongoncalves-filament-panel-theme-isolation.png)

Filament Panel Theme Isolation
==============================

[](#filament-panel-theme-isolation)

[![Latest Version on Packagist](https://camo.githubusercontent.com/fe2703736d583fef2b2bd5294d1efcf8814a298c6d75c9a34e915e5b3381c683/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6a6566666572736f6e676f6e63616c7665732f66696c616d656e742d70616e656c2d7468656d652d69736f6c6174696f6e2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/jeffersongoncalves/filament-panel-theme-isolation)[![Total Downloads](https://camo.githubusercontent.com/ef13215bc38433106ad971fcd0fd09374f1bb1da60a340d9f04664cc0d9bd354/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6a6566666572736f6e676f6e63616c7665732f66696c616d656e742d70616e656c2d7468656d652d69736f6c6174696f6e2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/jeffersongoncalves/filament-panel-theme-isolation)[![License](https://camo.githubusercontent.com/e7dba2ce32933bb76bcce562e43662db9afb3dab541254238c3f95c71b6c38e6/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6a6566666572736f6e676f6e63616c7665732f66696c616d656e742d70616e656c2d7468656d652d69736f6c6174696f6e2e7376673f7374796c653d666c61742d737175617265)](LICENSE.md)

Isolates dark/light theme preference per Filament panel using prefixed localStorage keys.

When a Filament application has multiple panels (e.g., `admin`, `app`, `tenant`), they all share the same `theme` key in `localStorage`. Switching dark/light mode in one panel affects all others. This plugin fixes that by using panel-specific keys like `theme-admin`, `theme-app`, etc.

Based on [filamentphp/filament#19417](https://github.com/filamentphp/filament/pull/19417).

Compatibility
-------------

[](#compatibility)

Plugin VersionFilamentPHPLaravel1.x^3.0^8.1^10.02.x^4.0^8.2^11.03.x^5.0^8.2^11.28Installation
------------

[](#installation)

You can install the package via composer:

```
composer require jeffersongoncalves/filament-panel-theme-isolation:"^3.0"
```

That's it! The plugin works automatically via Laravel auto-discovery. No additional configuration is needed.

### Optional: Register as a Filament Plugin

[](#optional-register-as-a-filament-plugin)

If you prefer explicit registration via the plugin API:

```
use JeffersonGoncalves\FilamentPanelThemeIsolation\FilamentPanelThemeIsolationPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->id('admin')
        ->plugin(FilamentPanelThemeIsolationPlugin::make());
}
```

How It Works
------------

[](#how-it-works)

1. Each panel saves its theme preference to a unique localStorage key: `theme-{panelId}` (e.g., `theme-admin`, `theme-app`).
2. On first load after installing, the existing generic `theme` key is automatically migrated to the panel-specific key.
3. If the panel-specific key doesn't exist, it falls back to the generic `theme` key for backwards compatibility.
4. No database or session changes required — everything is localStorage.

Publishing
----------

[](#publishing)

### Config

[](#config)

```
php artisan vendor:publish --tag=filament-panel-theme-isolation-config
```

### Views

[](#views)

```
php artisan vendor:publish --tag=filament-panel-theme-isolation-views
```

Maintenance Notes
-----------------

[](#maintenance-notes)

The overridden views are copies of Filament's original views with minimal patches.

After updating Filament, compare the original views with the overrides:

```
diff vendor/filament/filament/packages/panels/resources/views/components/layout/base.blade.php \
     vendor/jeffersongoncalves/filament-panel-theme-isolation/resources/views/components/layout/base.blade.php
```

License
-------

[](#license)

MIT License. See [LICENSE](LICENSE) for details.

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance85

Actively maintained with recent releases

Popularity3

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity50

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

Every ~5 days

Total

6

Last Release

64d ago

Major Versions

v2.0.0 → v3.0.02026-03-29

1.x-dev → 2.x-dev2026-04-26

2.x-dev → 3.x-dev2026-04-26

PHP version history (2 changes)v2.0.0PHP ^8.2

1.0.0PHP ^8.1

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/411493?v=4)[Jefferson Gonçalves](/maintainers/jeffersongoncalves)[@jeffersongoncalves](https://github.com/jeffersongoncalves)

---

Top Contributors

[![jeffersongoncalves](https://avatars.githubusercontent.com/u/411493?v=4)](https://github.com/jeffersongoncalves "jeffersongoncalves (17 commits)")

---

Tags

dark-modefilamentfilament-pluginlaravelpanel-customizationphpthemelaravelthemefilamentfilament-plugindark-modemulti-panel

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/jeffersongoncalves-filament-panel-theme-isolation/health.svg)

```
[![Health](https://phpackages.com/badges/jeffersongoncalves-filament-panel-theme-isolation/health.svg)](https://phpackages.com/packages/jeffersongoncalves-filament-panel-theme-isolation)
```

###  Alternatives

[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3913.7k](/packages/rawilk-profile-filament-plugin)[wsmallnews/filament-nestedset

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

206.5k14](/packages/wsmallnews-filament-nestedset)[bezhansalleh/filament-google-analytics

Google Analytics integration for FilamentPHP

209175.5k8](/packages/bezhansalleh-filament-google-analytics)[dotswan/filament-map-picker

Easily pick and retrieve geo-coordinates using a map-based interface in your Filament applications.

128173.7k3](/packages/dotswan-filament-map-picker)[jibaymcs/filament-tour

Bring the power of DriverJs to your Filament panels and start a tour !

12451.0k](/packages/jibaymcs-filament-tour)[aymanalhattami/filament-context-menu

context menu (right click menu) for filament

10039.0k](/packages/aymanalhattami-filament-context-menu)

PHPackages © 2026

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