Installation
composer require legacy-icons/famfamfam-flags
Publish assets to public/vendor/flags (default location):
php artisan vendor:publish --provider="LegacyIcons\FamfamfamFlags\FamfamfamFlagsServiceProvider" --tag="public"
Basic Usage Include the CSS in your layout:
<link rel="stylesheet" href="{{ asset('vendor/flags/css/famfamfam-flags.css') }}">
Use a flag in your Blade template:
<div class="famfamfam-flags fr"></div>
<!-- Renders the French flag -->
Direct Image Usage Reference individual flag images:
<img src="{{ asset('vendor/flags/png/us.png') }}" alt="US Flag" width="16" height="11">
<select>
@foreach (['us', 'fr', 'de', 'jp'] as $country)
<option value="{{ $country }}">
<span class="famfamfam-flags {{ $country }}"></span> {{ ucfirst($country) }}
</option>
@endforeach
</select>
public/vendor/flags/
├── css/
│ └── famfamfam-flags.css
├── png/
│ ├── *.png (all flags)
├── gif/
│ ├── *.gif (all flags)
└── sprite/
└── famfamfam-flags.png (spritesheet)
config/flags.php:
'path' => 'custom/path/to/flags',
Use a Blade component or helper:
// app/Helpers/FlagHelper.php
function flag($code, $size = 'small') {
return "<div class='famfamfam-flags {$code} {$size}'></div>";
}
Usage:
{{ flag('gb', 'large') }}
Add to webpack.mix.js:
mix.copy('node_modules/famfamfam-flags/dist', 'public/vendor/flags');
Pair with Laravel’s localization:
// config/app.php
'flags' => [
'us' => 'United States',
'fr' => 'France',
],
Render:
<div class="famfamfam-flags {{ app()->getLocale() }}"></div>
Missing ImageMagick
gulp build.brew install imagemagick on macOS) or skip spritesheet generation.Caching Issues
php artisan cache:clear
php artisan view:clear
Alias Confusion
RE (Réunion) aliases to FR but may not render if CSS isn’t updated.aliases.json and rebuild spritesheet if needed.Path Configuration
File not found for flags.config/flags.php and verify public directory permissions.Inspect CSS
Use browser dev tools to confirm classes like .famfamfam-flags.fr exist in the generated CSS.
Verify File Existence
Check public/vendor/flags/png/ for the correct flag files (e.g., fr.png).
Spritesheet Debugging
public/vendor/flags/sprite/famfamfam-flags.png in an image editor to verify flag placement.Custom Flags
resources/flags/png/ and update aliases.json.npm install -g gulp-cli
gulp build
Dynamic Flag Loading Use JavaScript to load flags on demand:
// Load flags only when needed
if (document.querySelector('.famfamfam-flags')) {
loadScript('/vendor/flags/js/flags-loader.js');
}
Dark Mode Support Override CSS for dark themes:
.dark-mode .famfamfam-flags {
filter: invert(1);
}
Accessibility Add ARIA labels:
<div class="famfamfam-flags fr" role="img" aria-label="France"></div>
@stack to inline essential flags.famfamfam-flags.css into smaller files per region.How can I help you explore Laravel packages today?