AgentSkillsCN

lucide-laravel

为 Laravel Blade 模板集成 Lucide 图标库。适用于在 Laravel 应用程序中使用 Lucide 图标、为 Blade 组件添加 x-lucide- 前缀、使用 Tailwind CSS 对图标进行样式化、在 Blade 中动态渲染图标,或在任何需要 SVG 图标的 Laravel 视图工作中使用。关键词包括 Lucide 图标、Blade 图标、x-lucide、SVG 图标 Laravel、blade-lucide-icons、mallardduck/blade-lucide-icons。

SKILL.md
--- frontmatter
name: lucide-laravel
description: Lucide icon library integration for Laravel Blade templates. Use when working with Lucide icons in Laravel applications, Blade components with the x-lucide- prefix, icon styling with Tailwind CSS, dynamic icon rendering in Blade, or any Laravel view work requiring SVG icons. Keywords include lucide icons, blade icons, x-lucide, SVG icons Laravel, blade-lucide-icons, mallardduck/blade-lucide-icons.

Lucide Laravel

Laravel Blade integration for the Lucide icon library - 1,666+ beautiful, consistent SVG icons.

Installation

bash
composer require mallardduck/blade-lucide-icons

Clear view cache if icons don't appear:

bash
php artisan view:clear

Quick Start

Basic Usage

Icons use the x-lucide- prefix with kebab-case naming:

blade
<x-lucide-activity />
<x-lucide-heart />
<x-lucide-shopping-cart />
<x-lucide-circle-check />

Naming Convention

Convert PascalCase icon names to kebab-case:

Icon NameBlade Component
Activity<x-lucide-activity />
ShoppingCart<x-lucide-shopping-cart />
CircleCheck<x-lucide-circle-check />
ArrowRight<x-lucide-arrow-right />

Styling

Tailwind CSS

blade
<!-- Size and color -->
<x-lucide-album class="w-6 h-6 text-gray-500"/>

<!-- Responsive sizing -->
<x-lucide-heart class="w-4 h-4 md:w-6 md:h-6 text-red-500"/>

<!-- Hover effects -->
<x-lucide-star class="w-5 h-5 text-yellow-400 hover:text-yellow-500 cursor-pointer"/>

<!-- Transitions -->
<x-lucide-bell class="w-6 h-6 text-gray-700 hover:text-gray-900 transition-colors duration-200"/>

Inline Styles

blade
<x-lucide-anchor style="color: #555"/>
<x-lucide-heart style="color: #ff0000; width: 48px; height: 48px;"/>
<x-lucide-activity style="color: var(--primary-color); stroke-width: 1.5;"/>

Common Patterns

Navigation Menus

blade
<nav>
    <div class="flex items-center gap-6">
        <a href="/dashboard" class="flex items-center gap-2">
            <x-lucide-layout-dashboard class="w-5 h-5"/>
            <span>Dashboard</span>
        </a>
        <a href="/products" class="flex items-center gap-2">
            <x-lucide-package class="w-5 h-5"/>
            <span>Products</span>
        </a>
        <a href="/settings" class="flex items-center gap-2">
            <x-lucide-settings class="w-5 h-5"/>
            <span>Settings</span>
        </a>
    </div>
</nav>

Form Inputs

blade
<div class="relative">
    <div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none">
        <x-lucide-search class="w-5 h-5 text-gray-400"/>
    </div>
    <input type="text" class="pl-10 w-full border rounded-lg" placeholder="Search..."/>
</div>

Alerts

blade
<!-- Success -->
<div class="flex items-start gap-3 p-4 bg-green-50 border-l-4 border-green-500 rounded">
    <x-lucide-check-circle class="w-6 h-6 text-green-600 flex-shrink-0"/>
    <div>
        <h4 class="font-semibold text-green-800">Success!</h4>
        <p class="text-green-700">Your changes have been saved.</p>
    </div>
</div>

<!-- Error -->
<div class="flex items-start gap-3 p-4 bg-red-50 border-l-4 border-red-500 rounded">
    <x-lucide-alert-circle class="w-6 h-6 text-red-600 flex-shrink-0"/>
    <div>
        <h4 class="font-semibold text-red-800">Error</h4>
        <p class="text-red-700">Something went wrong.</p>
    </div>
