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.

Maintainers

Package info

github.com/jeffersongoncalves/filament-sensible-defaults

pkg:composer/jeffersongoncalves/filament-sensible-defaults

Fund package maintenance!

jeffersongoncalves

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 0

1.0.2 2026-06-20 21:25 UTC

This package is auto-updated.

Last update: 2026-06-20 21:26:25 UTC


README

Filament Sensible Defaults

Filament Sensible Defaults

Latest Version on Packagist GitHub Code Style Action Status Tests Total Downloads License

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 Selectnative(false), auto searchable()/preload() for relationships, selectablePlaceholder() when not required
datetime_defaults DateTimePickerseconds(false) + maxDate('9999-12-31T23:59')
fileupload_defaults FileUploadmoveFiles()
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.