blade-ui-kit/blade-icons
Blade Icons lets you drop SVG icons into Laravel Blade views with a simple component or directive, like or @svg('camera', 'w-6 h-6'). It's a lightweight base package with many third-party icon set packages available.
<x-icon-camera class="w-6 h-6" />) or directive (@svg('camera', 'w-6 h-6')). Estimated integration effort is well under a day for a small team versus a multi-day internal build plus permanent upkeep — a clear "buy" unless we have an unusual rendering constraint.resources/svg; engineering changes nothing. This directly reduces the "three different arrow icons in the same product" class of quality bug that shows up in design reviews and QA.currentColor, so there is no icon font, no extra network request, and no flash of unstyled/missing glyphs. That is a defensible answer to "why not an icon font or a CDN sprite?" in a perf or a11y review, and it keeps icons themable via Tailwind classes without extra CSS.<x-icon-* /> instead of 15 lines of path data, and new hires don't need to learn our bespoke SVG conventions.Consider it when most of the following hold:
php artisan icons:cache) as part of deployment so path lookups aren't resolved per request.Look elsewhere — or don't add a dependency — when:
Note on the metadata: the recorded dependents: 0 should not be read as "unused." This is a library consumed inside applications rather than depended on by other packages, and it carries ~2.5k stars plus substantial Composer download volume. Treat the signal as "healthy, mature, niche-critical," not "abandoned."
For executives — one paragraph, decision-ready: We need a consistent icon system across our Laravel UI. This package is the standard, MIT-licensed way to do that in the Laravel ecosystem: it lets engineers reference any icon as a single Blade component, keeps all icon assets in our own repository, and makes changing icon sets a configuration change rather than a template rewrite. It costs nothing to license, has no vendor service attached, and is estimated at under a day to integrate versus several days to build and maintain in-house. It also reduces the engineering tail on any future rebrand and removes a recurring source of visual inconsistency in the product. Recommendation: adopt on new surfaces now, backfill existing views opportunistically.
For engineering — the honest version: Add blade-ui-kit/blade-icons, publish the config, point the default set at resources/svg, and add one icon-set package (Heroicons or Lucide are the low-friction defaults). Views use <x-icon-name class="..." /> or @svg('name', 'classes'); icons inherit currentColor so Tailwind sizing and color just work. Add php artisan icons:cache to the deploy pipeline so path resolution isn't per-request. Config supports multiple sets with prefixes, so we are not locked into one library. Cost: one Composer dependency plus one icon-set package. Risks: single maintainer (pin the version; the assets are inert files, so exit cost is near zero) and a large number of SVG files landing in the repo from the icon-set package (worth a note in the PR for reviewers). It's a thin, well-tested wrapper, not a framework — there is no meaningful architectural commitment here.
What I would not claim: that this improves performance versus an alternative we haven't benchmarked, or that it replaces a design-system initiative. It solves icon delivery. The design-system conversation — naming, sizing scales, a11y conventions for decorative versus meaningful icons — still needs an owner; this package just gives that owner a clean mechanism to enforce the output.
How can I help you explore Laravel packages today?