Resized, Reorder and Sticky Column plugin screenshot
Dark mode ready
Multilingual support
Supports v5.x

Resized, Reorder and Sticky Column

Community

This plugin allows you to resize columns in Filament tables, enhancing the user experience by providing a more flexible and customizable interface.

Tags: Tables Panels Table Column
Supported versions:
5.x 4.x 3.x
Asmit Nepali avatar Author: Asmit Nepali

Package health

Beta

Automated checks of this plugin's Composer package

100 / 100
Security 100
Maintenance 100
Ecosystem 100
15 checks
  • Passed: GitHub Actions pinned to SHA
  • Skipped: GitLab CI includes pinned to SHA
  • Passed: Open security advisories
  • Passed: Dependabot PR responsiveness — No open Dependabot PRs.
  • Skipped: Renovate MR responsiveness
  • Passed: Dependabot or Renovate configured
  • Passed: Dependency update cooldown configured
  • Passed: Provides a security policy
  • Passed: Abandoned or archived — No consulted source marks the package abandoned (packagist, github).
  • Passed: Commit and release recency — Active: last commit 0 days ago; last release 1 days ago.
  • Passed: composer.lock not committed by library composer.lock is absent from the released dist archive.
  • Passed: Dist archive is lean
  • Passed: Current Laravel version supported — Package dependencies resolve together with current Laravel 13.0.
  • Passed: Current PHP version supported — No PHP constraint declared; package imposes no version restriction.
  • Skipped: Current Symfony version supported
Third-party plugin. This is built by the community, not the Filament team. Filament does not review, endorse, or vet the security of plugins outside the filament/ namespace. Review the source and install at your own risk. Found malware or an unresolved security issue the author won't address? Report it .
Powered by Plumb Last scanned 1 month ago

Documentation

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.

The author

Asmit Nepali avatar Author: Asmit Nepali

I’m a senior full-stack engineer with 5+ years of experience building production-grade applications with Laravel. I’m passionate about the Laravel and Filament ecosystem, creating developer tools and packages, and pushing Filament beyond its usual boundaries. I’m also the creator of several Filament plugins and SaaS products, focused on building practical tools that make developers’ lives easier.

Plugins
5
Stars
388

From the same author