infernalmedia / laravel-favicon-generator
Package to generate favicons within your Laravel application.
Package info
github.com/infernalmedia/laravel-favicon-generator
pkg:composer/infernalmedia/laravel-favicon-generator
Fund package maintenance!
Requires
- php: ^8.3
- illuminate/contracts: ^12.0|^13.0
- intervention/image: ^4.3
- spatie/laravel-package-tools: ^1.93
Requires (Dev)
- larastan/larastan: ^3.13
- laravel/pint: ^1.24
- nunomaduro/collision: ^8.9
- orchestra/testbench: ^10.0|^11.0
- phpstan/extension-installer: ^1.4|^2.0
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-phpunit: ^2.0
- phpunit/phpunit: ^12.5.8|^13.0.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
A Laravel package to generate and manage high-quality favicons for your web application. This package provides two main features:
- A generator to create all necessary favicon files from a single source image with optimal quality
- A Blade component to easily include the favicon meta tags in your HTML
This package is a maintained fork of blockpoint/laravel-favicon-generator, compatible with Laravel 12 and 13.
Features
- Generates high-quality PNG icons using Imagick when available (with GD fallback)
- Creates favicon.ico, favicon-96x96.png, favicon.svg, apple-touch-icon.png
- Generates web app manifest icons (192x192 and 512x512)
- Creates site.webmanifest file
- Generates SVG favicon from any source image format
- Maintains aspect ratio while ensuring exact dimensions
Requirements
- PHP 8.3 or higher
- Laravel 12 or 13
- GD or Imagick PHP extension
Installation
You can install the package via composer:
composer require infernalmedia/laravel-favicon-generator
You can publish the config file with:
php artisan vendor:publish --tag="favicon-generator-config"
Optionally, you can publish the views using:
php artisan vendor:publish --tag="favicon-generator-views"
Usage
Generating Favicons
To generate favicons from a source image, use the provided Artisan command:
php artisan favicon:generate {path/to/your/source/image.png}
This will generate the following favicon files in your public/favicon directory (configurable via the output_path config option):
- favicon.ico for general browser support
- favicon-96x96.png for higher-resolution displays
- favicon.svg for scalable, high-quality vector images (if source is SVG)
- apple-touch-icon.png for iOS devices
- web-app-manifest-192x192.png and web-app-manifest-512x512.png for Progressive Web Apps
- site.webmanifest for PWA configuration
Using the Blade Component
To include the favicon meta tags in your HTML, add the following component to your layout file:
<head> <!-- Other head elements --> <x-favicon-meta /> </head>
This will output the necessary meta tags for all generated favicons:
<link rel="icon" type="image/png" href="/favicon/favicon-96x96.png" sizes="96x96" /> <link rel="icon" type="image/svg+xml" href="/favicon/favicon.svg" /> <link rel="shortcut icon" href="/favicon/favicon.ico" /> <link rel="apple-touch-icon" sizes="180x180" href="/favicon/apple-touch-icon.png" /> <link rel="manifest" href="/favicon/site.webmanifest" /> <meta name="application-name" content="Your App Name" /> <meta name="apple-mobile-web-app-title" content="Your App Name" /> <meta name="mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="default" />
The component will automatically use the application name from your web manifest file or fall back to your Laravel app name configuration.
Programmatic Usage
You can also generate favicons programmatically:
use InfernalMedia\LaravelFaviconGenerator\LaravelFaviconGenerator; $generator = new LaravelFaviconGenerator(); $generatedFiles = $generator->generate('path/to/your/source/image.png');
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Upgrading
Please see UPGRADING for details on migrating from blockpoint/laravel-favicon-generator 1.x.
Contributing
Please see CONTRIBUTING for details.
Credits
- Infernal Média
- Blockpoint for the original package
- All Contributors
License
The MIT License (MIT). Please see License File for more information.