Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Flux Fontawesome Icons Laravel Package

mike-bronner/flux-fontawesome-icons

Integrates FontAwesome icons with Flux UI, letting you use FontAwesome glyphs anywhere Flux icons are supported, such as flux:icon components. Install, register the icon set, and reference icons by name in your Laravel Blade views without extra markup or manual SVG handling.

View on GitHub
Deep Wiki
Context7

Getting Started

This is the initial 0.1.0 release, so treat it as early-stage: the API surface is small but not yet frozen.

  1. Install the package

    composer require mikebronner/flux-fontawesome-icons
    

    This package sits on top of Flux UI and Livewire, so you need a Laravel app with Flux already installed and working (<flux:icon name="..." /> rendering Heroicons). If Flux isn't rendering icons yet, fix that first — this package only swaps/augments the icon source.

  2. Look here first

    • The package README on GitHub (mike-bronner/flux-fontawesome-icons) — for a 0.1.0 release this is the authoritative source, there's no long-tail of blog posts yet.
    • The service provider and any config/flux-fontawesome-icons.php it ships — this tells you how icon sets are registered and how names are resolved.
    • Your composer.json constraints for livewire/flux — compatibility is the most likely source of trouble on a brand-new package.
  3. Publish config / assets (if the install command offers it)

    php artisan vendor:publish --tag=flux-fontawesome-icons-config
    

    Check php artisan vendor:publish output for the exact tags this package registers.

  4. First use case: a drop-in icon swap in an existing view. Take a view that already uses Flux icons and point one at a Font Awesome glyph:

    {{-- before --}}
    <flux:icon name="user" />
    
    {{-- after --}}
    <flux:icon name="user" variant="solid" />
    

    Verify it renders before you refactor anything else. The fastest way to validate the package is wired correctly is a single icon on a single page, not a full icon-library migration.

Implementation Patterns

Use it as an icon source, not a Font Awesome wrapper. The value of this package is that it plugs Font Awesome glyphs into Flux's existing <flux:icon> component API, so you keep Flux's sizing (class="size-5"), color inheritance (text-current), and accessibility conventions. Don't reach for raw <i class="fa-solid fa-user"> markup — you lose all of that and you end up with two icon systems in one codebase.

Standardize on Flux's icon API across the app. Once installed, audit for direct Font Awesome usage (<i class="fas ...">, @svg('fas-...')) and migrate those call sites to <flux:icon>. This is the single highest-leverage refactor, because it means one icon abstraction, one place to change icon libraries later, and consistent sizing/spacing behavior.

Wrap icons in your own Blade component for team-wide consistency. Even with Flux handling the heavy lifting, a thin app-level component pays off:

{{-- resources/views/components/icon.blade.php --}}
@props(['name', 'variant' => 'solid'])
<flux:icon :name="$name" :variant="$variant" {{ $attributes->class('size-5 shrink-0') }} />

Now a future icon-library change is a one-file edit rather than a grep-and-replace across hundreds of views.

Variant selection maps to Font Awesome styles. Font Awesome's solid / regular / brands styles generally map onto Flux's variant attribute. Establish a convention in your team (e.g. solid is the default, brands only for social/auth-provider icons) and document it, because FA's naming is less predictable than Heroicons' — brands in particular has different glyph names than the solid set.

Integrate at the layout/nav layer first. The best ROI is navigation, sidebar items, and buttons — places with the highest icon density and the most repeated markup. Get those consistent, then work outward into one-off pages.

Testing pattern. Assert on rendered SVG presence rather than exact paths, so icon library upgrades don't churn your test suite:

$response->assertSee('<svg', false);

Pin the version while it's pre-1.0. Use "mikebronner/flux-fontawesome-icons": "^0.1" (not *) and commit composer.lock. For a 0.1.0 package, 0.1.x patch releases may still adjust naming or config keys.

Gotchas and Tips

Font Awesome Pro is a licensing issue, not a technical one. If you use Pro glyphs, the package can only render what's present in your installed Font Awesome assets. Verify your license covers your deployment model (especially SaaS/end-product distribution), and keep Pro assets out of public VCS if your license forbids redistribution. If you're on Free, expect a reduced glyph set — the brands and regular styles are noticeably thinner.

Icon names are the #1 source of "icon renders blank". Flux/Heroicons names (user, chevron-down) and Font Awesome names (user, chevron-down, but also magnifying-glass vs search, xmark vs x) differ subtly. When an icon doesn't render:

  1. Confirm the glyph exists in your installed FA set (check Font Awesome's icon search for the exact name and style).
  2. Confirm the style/variant is actually available in your FA tier.
  3. Clear compiled views: php artisan view:clear — icon resolution is often done in Blade compilation and stale views mask config changes.

Flux is a commercial product with its own version cadence. A brand-new package may target a specific Flux major version. If icons fall back to Heroicons or the component throws, check Flux version compatibility before filing a bug — this is the most likely failure mode on install.

SVG vs. webfont. Flux renders inline SVG (no <i> tags, no network fetch). That's good for performance and offline rendering, but it means Font Awesome's webfont CSS classes and content-based icon sizing don't apply. Always size with utility classes (size-4, size-6) on the Flux component, never with fa-2x or font-size.

Watch component-level caching. Flux components have varying caching behavior across versions. If you see an icon not updating after a deploy, it's more often a view cache or a queue/worker still running old code than an icon-resolution bug. Clear caches before debugging anything else.

Extension point: fallback and aliasing. Look for a config-driven alias/mapping option so you can keep Heroicons names in views while resolving to Font Awesome glyphs underneath. If 0.1.0 doesn't offer this, wrap it yourself in the app-level <x-icon> component described above — that's your safety net for a pre-1.0 dependency.

Budget for API churn. With a single 0.1.0 release and one contributor, expect config keys and possibly the public component name to change. Keep the package usage confined to your wrapper component and a small number of direct <flux:icon> call sites so a breaking 0.2.0 is a contained fix, not a rewrite. Watch the GitHub releases feed for 0.x minor bumps and read them as breaking changes.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
cgv/localized-resource