</div>

<!-- Info -->
<div class="flex items-start gap-3 p-4 bg-blue-50 border-l-4 border-blue-500 rounded">
    <x-lucide-info class="w-6 h-6 text-blue-600 flex-shrink-0"/>
    <p class="text-blue-700">Please review your changes before submitting.</p>
</div>

Action Buttons

blade
<!-- Icon-only button with aria-label -->
<button class="p-2 hover:bg-gray-100 rounded" aria-label="Delete">
    <x-lucide-trash class="w-5 h-5 text-red-600"/>
</button>

<!-- Button with icon and text -->
<button class="flex items-center gap-2 bg-blue-600 text-white px-4 py-2 rounded-lg hover:bg-blue-700">
    <x-lucide-save class="w-5 h-5"/>
    <span>Save</span>
</button>

<!-- Primary action -->
<button class="flex items-center gap-2 bg-green-600 text-white px-4 py-2 rounded-lg">
    <x-lucide-plus class="w-5 h-5"/>
    <span>Add New</span>
</button>

With Livewire

blade
<!-- Loading states -->
<button wire:click="refresh" class="flex items-center gap-2 px-4 py-2 bg-blue-600 text-white rounded-lg">
    <x-lucide-refresh-cw class="w-5 h-5" wire:loading.class="animate-spin"/>
    <span wire:loading.remove>Refresh Data</span>
    <span wire:loading>Loading...</span>
</button>

<!-- Toggle icon based on state -->
<div class="flex items-center gap-2">
    @if($isFavorited)
        <x-lucide-heart class="w-5 h-5 text-red-500 fill-current" wire:click="unfavorite"/>
    @else
        <x-lucide-heart class="w-5 h-5 text-gray-400" wire:click="favorite"/>
    @endif
</div>

Dynamic Icons

Use <x-dynamic-component> for dynamic icon names:

blade
@php
    $iconName = 'heart';
    $iconComponent = 'lucide-' . $iconName;
@endphp

<x-dynamic-component :component="$iconComponent" class="w-6 h-6" />

Common use case - icon from database:

blade
<x-dynamic-component
    :component="'lucide-' . $menu->icon"
    class="w-5 h-5"
/>

Best Practices

Consistent Sizing

ContextSize
Navigationw-5 h-5
Button (small)w-4 h-4
Button (medium)w-5 h-5
Feature iconsw-12 h-12
Hero iconsw-16 h-16

Semantic Icon Usage

Choose icons that clearly represent their action:

blade
<x-lucide-trash />        <!-- Delete -->
<x-lucide-edit />         <!-- Edit -->
<x-lucide-download />     <!-- Download -->
<x-lucide-upload />       <!-- Upload -->
<x-lucide-copy />         <!-- Copy -->
<x-lucide-share />        <!-- Share -->
<x-lucide-settings />     <!-- Settings -->
<x-lucide-user />         <!-- User/Profile -->
<x-lucide-home />         <!-- Home -->

Color Semantics

blade
<!-- Primary actions -->
<x-lucide-save class="w-5 h-5 text-blue-600"/>

<!-- Success states -->
<x-lucide-check class="w-5 h-5 text-green-600"/>
<x-lucide-check-circle class="w-5 h-5 text-green-600"/>

<!-- Danger/warning -->
<x-lucide-trash class="w-5 h-5 text-red-600"/>
<x-lucide-alert-triangle class="w-5 h-5 text-yellow-600"/>

<!-- Neutral/secondary -->
<x-lucide-info class="w-5 h-5 text-gray-600"/>

Accessibility

blade
<!-- Icon-only button - always include aria-label -->
<button aria-label="Close dialog">
    <x-lucide-x class="w-6 h-6"/>
</button>

<!-- Decorative icon - hide from screen readers -->
<x-lucide-star class="w-5 h-5" aria-hidden="true"/>

<!-- Icon with visible text - accessible by default -->
<button class="flex items-center gap-2">
    <x-lucide-download class="w-5 h-5"/>
    <span>Download</span>
</button>

Icon Reference

Total Icons: 1,666 across 43 categories

Quick Reference

