codeat3/blade-unicons
A Laravel Blade component package that makes it easy to use Unicons icons directly in your Blade views with simple, expressive tags—no manual SVG copying required. Lightweight, clean syntax, and perfect for quickly adding crisp, scalable icons to any Laravel app.
resources/ and hand-maintaining partials. This package makes "buy" a one-file, reversible experiment — a cheap way to test whether a dependency-managed icon system suits the team before standardizing on one across the product.currentColor, dark mode, RTL, and decorative-icon accessibility (aria-hidden) become nearly free once icons are Blade components rather than <i class="fa-..."> tags. This is a prerequisite within a design-system effort, never an epic of its own.Adopt when all of these hold:
composer require, no npm build, no icon-font subsetting, no CDN, no asset publishing.<x-icon name="..." /> component. That one hour of work is the entire abandonment mitigation and should be a precondition of adoption, not a follow-up task.Look elsewhere when:
blade-ui-kit/blade-icons is the de facto abstraction; register Unicons as a custom set there and get the same icons with real downstream scrutiny.blade-icons setup. A second icon set just grows vendor weight and shared-dependency surface to reason about.For executives (30 seconds): This is a free, lightweight add-on that lets our Laravel application display a professional icon set with no JavaScript, no web fonts, and no design-tool subscription. Cost is zero and integration is hours, not weeks. The trade-off is that it is a small open-source project maintained by one person with almost no adoption, so my recommendation is to pilot it in an internal or low-risk surface and standardize only if the design language sticks. The exit is cheap: icons are static assets, and because we will route every view through our own one-file wrapper component, swapping providers later is a single-file change, not a rewrite.
For engineering (the substance):
currentColor, so dark mode and theming work with existing Tailwind/CSS variables for free. Style variants (line/solid/monochrome/thinline) ship flattened, so verify variant naming against vendor/codeat3/blade-unicons/resources/svg/ rather than the marketing site — the filename is the component name.<x-icon name="..." /> component so no view references the vendor component directly. If the package dies, we rewrite one file and vendor the SVGs.'delete' => 'trash-alt') keeps a project vocabulary in front of vendor names, so an upstream rename is a one-file diff and we have an enumerated list of icons we actually use.blade-icons constraints in composer.json (v1 vs v2 matters — a future conflict at the worst possible moment is the realistic failure), pin exactly (1.10.*), and add a cheap test that every aliased icon renders an <svg>. That test turns the most likely failure mode — a silent upstream rename — into a red build.php artisan icons:cache belongs in the Dockerfile after composer install, not in a boot script on a read-only filesystem; re-run it whenever composer update changes the icon inventory, or new icons 404 silently. Do not point <x-icon> at email templates — Gmail and Outlook strip inline SVG.aria-hidden="true" in the wrapper and require an explicit label prop to opt out, so the accessible choice is the default one.How can I help you explore Laravel packages today?