A Filament v5 plugin that adds a table / list toggle to every table on the panel.
Table view stays the default (the current Filament table). List view switches to stacked rows, groups records A–Z, and keeps search, pagination, and row click (slide-over or full page).
Table view (default) — the normal Filament table, with the toggle in the toolbar:
List view — alphabetical groups, initials, title + subtitle. Click a row to view or edit:
Row click — same action as a table row (Users open a slide-over):
- PHP 8.2+
- Laravel 11, 12, or 13
- Filament 5.0+
The package is not on Packagist yet. Add the GitHub repository, then require it:
composer config repositories.spiggle-list-view vcs https://github.com/skillbobby/Spiggle-List-View.git
composer require spiggle/list-view:^1.0Register the plugin on your Filament panel:
use Spiggle\ListView\Filament\ListViewPlugin;
public function panel(Panel $panel): Panel
{
return $panel
->plugin(ListViewPlugin::make());
}It works alongside other panel plugins (for example a theme):
$panel
->plugin(MaterialThemePlugin::make())
->plugin(ListViewPlugin::make());Laravel auto-discovers the package service provider. After the Composer require, registering ListViewPlugin::make() on the panel is the only application setup: the toggle is added to every table toolbar, and styles are included with the plugin, so there is no asset publish step.
- A table / list control is injected at the end of every Filament table toolbar.
- Table is the default. The existing columns, filters, search, and pagination stay as they are.
- List rebuilds the current table as stacked rows:
- Title from
name,title,number, oremail, then the first visible text column - Subtitle from
email,description, orsubtitlewhen that is not the title, otherwise the next visible text column - Colored initials when the record has no
avatar,avatar_url, orimage - Groups by the first letter of the title (A–Z); titles that do not start with a letter are grouped under
#
- Title from
- The choice is stored in the session per Livewire table class, so each resource remembers its own mode.
- Clicking a list row uses the same
recordAction/recordUrlas the table (slide-over, modal, or full page).
No changes are required on individual resources. Any HasTable page gets the toggle.
If this package is useful, consider supporting development:
MIT


