Download the PHP package wezlo/filament-grid-list without Composer

On this page you can find all versions of the php package wezlo/filament-grid-list. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package filament-grid-list

Filament Grid List

Replace any Filament resource's default list table with a responsive card/grid layout. Define how each record card looks using structured sections, a closure, or a custom Blade view — while keeping all of Filament's search, filters, sorting, pagination, bulk actions, and record actions working out of the box.

No need to rewrite your resource. The same table() definition powers both the grid and the standard table.

Requirements

Features

Installation

Optionally register the plugin in your Panel Provider for global defaults:

Optionally publish the config:

Theme Source (Tailwind v4)

The package's Blade views use Tailwind utility classes. For Tailwind to detect them during your app's build, add the package's views as a @source in your Filament custom theme CSS file (usually resources/css/filament/admin/theme.css):

If you don't have a custom theme yet, create one:

Then rebuild assets:

Without this step, some Tailwind utilities used in the grid view may be missing from the compiled CSS.

Quick Start

Add the HasGridList trait to your resource's ListRecords page and implement the gridList() method:

That's it. The list page now renders as a card grid. Your existing table() definition continues to power filters, search, actions, and pagination.

Card Rendering Modes

Mode 1: Structured Sections

Build cards from discrete sections. Each receives the Eloquent record and returns a string or HtmlString. All sections are optional — use any combination.

Section Closure Signature Description
image(Closure) fn (Model $record): ?string Hero image URL at the top of the card
header(Closure) fn (Model $record): ?string Card title text
badges(Closure) fn (Model $record): array Array of badge definitions (see below)
content(Closure) fn (Model $record): string\|HtmlString\|null Card body text or HTML
footer(Closure) fn (Model $record): ?string Bottom section (price, date, metadata)

Badge Format

Badges can be either arrays or renderable Blade components:

Available badge colors: primary, secondary, success, danger, warning, info, gray.

Mode 2: Closure-based

Return raw HTML for full control over the card body:

Mode 3: Custom Blade View

Point to your own Blade view for maximum flexibility:

The view receives three variables:

Variable Type Description
$record Model The Eloquent record
$recordKey string The record's primary key
$recordUrl ?string URL the card links to (null if no link)

Rendering Priority

When multiple modes are configured, the first match wins:

  1. cardView() (custom Blade view)
  2. describeUsing() (closure)
  3. Structured sections (header(), content(), etc.)
  4. Fallback: displays the record's title via getTableRecordTitle()

Configuration Reference

Grid Layout

Breakpoint keys follow Tailwind: default, sm, md, lg, xl, 2xl. The value is the number of columns at that breakpoint.

Pagination

Set pagination on the grid config (overrides the table's defaults):

Or configure it on your table() method as usual — the grid respects it:

All Filament pagination modes (Default, Simple, Cursor) work.

Note: The 'all' page option is excluded from defaults to prevent page hangs on large datasets. Cards use content-visibility: auto for offscreen rendering optimization, but loading thousands of DOM nodes can still be slow. If you need it, opt in explicitly: ->recordsPerPageOptions([12, 24, 48, 'all']).

Bulk Selection

Enabled by default when the table has bulk actions. Disable per-page with:

Record Click URL

By default, cards link to the view/edit page using the resource's existing record URL logic (same as clicking a table row). Override per-page with:

Plugin Configuration

Register the plugin in your Panel Provider to set defaults for all grid list pages in that panel:

Method Type Default Description
gridColumns(array) array<string, int> ['default' => 1, 'sm' => 2, 'md' => 3, 'lg' => 4] Responsive grid columns
gap(int) int 4 Tailwind spacing unit for card gap
recordsPerPage(int) int 12 Default records per page
recordsPerPageOptions(array) array<int\|string> [12, 24, 48, 96] Per-page dropdown options

Configuration Cascade

Each setting resolves through a three-level cascade:

  1. Page-level — values set in gridList() on the ListRecords page (highest priority)
  2. Plugin-level — values set on FilamentGridListPlugin in the Panel Provider
  3. Config file — values in config/filament-grid-list.php (lowest priority)

Page-level always wins. If not set, falls through to plugin, then config.

Default Config File

Full Example

The resource's table() method stays unchanged — columns, filters, search, actions, and bulk actions all carry over to the grid view automatically.

How It Works

Performance

CSS Classes

All card elements use fi-grid-list-* prefixed classes for targeted styling:

Class Element
fi-grid-list Root container
fi-grid-list-content Grid container
fi-grid-list-card Individual card
fi-grid-list-card-clickable Card with a link
fi-grid-list-card-checkbox Selection checkbox wrapper
fi-grid-list-card-body Card content wrapper
fi-grid-list-card-image Image container
fi-grid-list-card-img Image element
fi-grid-list-card-content Text content area
fi-grid-list-card-title Header/title text
fi-grid-list-card-badges Badges container
fi-grid-list-card-description Content/description text
fi-grid-list-card-footer Footer area
fi-grid-list-card-actions Record actions bar

Override any of these in your theme CSS to customize the card appearance.

License

MIT


All versions of filament-grid-list with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
filament/filament Version ^4.0 || ^5.0
spatie/laravel-package-tools Version ^1.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package wezlo/filament-grid-list contains the following files

Loading the files please wait ...