tonegabes/filament-phosphor-icons
A Phosphor icon set for Filament 4 and 5 applications, exposed as a convenient enum for actions, forms, toggles, and columns. Includes weight presets, forceWeight(), and helper methods for dynamic runtime styling. Install via Composer: tonegabes/filament-phosphor-icons.
IconColumn status indicators, badges, toggles, empty states, notifications. One composer require converts "Phosphor everywhere" from a style-guide wish into a reviewable rule. Log it as a consistency play, not an architecture commitment.Phosphor::StarBold), a spec can say "use Phosphor::Palette for the theme picker" and engineering implements exactly that — no SVG exports, no asset pipeline, no "which of these three star icons is correct" round trip. This is the highest-leverage, lowest-cost thing the package buys, and it's a process win more than a technical one.Weight enum with forceWeight() and fluent shorthands (->bold(), ->fill(), ->duotone(), ->thin()) let you write down rules — primary action = bold, secondary = regular, active/selected = fill, decorative = duotone — that survive review instead of dissolving into case-by-case overrides. Budget about an hour of design agreement; that is the real cost of this capability.StarFill / Star); boolean and enum status columns; notification and empty-state visuals; onboarding and empty-first-run flows; multi-tenant dashboards where tenant-branded shells must still share identical iconography underneath.php artisan phosphor:sync (--dry-run, --enum-path) regenerates the enum from upstream, so new Phosphor icons are not gated on the maintainer cutting a release. This materially changes the maintenance calculus and is why adopting a 5-star, single-maintainer package is defensible here in a way it usually isn't: the catalogue is generated data you can refresh on your own schedule, not logic you depend on.aria-label, and that an icon is never the sole carrier of meaning in a status column. Cheap to decide now, expensive to retrofit across a shipped admin.Adopt if:
app/Enums/Icon.php anyway, this is a free upgrade.Look elsewhere if:
For executives (30 seconds): "A small, free, MIT-licensed library that gets our admin screens onto one consistent, modern icon set instead of a patchwork of framework defaults and one-offs. The upside is modest but real: less design churn, fewer visual inconsistencies in tools customers actually look at, no licence cost, no new infrastructure, no security surface. The honest caveat is that it's a tiny community package with a single maintainer, so I'd treat it as a low-stakes tactical choice with a trivial exit — worst case we copy a few hundred generated lines of icon names into our own repo. This is not a strategic bet and I wouldn't spend committee time on it."
For engineering: "It's a thin, pure-PHP enum mapping Phosphor icon names into Filament's existing icon() API. No meaningful service-provider behaviour, no middleware, no published assets, no JS, no database. What you get: compile-time-safe icon references (Phosphor::StarBold), a Weight enum with forceWeight() and per-weight shorthands, Blade usage via @svg / svg() / <x-icon>, and php artisan phosphor:sync (--dry-run, --enum-path) to regenerate the catalogue when Phosphor ships new icons — so we're never blocked on upstream releases. Integration is a composer require plus import swaps. Risks: single maintainer, thin test surface, 0 dependents, and coupling to Filament's icon contract across majors. Mitigation: pin the version, add one smoke test over our icon call sites, and accept that if it's abandoned we vendor the enum — it's generated data, not logic. Budget a day for a pilot page and two or three more for rollout; the work is almost entirely mechanical."
How can I help you explore Laravel packages today?