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.
- ✅ 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.
Install the package via Composer:
composer require octopyid/filament-palette
Optionally, publish the configuration file:
artisan vendor:publish --tag=filament-palette
Add the plugin to your Filament panel configuration:
public function panel(Panel $panel): Panel
{
return $panel->plugin(
\Octopy\Filament\Palette\PaletteSwitcherPlugin::make()
);
}
Add the plugin's views to your tailwind.config.js
content: [
'./vendor/octopyid/filament-palette/resources/**/*.blade.php',
]
By default, the color palette is applied individually to each user, allowing them to freely choose their preferred colors.
To apply themes globally across all users:
public function panel(Panel $panel): Panel
{
return $panel->plugin(
\Octopy\Filament\Palette\PaletteSwitcherPlugin::make()->applyThemeGlobally(true)
);
}
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 === '[email protected]';
}),
);
}
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
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
],
];
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
],
If you discover any security-related issues, please email [email protected] instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.