CategoryCountFileCommon Icons
Accessibility30accessibility.mdaccessibility, eye, ear, glasses, sun, moon
Accounts & access133accounts-access.mduser, users, shield, key, lock, log-in, log-out
Animals23animals.mddog, cat, bird, bug, fish, paw-print
Arrows209arrows.mdarrow-up, arrow-down, chevron-left, chevron-right
Brands21brands.mdgithub, twitter, facebook, instagram, youtube
Buildings25buildings.mdbuilding, building-2, home, warehouse, store
Charts31charts.mdbar-chart, line-chart, pie-chart, trending-up, trending-down
Coding & development243coding-development.mdcode, terminal, git-branch, git-commit, bug, cpu
Communication54communication.mdmail, message-circle, phone, send, bell, rss
Connectivity90connectivity.mdwifi, bluetooth, usb, cast, radio, signal
Cursors33cursors.mdmouse-pointer, hand, move, crosshair, pointer
Design145design.mdpalette, paintbrush, eraser, pen-tool, selection
Devices164devices.mdlaptop, monitor, smartphone, tablet, keyboard, hard-drive
Emoji28emoji.mdsmile, frown, meh, heart, thumbs-up, thumbs-down
File icons162file-icons.mdfile, file-text, folder, upload, download, copy
Finance56finance.mddollar-sign, credit-card, wallet, banknote, coins, piggy-bank
Food & beverage69food-beverage.mdcoffee, utensils, pizza, burger, beer, cake
Gaming148gaming.mdgamepad, gamepad-2, trophy, dice, puzzle, sword
Home57home.mdcouch, chair, bed, lamp, tv, bathtub
Layout139layout.mdlayout, panel-left, panel-right, columns, sidebar, grid
Mail26mail.mdmail, inbox, send, at-sign, mail-open, mail-check
Mathematics74mathematics.mdequal, plus, minus, divide, percent, infinity
Medical42medical.mdheart-pulse, activity, pill, syringe, stethoscope, bone
Multimedia138multimedia.mdplay, pause, volume, music, image, video
Nature23nature.mdtree, flower, leaf, sun, cloud, mountain
Navigation, Maps, POIs84navigation-maps-pois.mdmap, map-pin, compass, navigation, route, flag
Notification39notification.mdbell, bell-ring, alert-circle, alert-triangle, info
People3people.mduser, users, user-plus
Photography75photography.mdcamera, image, aperture, shutter, lens, film
Science32science.mdflask, microscope, atom, beaker, magnet, dna
Seasons5seasons.mdsun, cloud-rain, snowflake, thermometer
Security55security.mdshield, lock, unlock, key, fingerprint, eye-off
Shapes48shapes.mdcircle, square, triangle, star, hexagon, diamond
Shopping27shopping.mdshopping-cart, shopping-bag, credit-card, tag, package
Social119social.mdheart, thumbs-up, share, bookmark, user-plus, link
Sports13sports.mdfootball, basketball, tennis, golf, trophy, medal
Sustainability24sustainability.mdrecycle, leaf, tree, sun, wind, droplet
Text formatting246text-formatting.mdbold, italic, underline, align-left, list, quote
Time & calendar58time-calendar.mdcalendar, clock, timer, hourglass, watch, alarm
Tools66tools.mdhammer, wrench, screwdriver, saw, drill, measure
Transportation64transportation.mdcar, bus, train, plane, bike, ship
Travel67travel.mdsuitcase, plane, hotel, map, compass, passport
Weather45weather.mdsun, cloud, cloud-rain, snowflake, lightning, wind

Finding Icons

  1. Browse by category: Read the category reference files for complete icon lists
  2. Search visually: Visit lucide.dev/icons
  3. Use autocomplete: IDEs with Blade autocomplete can suggest available icons

Category File Format

Each category file contains:

  • Icon count and description
  • Complete table of icons with Blade component syntax
  • Related categories for each icon
  • Usage examples specific to that category

Troubleshooting

Icons not displaying:

bash
php artisan view:clear

Styling not applied:

  • Ensure Tailwind processes Blade files
  • Check icon names use kebab-case

Publish raw SVGs (optional):

bash
php artisan vendor:publish --tag=blade-lucide-icons --force