Palette Switcher
CommunityEasily switch and customize the UI color palette for your FilamentPHP
Author:
Supian M
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
- Failed: Dependabot or Renovate configured — No dependency updater configuration found. View details on Plumb
- 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).
- Warning: Commit and release recency — Low activity: last commit 184 days ago; last release 257 days ago.
-
Failed:
composer.lock not committed by library
—
composer.lockis present in the released dist archive. View details on Plumb - 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.2supports 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
A FilamentPHP plugin that allows users to easily switch and customize the UI color palette in their Filament admin panels. This plugin provides a seamless way to change themes, either per user or globally across the application.
#✨ Features
- ✅ User-specific themes – Each user can choose their preferred color palette.
- 🌐 Global theme support – Apply a single theme for all users.
- 🧠 Conditional visibility – Show or hide the palette switcher based on custom logic.
- 🎨 Custom color palettes – Define your own color schemes or modify existing ones.
- 🌈 Pre-built palettes – Includes 9 beautiful ready-to-use palettes.
- ⚡ Easy integration – Simple installation with minimal configuration.
- 🔧 Flexible customization – Full control over theme application and visibility.
#🚀 Installation
Install the package via Composer:
composer require octopyid/filament-palette
Filament v3 (Tailwind v3) — add plugin views to tailwind.config.js:
content: [
'./vendor/octopyid/filament-palette/resources/**/*.blade.php',
]
Filament v4 (Tailwind v4) — declare sources in your panel theme CSS (paths are relative to this CSS file):
@source '../../../../vendor/octopyid/filament-palette/resources';
Optionally, publish the configuration file:
php artisan vendor:publish --tag=filament-palette
#⚙️ Usage
#Basic Setup
Add the plugin to your Filament panel configuration:
public function panel(Panel $panel): Panel
{
return $panel->plugin(
\Octopy\Filament\Palette\PaletteSwitcherPlugin::make()
);
}
By default, the color palette is applied individually to each user, allowing them to freely choose their preferred colors.
#Global Theme Application;
To apply themes globally across all users:
public function panel(Panel $panel): Panel
{
return $panel->plugin(
\Octopy\Filament\Palette\PaletteSwitcherPlugin::make()->applyThemeGlobally(true)
);
}
#Conditional Visibility
Hide the palette switcher programmatically based on custom conditions:
public function panel(Panel $panel): Panel
{
return $panel->plugin(
\Octopy\Filament\Palette\PaletteSwitcherPlugin::make()->hidden(function () {
return auth()->user()->email === 'foo@bar.baz';
}),
);
}
#🎨 Customization
#Available Color Palettes
The plugin includes 9 pre-configured palettes:
- Slate – Professional gray-blue theme
- Stone – Warm neutral theme
- Red – Bold red theme
- Amber – Warm orange theme
- Emerald – Fresh green theme
- Teal – Cool blue-green theme
- Sky – Bright blue theme
- Violet – Rich purple theme
- Fuchsia – Vibrant pink theme
#Custom Color Palettes
You can tailor your palettes by editing the configuration file located at config/filament-palette.php. This file gives you full control to define new color schemes or modify
existing ones using various methods.
<?php
use Filament\Support\Colors\Color;
return [
'default' => env('FILAMENT_PALETTE_DEFAULT', 'slate'),
'palette' => [
// Custom palette example using Filament's pre-defined colors
'custom' => [
'primary' => Color::Orange,
'warning' => Color::Amber,
'danger' => Color::Red,
'success' => Color::Green,
'info' => Color::Blue,
],
// Custom palette example using HEX codes
'brand' => [
'primary' => [
50 => '#eff6ff',
100 => '#dbeafe',
// ... add all shades from 50 to 950 for comprehensive styling
900 => '#1e3a8a',
950 => '#1e40af',
],
'warning' => Color::Yellow,
'danger' => Color::Red,
'success' => Color::Emerald,
'info' => Color::Sky,
],
// Define a custom primary color directly from a HEX value
'my-hex-theme' => [
'primary' => Color::hex('#ff0000'), // This will generate shades based on the given hex code
'warning' => Color::Yellow,
'danger' => Color::Red,
'success' => Color::Green,
'info' => Color::Blue,
],
// Define a custom primary color directly from an RGB value
'my-rgb-theme' => [
'primary' => Color::rgb('rgb(0, 128, 0)'), // Example using an RGB string
'warning' => Color::Amber,
'danger' => Color::Red,
'success' => Color::Green,
'info' => Color::Blue,
],
// ... other pre-built palettes
],
];
#Removing Unwanted Palettes
Limit the available palettes by removing entries from the palette array:
'palette' => [
'slate' => [
'primary' => Color::Slate,
'warning' => Color::Amber,
'danger' => Color::Red,
'success' => Color::Emerald,
'info' => Color::Sky,
],
'emerald' => [
'primary' => Color::Emerald,
'warning' => Color::Yellow,
'danger' => Color::Red,
'success' => Color::Emerald,
'info' => Color::Sky,
],
// Only these two palettes will be available
],
#🔐 Security
If you discover any security-related issues, please email bug@octopy.dev instead of using the issue tracker.
#🙏 Credits
#📄 License
The MIT License (MIT). Please see License File for more information.
The author
A curious engineer who keeps learning, contributing, and building reliable systems that turn ideas into reality.
From the same author
Featured Plugins
A selection of plugins curated by the Filament team
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
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
Custom Fields
Eliminate custom field migrations forever. Let your users create and manage form fields directly in Filament admin panels with 20+ built-in field types, validation, and zero database changes.
Relaticle