Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

Pawooo's avatar

Laravel 10 cannot install some Blade Icons

Laravel newbie here.

Migrated from Laravel 9 to Laravel 10 and some icons stopped working, on reinstall:

composer require davidhsianturi/blade-bootstrap-icons
composer require codeat3/blade-google-material-design-icons

Both return

Problem 1
    - Root composer.json requires davidhsianturi/blade-bootstrap-icons ^1.3 -> satisfiable by davidhsianturi/blade-bootstrap-icons[v1.3.0].
    - davidhsianturi/blade-bootstrap-icons v1.3.0 requires illuminate/support ^8.0|^9.0 -> found illuminate/support[v8.0.0, ..., v8.83.27, v9.0.0, ..., v9.52.0] but these were not loaded, likely because it conflicts with another require.

Official repos for these don't have anything listed in issues, and by searching "icons" on this forum I have not managed to find anything similar.

I assume the error message above has everything I need to solve it, however I'm confused and feel I should ask people who understand what they're doing to doublecheck. This has to do with Illuminate version? Or Icon Creators not updating their requirements? Or is it my package.json?

My package.json

{
    "private": true,
    "scripts": {
        "dev": "vite",
        "build": "vite build",
        "watch": "vite build --watch"
    },
    "devDependencies": {
        "axios": "^1.1.2",
        "laravel-vite-plugin": "^0.7.2",
        "vite": "^4.0.0"
    }
}

Any help would be much appreciated!

Also another newbie question: If I only use specific icons from multiple Blade Icons packages, would that affect page loading times or on build only icons that are actually used out of these packages will be served to the client?

0 likes
6 replies
Sinnbeck's avatar

Show your composer.json instead :) Those are php packages, so package.json isnt used

Pawooo's avatar

@Sinnbeck There you go!

{
    "name": "laravel/laravel",
    "type": "project",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "require": {
        "php": "^8.1",
        "andreiio/blade-remix-icon": "^1.1",
        "guzzlehttp/guzzle": "^7.2",
        "laravel/framework": "^10.0",
        "laravel/sanctum": "^3.2",
        "laravel/tinker": "^2.8",
        "owenvoke/blade-entypo": "^2.1",
        "owenvoke/blade-fontawesome": "^2.2"
    },
    "require-dev": {
        "fakerphp/faker": "^1.9.1",
        "laravel/pint": "^1.0",
        "laravel/sail": "^1.18",
        "mockery/mockery": "^1.4.4",
        "nunomaduro/collision": "^7.0",
        "phpunit/phpunit": "^10.0",
        "spatie/laravel-ignition": "^2.0"
    },
    "autoload": {
        "psr-4": {
            "App\": "app/",
            "Database\Factories\": "database/factories/",
            "Database\Seeders\": "database/seeders/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\": "tests/"
        }
    },
    "scripts": {
        "post-autoload-dump": [
            "Illuminate\Foundation\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ],
        "post-update-cmd": [
            "@php artisan vendor:publish --tag=laravel-assets --ansi --force"
        ],
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ]
    },
    "extra": {
        "laravel": {
            "dont-discover": []
        }
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true,
        "allow-plugins": {
            "pestphp/pest-plugin": true,
            "php-http/discovery": true
        }
    },
    "minimum-stability": "stable",
    "prefer-stable": true
}
Pawooo's avatar

@Sinnbeck Got it! So I suppose for now I'll use something else as a temporary replacement! I'm slightly confused, though. Isn't most icons just, well, a bunch of vector images that we download? What kind of "preparations" have to take place usually? :)

Sinnbeck's avatar

@Pawooo Yes. And you can just implement it yourself if you want :) The think with that php package, is that it allows you to simply use blade syntax for the icons

<x-bi-bell-fill/>
//vs
<span class="some-icon-class-bell-fill"></span>

If you want that functionality you could try this instead. It is laravel 10 ready https://packagist.org/packages/blade-ui-kit/blade-icons

swapnilsarwe's avatar

@Pawooo just FYI

all packages you tried are now on laravel 10 support.

davidhsianturi/blade-bootstrap-icons - added support on Mar 17, 2023 codeat3/blade-google-material-design-icons - added support on Feb 18, 2023

2 likes

Please or to participate in this conversation.