zeeshantariq/filament-sticky-columns
Add sticky (frozen) columns to Filament tables (v3–v5). Pin one or more columns left or right with automatic offsets, dark-mode friendly styling, and scroll shadows. Use the StickyColumn drop-in or call ->sticky() on any column.
->sticky()) and a drop-in StickyColumn class, avoiding deep modifications to core Filament logic. This aligns well with Laravel/PHP’s composable design patterns..fi-ta-table-wrapper). Risk of breakage if Filament’s HTML structure changes (e.g., v6+).filament:assets (legacy systems).window.FilamentStickyColumns.refresh() API for SPAs or AJAX-driven tables (e.g., real-time updates).z-index: 10 (configurable). Conflicts possible if other Filament plugins (e.g., tooltips, modals) use overlapping values..fi-ta-table-wrapper). Filament v4+ introduced .fi-ta-content-ctn.fi-fixed-positioning-context, which the package now supports, but edge cases may exist (e.g., custom table layouts).offsetWidth in JavaScript, which is lightweight but could introduce minor layout thrashing if tables are highly dynamic (e.g., columns added/removed via JS).->sticky() macro?livewire:update) beyond the default hooks? If so, window.FilamentStickyColumns.refresh() may need manual triggering.commit/navigated events for reactivity. No server-side logic changes needed.filament:assets pipeline works but may require manual filament:assets runs post-update.composer require zeeshantariq/filament-sticky-columns
php artisan vendor:publish --tag="filament-sticky-columns-config"
resources/css/filament/admin/theme.css:
@import "../../../../vendor/zeeshantariq/filament-sticky-columns/resources/css/filament-sticky-columns.css";
resources/js/filament/app.js):
import '../../../../vendor/zeeshantariq/filament-sticky-columns/resources/js/filament-sticky-columns.js';
npm run dev or npm run build.php artisan filament:assets to publish JS/CSS.php artisan cache:clear.TextColumn with StickyColumn:
StickyColumn::make('id')->right()->badge();
->sticky() to any column:
TextColumn::make('status')->stickyRight();
StickyColumn::make('name')->sticky(offset: 80);
z-index values. Test with:
filament-spatie-laravel-medialibrary).background: 'auto' may need adjustment.->sticky() calls.php artisan filament:assets if Vite integration fails.filament:assets post-update:
"post-update": "php artisan filament:assets"
config/filament-sticky-columns.php) reduces risk of hardcoded values.data-sticky="left/right" attributes exist on <th>/<td> (not nested divs).!important overrides).->sticky(offset: X) or manual CSS adjustments.background config if Filament’s surface colors don’t match.How can I help you explore Laravel packages today?