mallardduck/blade-lucide-icons
Laravel Blade package for Lucide icons. Provides easy-to-use Blade components to render Lucide SVGs in your views, with simple naming and props for size, stroke, and other attributes. Great for quickly adding consistent, customizable icons.
Pros:
<x-lucide-icon />) ensures seamless integration with templates, emails, and notifications. The new/modified icons are immediately available without breaking existing functionality.Cons:
composer require mallardduck/blade-lucide-icons). All new/modified icons are immediately available via <x-lucide-icon-name />.defaultClasses, defaultAttributes) remain unchanged.resources/views/vendor/blade-lucide-icons/new-icon.svg).blade-ui-kit/blade-icons (v1.8+), which remains stable and actively maintained.php artisan view:cache).<x-lucide-new-icon />) are used, especially if your application defines custom Blade components.aria-* attributes, viewBox, or other properties. Audit these for accessibility or integration issues (e.g., with screen readers).<x-lucide-alert-circle /> if updated).aria-label support, semantic structure)? Audit their usage in critical paths (e.g., form actions, notifications).aria-label or aria-hidden attributes? Update Blade templates accordingly (e.g., <x-lucide-new-icon aria-label="New message" />).php artisan vendor:publish --tag=blade-lucide-icons) and referenced in static assets.<x-lucide-new-icon /> paired with __('new.action')).lucide-alert-circle now uses a thicker stroke").<x-lucide-icon-name /> in any Blade template. Example:
<x-lucide-new-icon class="text-blue-500" />
<x-lucide-new-icon wire:click="increment" />).<InertiaLink><x-lucide-new-icon /></InertiaLink>).php artisan vendor:publish --tag=blade-lucide-icons for use in non-Blade contexts (e.g., <img src="{{ asset('vendor/blade-lucide-icons/new-icon.svg') }}">).composer require mallardduck/blade-lucide-icons --dev
<!-- Test new icons -->
<x-lucide-new-icon-1 />
<x-lucide-new-icon-2 />
<!-- Test modified icons (if critical) -->
<x-lucide-alert-circle /> <!-- Example; replace with actual modified icon names -->
php artisan vendor:publish --tag=blade-lucide-icons-config
config/blade-lucide-icons.php (unchanged):
'defaultClasses' => 'text-gray-500',
'defaultAttributes' => ['aria-hidden' => 'true'],
php artisan view:cache
php artisan vendor:publish --tag=blade-lucide-icons
Then reference in Blade:
<img src="{{ asset('vendor/blade-lucide-icons/new-icon.svg') }}" alt="New Icon">
How can I help you explore Laravel packages today?