asmit/resized-column

Resizeable column for filament
115,003 53
Install
composer require asmit/resized-column
Latest Version:4.0.2
License:MIT
Last Updated:Aug 4, 2026
Links: GitHub  ·  Packagist
Maintainer: AsmitNepali

asmit/resized-column

Resizable, reorderable, and pinnable table columns for Filament. Users drag column edges to resize, drag headers to reorder, and pin columns to the left — every choice persisted per user in the session, the database, or both.

Latest Version Total Downloads Filament 3+ License

Features

  • Drag-to-resize — grab any column edge; widths persist per user
  • Drag-to-reorder->dragReorderableColumns() puts a grip on each header
  • Pinned columns->sticky() for developer defaults, ->stickableColumns() for a user-facing "Pin columns" panel with draft + Apply, plus click-the-pin to unpin from the header
  • Persistence — session by default, database opt-in; widths, order, and pins share one settings row per user
  • Works without a panel — the same trait drives tables in plain Livewire components
  • Filament-native styling — pinned cells match Filament's own table surfaces in light and dark, and stay opaque while scrolling
  • Customisable trigger — restyle the toolbar button via ->stickyManagerTriggerAction()

Requirements

  • Filament 3, 4, or 5

Installation

composer require asmit/resized-column
npm --prefix vendor/asmit/resized-column run build
php artisan filament:assets

When developing the package from source (path repo), run npm run build inside the package directory whenever you change resources/css/ or resources/js/, then php artisan filament:assets in the host app.

Register the plugin in your panel provider:

use Asmit\ResizedColumn\ResizedColumnPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugins([
            ResizedColumnPlugin::make()
                ->preserveOnDB(), // optional — database persistence
        ]);
}

Database persistence also needs the settings table:

php artisan vendor:publish --provider="Asmit\ResizedColumn\ResizedColumnServiceProvider" --tag=resized-column-migrations
php artisan migrate

Usage

Add the trait to any list page or Livewire component that renders a table:

use Asmit\ResizedColumn\HasResizableColumn;

class ListUsers extends ListRecords
{
    use HasResizableColumn;

    protected static string $resource = UserResource::class;
}

Opt into reordering and pinning per table:

public function table(Table $table): Table
{
    return $table
        ->columns([
            TextColumn::make('name')->sticky(), // pinned by default
            TextColumn::make('email'),
            TextColumn::make('created_at'),
        ])
        ->dragReorderableColumns()
        ->stickableColumns();
}

View Complete Documentation →

Credits

Contributing

Contributions are welcome. Please see CONTRIBUTING.md before opening an issue or pull request.

Security

If you discover a security issue, please e-mail asmitnepali99@gmail.com instead of opening a public issue. All reports are addressed promptly.

Changelog

Please see Releases for recent changes.

License

MIT License. See LICENSE.txt for details.

Related Packages

erirk/paypalpayment

laravel-paypalpayment is simple package help you process direct credit card paym...

0
gabrieloliverio/laravel5-generators

Database metadata-based generators for Laravel 5

1
doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

614,907,009 9,702
laravel/framework

The Laravel Framework.

558,184,770 34,846
laravel/tinker

Powerful REPL for the Laravel framework.

468,807,761 7,441