Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Filament Cards Laravel Package

harvirsidhu/filament-cards

Filament Cards turns any Filament page into a card-based navigation hub for settings hubs, cluster front pages, and resource dashboards. It auto-discovers authorized pages, supports grouping and layout, and feels native to Filament.

View on GitHub
Deep Wiki
Context7
v1.1.0

Several features this package documents never actually worked. The view built its Tailwind classes by string interpolation, and Tailwind only sees literal strings when it scans a Blade file — so those utilities were never generated. Layout and colour now go through Filament's own primitives, whose classes ship compiled in Filament's CSS.

Upgrading

No code changes needed, but rebuild your CSS (npm run build) and check three things:

  • Layouts may shift. columns(['md' => 2, 'xl' => 4]) and columnSpan() rendered as a single column before and now work.
  • Cards may disappear. canAccess() is now enforced on every card, not only auto-discovered ones. Add ->checkAccess(false) to keep one visible regardless.
  • Ungrouped cards moved above the groups, matching how Filament orders ungrouped navigation items.

If you published pages/cards-page.blade.php, re-publish it — the view is now split into components/group.blade.php and components/card.blade.php.

Fixed

  • Responsive columns() / columnSpan() / columnSpanFull() now render. Layout is delegated to Filament's grid() and gridColumn() attribute macros. columnStart() is supported, and every breakpoint works — previously only default and lg were even read out of a span array.
  • discoverResourceCards() works. It was gated behind is_a(static::class, Filament\Resources\Pages\Page::class), which no CardsPage subclass can satisfy — that class is a sibling of Filament\Pages\Page, not an ancestor. The guard was always false, so the documented resource hub rendered blank.
  • addCards() no longer leaks between pages. $appendedCards was a plain static on the abstract base, which PHP shares with every subclass that doesn't redeclare it.
  • Coloured icons are no longer permanently tinted in dark mode, and any registered panel colour works — previously only six hardcoded names did.
  • Cards for a resource's sub-pages show their own label, not the parent resource's.
  • Enum navigation groups are labelled by getLabel() / case name rather than backing value, matching Filament's sidebar.
  • A card with no page and no URL is no longer a dead # link.
  • Package translations are registered — the lang files shipped but were never loaded.

Added

  • Panel-wide defaults: FilamentCardsPlugin::make()->columns(4)->searchable()->persistCollapsed(). Resolution order is page property → plugin default → package default, so existing pages are unaffected.
  • Card actions: CardItem::actions([Action::make('sync')->action(...)]).
  • canAccess() filtering on every card, with ->checkAccess(false) to opt out.
  • CardGroup::persistCollapsed(), contained() and id().
  • Overridable config getters (getCardsColumns(), isCardsSearchable(), …) for runtime values.
  • Empty states for a page with no cards and a search with no matches.
  • Accent-insensitive search that also matches group labels and announces its result count.

Changed

  • Group headings are <h2> and card titles <h3>; a collapsible group's toggle is a real keyboard-reachable <button> with aria-expanded.
  • Badges and descriptions resolve lazily — cluster discovery previously ran a count query per component on every page load, visible or not.
  • PHPStan raised to level 6 with an empty baseline; CI added; the unused JS/CSS build pipeline removed.

Full changelog: https://github.com/harvirsidhu/filament-cards/blob/1.x/CHANGELOG.md

v1.0.9

Fixed

  • Card groups now render in the same order Filament uses for the sidebar — by each group's lowest $navigationSort. Previously group order followed component discovery order (effectively filesystem order), so a cluster's front page could contradict its own navigation.
  • Ungrouped cards now render above all groups instead of inline between them, where a lone card appeared to belong to the preceding group heading.

Changed

  • Backfilled CHANGELOG.md for 1.0.1 through 1.0.8, which had sat at the skeleton's placeholder entry since the initial release.

Full Changelog: https://github.com/harvirsidhu/filament-cards/compare/v1.0.8...v1.0.9

v1.0.8
v1.0.6

Update

  • Modify external link

Full Changelog: https://github.com/harvirsidhu/filament-cards/compare/v1.0.4...v1.0.5

v1.0.5

Update

  • Modify external link

Full Changelog: https://github.com/harvirsidhu/filament-cards/compare/v1.0.4...v1.0.5

v1.0.4

Added Feature

  • Added External Link

Full Changelog: https://github.com/harvirsidhu/filament-cards/compare/v1.0.3...v1.0.4

v1.0.3

Added Feature

  • Added Card Badge

Full Changelog: https://github.com/harvirsidhu/filament-cards/compare/v1.0.2...v1.0.3

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
steadrun/laravel-monitor
labyrinthe/connect-laravel
elmogy/layan
drewdan/sentinel-client
dskripchenko/laravel-llm
fatryst/nuonuo
stevenay/myanfont
gmostafa/php-graphql-client
xeviant/paystack
snowsoft/faker
meditationsteps/blogetc
animalyoung/laravel-influxdb
onix-solutions/sms-telera
lonely-lights/prosetta
oxygen/data
oxygen/core
jengo/base
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin