codeat3/blade-vaadin-icons
Blade Vaadin Icons offers a lightweight Blade component for embedding Vaadin icons in Laravel apps. Install via Composer and render any icon by name with a simple tag, keeping markup clean and consistent across views, dashboards, buttons, and navigation.
<x-vaadin-icon-* /> Blade components built on blade-ui-kit/blade-icons. The PM decision it enables is concrete: do icons become a Composer-managed, versioned dependency, or stay as copy-pasted markup scattered across templates? For any Laravel app with server-rendered views, admin panels, or internal tools, this is a low-cost path to the former.codeat3/blade-*icons family, all exposing the same component API. Adopting one establishes the convention for layering additional icon sets later under a single interface — useful when scoping a "one icon vocabulary across products" initiative.Adopt when:
blade-ui-kit/blade-icons; this package composes with that ecosystem rather than inventing its own mechanism.Look elsewhere when:
Adoption notes: pin the version in composer.json, confirm ^1.7 lands in the lockfile, and verify the actual Laravel/PHP constraint rather than trusting changelog wording — an additive widening is a no-op, a dropped minor would make this a coordinated upgrade. Treat the package as a leaf dependency: trivially swappable, but only if you keep the fallback documented. Add a smoke test that asserts one component renders, because this class of failure is invisible to every observability tool you run.
To executives: This is a free, Composer-installed component that gives our Laravel application a complete, visually consistent icon set with no design spend, no licensing cost, and no new build infrastructure. It removes a recurring "who owns our icons" question and adds no headcount. Release 1.7.0 confirms the package tracks our framework roadmap by supporting Laravel 13, so it will not obstruct our upgrade path. Risk is low and reversible: it sits at the leaf of the dependency graph, the payload is static SVG markup we could vendor ourselves, and it can be replaced in an afternoon. The one thing to accept knowingly is that it is a single-maintainer community package — appropriate for a non-differentiating asset like icons, provided we pin the version and keep a documented exit.
To engineering: Blade-native components installed via Composer, built on blade-ui-kit/blade-icons. No npm, no asset pipeline impact, no service wiring, no migrations, no runtime state, no configuration drift. Laravel 13 compatibility lands in 1.7.0 with no API changes, so fold it into the framework upgrade epic as a checklist line rather than a workstream. Two things to settle before we commit: read the actual composer.json constraint diff to confirm 1.7.0 widens rather than drops supported versions, and watch for namespace collisions with any in-house <x-icon> convention. Recommend pinning the version, adding a render smoke test so a future bump fails loudly in CI instead of silently blanking icons in production, and standardizing on this component for all new server-rendered UI so we do not end up with a third parallel icon convention. The real gate is a design decision, not an engineering one: someone must own the mapping from product intent to icon name, or teams will improvise and we will get inconsistency regardless of which package we pick.
How can I help you explore Laravel packages today?