PHPackages                             welkervinicius/nova-fa-icon - 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. welkervinicius/nova-fa-icon

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

welkervinicius/nova-fa-icon
===========================

An advanced field for Laravel Nova to select Font Awesome icons, with server-side search, pagination, and localization support.

v1.1.0(7mo ago)0304↓50%MITPHPPHP ^8.1

Since Oct 2Pushed 7mo agoCompare

[ Source](https://github.com/welkervinicius/nova-fa-icon)[ Packagist](https://packagist.org/packages/welkervinicius/nova-fa-icon)[ RSS](/packages/welkervinicius-nova-fa-icon/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (3)Dependencies (3)Versions (4)Used By (0)

Font Awesome Icon Picker Field for Laravel Nova
===============================================

[](#font-awesome-icon-picker-field-for-laravel-nova)

[![Latest Version on Packagist](https://camo.githubusercontent.com/8699c1a68fe4b9b6c9c5cdd1de43891cc4ebac760ca671417b7ed20c5c9945e8/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f77656c6b657276696e69636975732f6e6f76612d66612d69636f6e2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/welkervinicius/nova-fa-icon)[![Total Downloads](https://camo.githubusercontent.com/57d92277889c97a90ce4eee98340e00f1731d9963dca9f8b3a6720cef936f945/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f77656c6b657276696e69636975732f6e6f76612d66612d69636f6e2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/welkervinicius/nova-fa-icon)[![License](https://camo.githubusercontent.com/8c2aa5940966f91029b21daa7ac0ba220691aa7128d9a261e14c58642d114c28/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f77656c6b657276696e69636975732f6e6f76612d66612d69636f6e2e7376673f7374796c653d666c61742d737175617265)](https://github.com/welkervinicius/nova-fa-icon/blob/main/LICENSE.md)

An advanced and performant field for Laravel Nova that allows you to search and select Font Awesome icons.
Built with a modern architecture, it ensures a fast and fluid user experience, even with thousands of icons.

[![Nova FA Icon Picker Screenshot](https://raw.githubusercontent.com/welkervinicius/nova-fa-icon/main/docs/select-screenshot.png)](https://raw.githubusercontent.com/welkervinicius/nova-fa-icon/main/docs/select-screenshot.png)

### Features

[](#features)

- **Server-Side Search:** The search is performed on the backend, including each icon's search terms (e.g., searching for "logout" finds the "right-from-bracket" icon), ensuring maximum performance.
- **Infinite Scroll:** Icons are loaded on-demand as the user scrolls, making the picker's opening instantaneous.
- **Configurable:** Allows publishing a configuration file to use your own `icons.json` (ideal for Pro versions) and to define the globally available icon styles.
- **Flexible:** Allows filtering icon styles (`solid`, `brands`, etc.) on a per-field basis directly in your Resource.
- **Localized:** The field respects the locale selected in the Nova panel and includes translations for English and Brazilian Portuguese out of the box.

---

### Installation

[](#installation)

You can install the package via Composer:

```
composer require welkervinicius/nova-fa-icon
```

---

### Initial Setup

[](#initial-setup)

For the icons to be displayed, you need to load the Font Awesome stylesheet.
The easiest way is via CDN.

In your `app/Providers/NovaServiceProvider.php`, inside the `boot()` method, add the following `Nova::style()` line after the `parent::boot();` call:

```
public function boot()
{
    parent::boot();

    Nova::style('font-awesome', 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/7.0.1/css/all.min.css');
}
```

---

### Optional Configuration

[](#optional-configuration)

You can publish the configuration file to customize the `icons.json` path and the default styles.

```
php artisan vendor:publish --tag="nova-fa-icon-config"
```

You can also publish the translation files to add new languages or customize the text.

```
php artisan vendor:publish --tag="nova-fa-icon-lang"
```

---

### ⚙️ Customizing the Icons Source (for Font Awesome Pro or Custom Builds)

[](#️-customizing-the-icons-source-for-font-awesome-pro-or-custom-builds)

Starting from **v1.0.1**, the configuration file now uses `base_path()` instead of `__DIR__`, ensuring that the published config file points to your application's root instead of the package directory.

If you’re using a **Pro** version of Font Awesome, or your own icon build, you should:

1. **Publish the configuration file** (if not already done):

    ```
    php artisan vendor:publish --tag="nova-fa-icon-config"
    ```
2. **Edit the `config/nova-fa-icon.php` file**, and update the path to your own `icons.json`.
    For example, Font Awesome Pro typically stores this file at:

    ```
    'icon_file' => base_path('node_modules/@fortawesome/fontawesome-pro/metadata/icons.json'),
    ```

    Or, if you have a custom JSON file elsewhere:

    ```
    'icon_file' => base_path('resources/icons/custom-icons.json'),
    ```
3. The package will automatically load icons from the JSON path defined here.

This approach ensures full compatibility with any Font Awesome package (Free, Pro, or custom) while avoiding path resolution issues after publishing the configuration.

---

### Localization

[](#localization)

From v1.1.0, translations are fully namespaced and loaded via the Laravel package system. Supported languages:

- English `(en)`
- Portuguese (Brazil) `(pt_BR)`
- Spanish `(es)`
- Italian `(it)`
- Russian `(ru)`

Laravel Nova automatically selects the correct translation based on your panel locale.

---

### Usage

[](#usage)

#### Basic Usage

[](#basic-usage)

In your Nova Resource, simply add the `NovaFaIcon` field.

```
use Welkervinicius\NovaFaIcon\NovaFaIcon;

public function fields(Request $request)
{
    return [
        // ...
        NovaFaIcon::make('Icon'),
    ];
}
```

#### Filtering by Styles

[](#filtering-by-styles)

You can restrict the available icon styles for a specific field using the `styles()` method.

```
NovaFaIcon::make('Brand Icon', 'brand_icon')
    ->styles(['brands']), // This will only show icons of the "brands" style.

NovaFaIcon::make('Action Icon', 'action_icon')
    ->styles(['solid', 'regular']), // This will only show solid and regular icons.
```

#### Using an Alias

[](#using-an-alias)

For cleaner code, you can use an alias in your import statement.

```
use Welkervinicius\NovaFaIcon\NovaFaIcon as FaIcon;

// ...
FaIcon::make('Icon')->styles(['solid']),
```

---

Changelog
---------

[](#changelog)

Please see [CHANGELOG.md](CHANGELOG.md) for more information on what has changed recently.

---

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

[](#contributing)

Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details.

---

License
-------

[](#license)

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

###  Health Score

36

—

LowBetter than 82% of packages

Maintenance65

Regular maintenance activity

Popularity17

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 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 ~3 days

Total

3

Last Release

215d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/17cfca6a0793a6c51449e1df75adebd749c49f3213b9d234a3131a86dd555197?d=identicon)[welkervinicius](/maintainers/welkervinicius)

---

Top Contributors

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

---

Tags

laravelfieldiconpickerFontAwesomenova

### Embed Badge

![Health badge](/badges/welkervinicius-nova-fa-icon/health.svg)

```
[![Health](https://phpackages.com/badges/welkervinicius-nova-fa-icon/health.svg)](https://phpackages.com/packages/welkervinicius-nova-fa-icon)
```

###  Alternatives

[timothyasp/nova-color-field

A Laravel Nova Color Picker field.

781.6M5](/packages/timothyasp-nova-color-field)[simplesquid/nova-enum-field

A Laravel Nova field to add enums to resources.

52391.9k2](/packages/simplesquid-nova-enum-field)[inspheric/nova-defaultable

Default values for Nova fields when creating resources and running resource actions.

51174.8k1](/packages/inspheric-nova-defaultable)[optimistdigital/nova-notes-field

This Laravel Nova package adds a notes field to Nova's arsenal of fields.

52139.5k](/packages/optimistdigital-nova-notes-field)[outl1ne/nova-color-field

A Laravel Nova Color Picker field.

26249.4k](/packages/outl1ne-nova-color-field)[wemersonrv/input-mask

A Laravel Nova custom field text with masks on input

1196.4k](/packages/wemersonrv-input-mask)

PHPackages © 2026

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