components/flag-icon-css
Country flag icons in SVG with ready-to-use CSS/Sass helpers. Import via npm/Yarn or CDN, then add .fi and .fi-xx (ISO 3166-1 alpha-2) classes to render flags, with optional squared variants and configurable Sass builds.
users table’s country_code field).fi-fi-xx) based on backend data. Laravel’s Blade directives or JavaScript helpers (e.g., Alpine.js, Livewire) can bridge this gap.@import or Laravel Mix’s purgeCSS).User::country) to ISO codes (e.g., US, GB). Risk of mismatched country codes if not standardized.$flag-icons-included-countries) may conflict with Laravel’s existing Sass setup. Test in isolation first.npm install) is recommended for production.aria-label="User's country: United States") are added via Blade/JS if used for critical UI.country_code as US or United States?)Country model or helper) to normalize ISO codes?<span class="fi fi-{{ $user->country_code }}"></span>).United States) to ISO codes (e.g., US).countries table, ensure ISO codes are consistently formatted.npm install flag-icons and bundle with Vite/Laravel Mix.node_modules:
<!-- resources/views/layouts/app.blade.php -->
<link rel="stylesheet" href="{{ asset('css/flag-icons.min.css') }}">
<span class="fi fi-us"></span> <!-- United States -->
// app/Models/User.php
public function countryFlagClass()
{
$isoCode = $this->country_code; // Assume stored as ISO (e.g., "US")
return "fi fi-{$isoCode}";
}
<span class="{{ $user->countryFlagClass() }}"></span>
loading="lazy" on parent elements).// resources/sass/app.scss
@use "node_modules/flag-icons/sass/flag-icons" with (
$flag-icons-included-countries: ("us", "gb", "de")
);
<span x-data="{ country: 'us' }" x-text="'fi fi-' + country" class="fi"></span>
fi-us w-6 h-6).| Step | Task | Dependencies | Owner |
|---|---|---|---|
| 1 | Add CSS to app.blade.php |
None | Frontend |
| 2 | Standardize country codes in DB | Backend model | Backend |
| 3 | Create helper/accessor for flag classes | Step 2 | Backend |
| 4 | Test static flags in Blade | Steps 1–3 | QA |
| 5 | Optimize SASS (if needed) | Step 1 | Frontend |
| 6 | Implement lazy-loading | Step 4 | Frontend |
| 7 | Add dynamic updates (Alpine/Livewire) | Step 4 | Frontend |
npm update flag-icons or CDN updates.package.json.last release)..fi class overrides).How can I help you explore Laravel packages today?