codeat3/blade-pepicons
Blade Pepicons brings the Pepicons icon set to Laravel Blade as simple, reusable components. Drop icons into your views with a clean tag syntax, customize size and class, and keep markup readable. No manual SVGs or icon juggling required.
<x-icon> partial plus a curated SVG folder: roughly a day of engineering, then indefinite ownership of sizing, color inheritance, ARIA attributes, and naming conventions. This package trades that ownership for a pinned version constraint and a thin adapter. If your team has already built that partial three times across three projects, the buy side is obvious.currentColor hover states. Wrong call for a JS-rendered SPA or a Tailwind-only frontend with no Blade output — there, use the npm package directly and don't route icons through PHP.blade-icons adapter pattern so changing icon sets later becomes a config and mapping-table change rather than a template sweep. This package is a low-cost way to prove that pattern before committing to a larger, more opinionated set.Adopt when:
blade-icons (Heroicons, Tabler, etc.), making the marginal cost one Composer line and a provider registration.Look elsewhere when:
Default recommendation: approve for internal and experimental UI immediately; gate customer-facing brand surfaces behind design sign-off on the icon style, not on the package. The 1.7.0 compatibility release has earned it another review cycle.
Executives (30 seconds). "A free, MIT-licensed add-on that lets our Laravel app render a polished icon set with one line of code. It removes a small but constant design-and-engineering tax, costs nothing, adds no build step or JavaScript bundle, and is trivially reversible — worst case we copy the SVGs into our repo and drop the dependency. The maintainer just shipped support for the next Laravel major, so it won't hold up our upgrade path. Low blast radius: no data, no auth, no third-party calls at runtime."
Engineering. "composer require, provider auto-registers, then <x-pepicon-name /> in Blade. Inline SVG, inherits currentColor, cacheable, no JS, attributes merge onto the root <svg> so Tailwind and ARIA work as normal. 1.7.0 is a pure compatibility patch for Laravel 13 — no intentional API changes, so the upgrade is a version bump. It rides on blade-icons, so changing icon sets later is a mapping table, not a rewrite. Two things to verify in our own CI rather than take on faith: the exact blade-icons/Laravel/PHP constraints at 1.7.0, and that icons resolve correctly on the Laravel 13 matrix. Wrap it once behind a semantic <x-icon name="..." /> with an allowlist and a fallback, pin the exact version, and snapshot the SVGs we actually use into resources/svg/ as an exit hatch."
Design. "Pepicons' rounded style fits our tone, especially in empty states and onboarding. Server-rendered SVG means icons inherit text color and scale cleanly — no font files, no sprite maintenance, no icon-picker debates in code review. We wrap it once behind a semantic <x-icon name="..." /> so future design changes are a mapping-table update, not a template sweep. Please sign off on the icon style for customer-facing surfaces; the package choice itself is reversible."
How can I help you explore Laravel packages today?