PHPackages                             fawaziwalewa/filament-icon-picker - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. fawaziwalewa/filament-icon-picker

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

fawaziwalewa/filament-icon-picker
=================================

A beautiful icon picker field for FilamentPHP v5 with support for Heroicons, Lucide and more

0.2.0(3mo ago)51.1k1MITPHPPHP ^8.2

Since Jan 25Pushed 3mo agoCompare

[ Source](https://github.com/fawaziwalewa/filament-icon-picker)[ Packagist](https://packagist.org/packages/fawaziwalewa/filament-icon-picker)[ RSS](/packages/fawaziwalewa-filament-icon-picker/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (18)Versions (3)Used By (0)

Filament Icon Picker
====================

[](#filament-icon-picker)

[![Latest Version on Packagist](https://camo.githubusercontent.com/2052c626f34b612000e7c17fef2b718788cd12f871bedab0cdb32056abe36299/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f666177617a6977616c6577612f66696c616d656e742d69636f6e2d7069636b65722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/fawaziwalewa/filament-icon-picker)[![Total Downloads](https://camo.githubusercontent.com/e2ef65fac3925802091c5a50b26dcc5ed27f1947f793a4b5f22bc7583942edfa/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f666177617a6977616c6577612f66696c616d656e742d69636f6e2d7069636b65722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/fawaziwalewa/filament-icon-picker)[![License](https://camo.githubusercontent.com/3e0786a6306730990528da71b76cd245788e0e28f5032e08e137e04ba178f39d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f666177617a6977616c6577612f66696c616d656e742d69636f6e2d7069636b65722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/fawaziwalewa/filament-icon-picker)

Sponsored by [Tasklemon](https://tasklemon.com/).

A beautiful, searchable icon picker field for FilamentPHP v5, built with Livewire and Alpine.js. Select from multiple icon sets including Heroicons, Lucide, and more.

 [![Filament Icon Picker](docs/Filament%20Icon%20Picker.png)](docs/Filament%20Icon%20Picker.png)

 [![Icon Picker Preview](docs/preview.png)](docs/preview.png)

Features
--------

[](#features)

- 🎨 **Beautiful UI** - Clean, modern interface that matches Filament's design
- 🔍 **Searchable** - Quickly find icons with real-time search
- 📦 **Multiple Icon Sets** - Support for Heroicons, Lucide, Font Awesome, Bootstrap Icons, and more
- ⚡ **Fast** - Built with Alpine.js for instant interactions
- 🎯 **Native Filament Integration** - Uses Filament's icon rendering system
- 🌙 **Dark Mode** - Full dark mode support
- ⚙️ **Configurable** - Customize sets, columns, search, and more
- 🧪 **Production Ready** - Clean, tested, maintainable code

Requirements
------------

[](#requirements)

- PHP 8.2+
- Laravel 12+
- FilamentPHP v5.0+
- Blade Icons (blade-ui-kit/blade-icons)

Installation
------------

[](#installation)

Install the package via Composer:

```
composer require fawaziwalewa/filament-icon-picker
```

Optional (recommended):

```
php artisan vendor:publish --tag="filament-icon-picker-config"
```

Optional (only if you want to override the UI):

```
php artisan vendor:publish --tag="filament-icon-picker-views"
```

Configuration
-------------

[](#configuration)

The configuration file (`config/filament-icon-picker.php`) controls:

- which icon sets are available and enabled
- default selected sets (`sets`)
- default grid columns (`columns`)
- default search toggle (`searchable`)
- placeholder text (`placeholder`)
- caching and endpoint behavior

Heroicons, Lucide, Font Awesome, and Bootstrap Icons are bundled as Composer dependencies of this package.

Usage
-----

[](#usage)

```
use FawazIwalewa\FilamentIconPicker\Forms\Components\IconPicker;

IconPicker::make('icon')
    ->label('Icon')
    ->required();
```

### Sets

[](#sets)

Sets are referenced by their config keys (from `filament-icon-picker.icon_sets`):

```
IconPicker::make('icon')
    ->sets(['heroicons', 'lucide', 'bootstrap']);
```

### Grid + search

[](#grid--search)

```
IconPicker::make('icon')
    ->gridColumns(8)
    ->searchable(true)
    ->placeholder('Pick an icon');
```

Prefix icon behavior (important)
--------------------------------

[](#prefix-icon-behavior-important)

The selected icon is always shown as the field prefix icon using Filament's input wrapper styling.

- Do not call `->prefixIcon(...)` on this field.
- `IconPicker::prefixIcon()` is intentionally not supported and will throw.

Rendering icons
---------------

[](#rendering-icons)

The selected value is stored as a string (e.g. `heroicon-o-user`, `lucide-alarm-clock`, `bi-alarm`, `fas-user`).

### In Filament

[](#in-filament)

```
use Filament\Tables\Columns\TextColumn;

TextColumn::make('name')
    ->icon(fn ($record) => $record->icon);
```

### In Blade

[](#in-blade)

```
@php
    $html = rescue(fn () => svg($record->icon, 'h-6 w-6')->toHtml(), '');
@endphp

@if (filled($html))
    {!! $html !!}
@endif
```

### Normalizing legacy Font Awesome values

[](#normalizing-legacy-font-awesome-values)

If you have existing database values saved as `fa-solid-*` / `fa-regular-*` / `fa-brands-*`, normalize them to `fas-*` / `far-*` / `fab-*` when reading/writing:

```
use FawazIwalewa\FilamentIconPicker\Services\IconService;
use Illuminate\Database\Eloquent\Casts\Attribute;

protected function icon(): Attribute
{
    return Attribute::make(
        get: fn (?string $value): ?string => IconService::normalizeIconName($value),
        set: fn (?string $value): ?string => IconService::normalizeIconName($value),
    );
}
```

How it works
------------

[](#how-it-works)

- The dropdown UI is Alpine.js.
- Icons are fetched lazily from a paginated JSON endpoint.
- The endpoint is protected by `web` + `auth` middleware and throttled.

Artisan commands
----------------

[](#artisan-commands)

```
php artisan filament-icon-picker:list
```

Filter by set key:

```
php artisan filament-icon-picker:list --set=heroicons
```

Search:

```
php artisan filament-icon-picker:list --search=user
```

Export:

```
php artisan filament-icon-picker:list --json > icons.json
```

Testing
-------

[](#testing)

```
php artisan test
```

Changelog
---------

[](#changelog)

See [CHANGELOG](CHANGELOG.md).

Contributing
------------

[](#contributing)

See [CONTRIBUTING](CONTRIBUTING.md).

Security
--------

[](#security)

See [SECURITY](SECURITY.md).

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE) for more information.

###  Health Score

40

—

FairBetter than 86% of packages

Maintenance82

Actively maintained with recent releases

Popularity25

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~69 days

Total

2

Last Release

91d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/0cdcf5968e5dacf7f11f9ed6ac517303c102b9cb99ad82ddcf573b213fde776b?d=identicon)[fawaziwalewa](/maintainers/fawaziwalewa)

---

Top Contributors

[![fawaziwalewa](https://avatars.githubusercontent.com/u/56141195?v=4)](https://github.com/fawaziwalewa "fawaziwalewa (4 commits)")

---

Tags

laravelHeroiconslivewirefilamentfilament-pluginicon-pickerlucide

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/fawaziwalewa-filament-icon-picker/health.svg)

```
[![Health](https://phpackages.com/badges/fawaziwalewa-filament-icon-picker/health.svg)](https://phpackages.com/packages/fawaziwalewa-filament-icon-picker)
```

###  Alternatives

[bezhansalleh/filament-google-analytics

Google Analytics integration for FilamentPHP

211189.7k8](/packages/bezhansalleh-filament-google-analytics)[wallacemartinss/filament-icon-picker

A beautiful icon picker component for Filament v5 using blade-ui-kit/blade-icons

4723.9k35](/packages/wallacemartinss-filament-icon-picker)[a2insights/filament-saas

Filament Saas for A2Insights

171.7k](/packages/a2insights-filament-saas)[businesstilto/commentable

An extensive and very customizable package that adds commenting in Filament v4.5 and newer.

165.0k](/packages/businesstilto-commentable)[technikermathe/blade-lucide-icons

A package to easily make use of Lucide icons in your Laravel Blade views.

18421.4k11](/packages/technikermathe-blade-lucide-icons)[ublabs/blade-simple-icons

A package to easily make use of Simple Icons in your Laravel Blade views.

1963.4k](/packages/ublabs-blade-simple-icons)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
