jeffersongoncalves / filament-sensible-defaults
A Filament plugin that applies a curated set of sensible, opinionated UI defaults across your panels (actions, forms, selects, date-time pickers, tables, pages and display formats) with config-driven, per-block opt-outs.
Package info
github.com/jeffersongoncalves/filament-sensible-defaults
pkg:composer/jeffersongoncalves/filament-sensible-defaults
Fund package maintenance!
Requires
- php: ^8.3
- filament/filament: ^5.3
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.21
- orchestra/testbench: ^9.0|^10.0|^11.0
- pestphp/pest: ^3.7.4|^4.0
- pestphp/pest-plugin-laravel: ^3.0|^4.0
This package is auto-updated.
Last update: 2026-06-20 21:26:25 UTC
README
Filament Sensible Defaults
A Filament plugin that applies a curated set of sensible, opinionated UI defaults across your panels — actions, forms, selects, date-time pickers, tables, pages and display formats — so every Resource, Page and Widget inherits consistent behaviour without repeating configuration. Every block is config-driven and can be opted out of individually.
Compatibility
| Branch | Filament | PHP | Laravel |
|---|---|---|---|
| 1.x | 5.x | ^8.3 | ^12.0 | ^13.0 |
Installation
You can install the package via composer:
composer require jeffersongoncalves/filament-sensible-defaults
Optionally publish the config file:
php artisan vendor:publish --tag=filament-sensible-defaults-config
Usage
By default the plugin auto-registers and applies every enabled block of defaults globally — no panel wiring required. Just install it and your panels inherit the defaults.
If you prefer explicit, per-panel control, set auto_register to false in config/sensible-defaults.php and register the plugin on your PanelProvider:
use JeffersonGoncalves\Filament\SensibleDefaults\FilamentSensibleDefaultsPlugin; public function panel(Panel $panel): Panel { return $panel ->plugin( FilamentSensibleDefaultsPlugin::make() ->selectDefaults(false) // opt a block out fluently ->datetimeDefaults() // or keep one explicitly on ); }
What it sets
| Block | Default behaviour |
|---|---|
translate_labels |
translateLabel() on every Field, Infolist Entry and Table Column |
action_defaults |
Action modalWidth(Medium) + closeModalByClickingAway(false); Create/Edit/Delete/View Heroicons + hiddenLabel(); ActionGroup ellipsis icon |
select_defaults |
Select → native(false), auto searchable()/preload() for relationships, selectablePlaceholder() when not required |
datetime_defaults |
DateTimePicker → seconds(false) + maxDate('9999-12-31T23:59') |
fileupload_defaults |
FileUpload → moveFiles() |
repeater_defaults |
Repeater / Builder delete actions require confirmation |
form_defaults |
ToggleButtons inline + grouped, TextInput minValue(0), Textarea rows(4) |
page_defaults |
Validation errors rendered as a danger Notification; non-sticky form actions |
table_defaults |
filtersFormWidth('md'), pagination options [5, 10, 25, 50], lazy-loaded image columns, non-native select filters |
format_defaults |
Schema & Table currency / date / datetime / time display formats (see formats in the config) |
Configuration
Each block is a boolean toggle and the display formats are fully customisable in config/sensible-defaults.php:
return [ 'auto_register' => true, 'translate_labels' => true, 'action_defaults' => true, 'select_defaults' => true, 'datetime_defaults' => true, 'fileupload_defaults' => true, 'repeater_defaults' => true, 'form_defaults' => true, 'page_defaults' => true, 'table_defaults' => true, 'format_defaults' => true, 'formats' => [ 'currency' => 'brl', 'date_display_format' => 'M j, Y', 'iso_date_display_format' => 'L', 'datetime_display_format' => 'M j, Y H:i:s', 'iso_datetime_display_format' => 'LLL', 'number_locale' => null, 'time_display_format' => 'H:i:s', 'iso_time_display_format' => 'LT', ], ];
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.
