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

Blade Icons Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy on icon delivery. This is a commodity capability, not a differentiator. The package turns "inline the right SVG in the right Blade view" into a one-line component (<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.
  • Design-system and brand consistency. One source of truth for iconography across every Blade view. Designers change assets in 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.
  • Rebrand and theme-swap optionality. Because icon sets are configured, not hardcoded into templates, switching from Heroicons to Lucide (or adding a second set with a prefix) is a config change plus an asset swap — largely mechanical, low-regression. That materially shortens the engineering tail of a rebrand roadmap item and de-risks the choice of icon set being made early with incomplete information.
  • Roadmap sequencing for new surfaces. New marketing pages, admin screens, empty states, and onboarding flows need iconography on day one. Adopting this unblocks those surfaces without waiting on a shared component-library initiative.
  • Performance and accessibility budget decisions. Icons render as inline SVG using 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.
  • Licensing and procurement hygiene. MIT, no per-seat cost, no vendor contract, no attribution burden. Removes a line item from the buy-vs-license conversation and avoids the "who owns this asset library" question.
  • Team scaling and code review. Removes copy-pasted SVG blobs from pull requests. Reviewers evaluate <x-icon-* /> instead of 15 lines of path data, and new hires don't need to learn our bespoke SVG conventions.
  • Vendor/exit optionality. Icons live in our repo as files; there is no runtime dependency on a third-party service. If we abandon the package, the assets remain.

When to Consider This Package

Consider it when most of the following hold:

  • The product is a server-rendered Laravel application on Laravel 8+ / PHP 7.4+, with blade views as the primary rendering layer.
  • The team wants iconography without adding an npm/JS build-step dependency (relevant for shops with a thin or legacy asset pipeline, or where JS tooling is owned by a different team).
  • We expect to use more than a handful of icons, or expect the set to change over time.
  • We want the icon-set decision to be reversible — several sets, prefixed sets, and a default set can coexist.
  • We're willing to adopt an icon set package alongside this one (this is a base/loader package; it ships no icons itself — Heroicons, Lucide, Font Awesome, Tabler, Material Symbols, and ~90 others are separate community packages). That two-package dependency chain is the main thing to socialize before adoption.
  • We'll wire up the cache command (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:

  • The UI is SPA/Inertia/React/Vue-first and icons are consumed in JavaScript components; a JS icon library is the natural fit and this package adds a layer that's never exercised.
  • We need only a few icons. A 20-line internal Blade component wrapping an SVG directory gets ~80% of the benefit with zero dependency and zero supply-chain surface.
  • The requirement is actually a full component library (buttons, inputs, modals, forms). This package solves icons only; evaluate Flux, Filament, or a broader Blade UI Kit component set instead — and note that adopting a component library may make a standalone icon package redundant.
  • The organization standardizes on an icon font or an external sprite/CDN for cross-platform (native app + web) consistency. Reintroducing inline SVG would fragment that.
  • Single-maintainer risk on a critical path is unacceptable. This is a widely used package with tests, a changelog, and recent releases, but it is maintained by one person. If icons are load-bearing for a regulated or high-availability surface, pin the version and accept that we own the fallback (the assets are plain files, so the exit is cheap — frame it as a low-severity risk, not a blocker).
  • The dependency count is contractually capped or subject to security review that treats community icon-set packages as third-party code ingestion. That's a real consideration: each icon-set package pulls in a large number of SVG files.

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."

How to Pitch It (Stakeholders)

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.

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.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource