Packstub

Nitpick

Themes for Filament panels, and a way for every person to pick their own. Free and open source (MIT).

One Filament dashboard sweeping through the picker's themes, light and dark in turn: Aurora and Midnight (bundled), Kinetics, Abyss, Nord, Shadcn, Ocean and Noreviq

Two designed themes ship with the plugin, and a theme plugin from the Filament plugin directory, free or paid, joins them in the picker with one line:

use Noreviq\FilamentTheme\NoreviqThemePlugin;
use Packstub\Nitpick\Facades\Themes;
use Packstub\Nitpick\Theme;

// AppServiceProvider::boot()
Themes::register(
    Theme::make('noreviq')->plugin(fn () => NoreviqThemePlugin::make()),
);

Features

  • Two bundled themes: Aurora, glass with a floating dock sidebar, and Midnight, dark with violet accents.
  • Themes from the plugin directory: install a free or paid theme plugin and register it in one line; it joins the picker. Ready-made CSS and Vite-built themes alike.
  • A theme per panel: each panel picks its themes and default; the default can follow the workspace.
  • A theme per user: an Appearance page where each person picks their theme, previewed instantly.
  • Write your own: a theme is a class with a palette, plus a stylesheet for a full redesign; Theme::make() defines one inline.
  • Fits your brand: your colours and CSS on top of any theme.

Guides

Guide What it covers
Installation Requirements, the install command, publishing assets, registering the plugin
Themes The bundled themes, themes from the Filament plugin directory (a step-by-step example, Vite-built themes), offering themes per panel, the default and the tenant hook
User preferences The Appearance page, the ThemePicker field, storage, reading and writing a choice from code
Creating a theme The Theme contract, palettes, stylesheets, preferred mode, Theme::make() for a theme without a class file, themes from the Filament plugin directory, configuring the panel, shipping a theme as a package
For theme authors Writing a Filament theme plugin that works well in Nitpick: configuring the panel you are given, colours in register(), publishing assets, joining the picker on install
Configuration The fluent NitpickPlugin API, the config file, colour overrides, custom CSS and forced mode, events

At a glance

composer require "packstub/filament-nitpick:^1.0@beta"
php artisan nitpick:install
php artisan filament:assets
use Packstub\Nitpick\NitpickPlugin;

$panel->plugin(
    NitpickPlugin::make()
        ->default('aurora')
        ->picker(),
);

Requirements

PHP 8.3+, Laravel 12 or 13, Filament 5.


These pages are published at packstub.dev/docs/filament-nitpick from the package's docs/ directory. Spotted a mistake? Open a pull request.