Font Awesome
Icones
Web
Vectoriel
Design
Maîtriser Font Awesome pour intégrer des milliers d'icônes vectorielles. Configuration, customisation et bonnes pratiques.
Introduction et présentation
Font Awesome est la biblothèque d'icônes la plus populaire du web. Avec plus de 5000 icônes vectorielles, elle offre une couverture quasi complète pour tous les besoins de design web.
À retenir : Font Awesome = l'incontournable. Millions de sites web l'utilisent. Libre et performant.
Avantages :
- Énorme bibliothèque d'icônes (5000+)
- Support complet des frameworks (Angular, React, Vue)
- CDN global pour chargement rapide
- Versions gratuite et premium
- Styling facile via CSS
Installation et setup
Option 1 : CDN (le plus simple) :
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
Option 2 : NPM (pour projets modernes) :
npm install @fortawesome/fontawesome-free
// Dans votre CSS
import '@fortawesome/fontawesome-free/css/all.css';
Option 3 : Kit personnalisé (premium) :
// Créer un compte sur fontawesome.com
// Générer un kit personnalisé
<script defer src="https://your-kit-id.fontawesome.com/releases/v6.x.x/js/all.js"></script>
Recommandation : CDN pour démarrer rapidement, NPM pour les projets production.
Utilisation basique
Icônes simples :
<i class="fas fa-heart"></i> <!-- Cœur rempli -->
<i class="far fa-heart"></i> <!-- Cœur vide (regular) -->
<i class="fal fa-heart"></i> <!-- Cœur léger (light) -->
<i class="fab fa-facebook"></i> <!-- Logo Facebook -->
Styles disponibles :
fas= Solid (rempli) - gratuitfar= Regular (contour) - gratuitfal= Light (fin) - premiumfad= Duotone (deux couleurs) - premiumfab= Brands (logos) - gratuit
Dans Angular :
<!-- template.html -->
<button (click)="save()">
<i class="fas fa-save"></i>
Sauvegarder
</button>
<!-- Ou avec ng-content -->
<app-button icon="fas fa-save">Sauvegarder</app-button>
Customisation
Taille :
<i class="fas fa-heart fa-xs"></i> <!-- Extra small -->
<i class="fas fa-heart fa-sm"></i> <!-- Small -->
<i class="fas fa-heart"></i> <!-- Normal -->
<i class="fas fa-heart fa-lg"></i> <!-- Large -->
<i class="fas fa-heart fa-2x"></i> <!-- 2x -->
<i class="fas fa-heart fa-5x"></i> <!-- 5x -->
Couleur via CSS :
/* CSS */
.heart-icon {
color: red;
font-size: 24px;
}
.heart-icon:hover {
color: darkred;
transform: scale(1.2);
transition: all 0.2s;
}
/* HTML */
<i class="fas fa-heart heart-icon"></i>
Animation :
<i class="fas fa-spinner fa-spin"></i> <!-- Spinning -->
<i class="fas fa-circle-notch fa-pulse"></i> <!-- Pulsing -->
/* Custom animation */
.animated-icon {
animation: bounce 1s infinite;
}
@keyframes bounce {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-10px); }
}
À retenir : Font Awesome s'intègre parfaitement avec CSS. Vous pouvez l'animer comme n'importe quel élément.
Intégration avec frameworks
Angular :
// app.module.ts
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
@NgModule({
imports: [FontAwesomeModule]
})
export class AppModule { }
// component.ts
import { faCoffee } from '@fortawesome/free-solid-svg-icons';
export class MyComponent {
faCoffee = faCoffee;
}
// template.html
<fa-icon [icon]="faCoffee"></fa-icon>
React :
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { faCoffee } from '@fortawesome/free-solid-svg-icons'
function MyComponent() {
return <FontAwesomeIcon icon={faCoffee} />
}
Vue :
// main.js
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
import { faCoffee } from '@fortawesome/free-solid-svg-icons'
Vue.component('font-awesome-icon', FontAwesomeIcon)
// Component
<template>
<font-awesome-icon :icon="faCoffee" />
</template>
Cas d'usage et exemples
Barre de navigation :
<nav>
<a href="/"><i class="fas fa-home"></i> Accueil</a>
<a href="/about"><i class="fas fa-user"></i> À propos</a>
<a href="/contact"><i class="fas fa-envelope"></i> Contact</a>
</nav>
Liste de tâches :
<ul>
<li><i class="fas fa-check"></i> Tâche complétée</li>
<li><i class="fas fa-clock"></i> En cours</li>
<li><i class="fas fa-trash"></i> Supprimer</li>
</ul>
Formulaire :
<form>
<div class="form-group">
<i class="fas fa-user"></i>
<input type="text" placeholder="Nom">
</div>
<div class="form-group">
<i class="fas fa-lock"></i>
<input type="password" placeholder="Mot de passe">
</div>
</form>
Comparaison et bonnes pratiques
Font Awesome vs autres :
| Critère | Font Awesome | Bootstrap Icons | Material Icons |
|---|---|---|---|
| Nombre d'icônes | 5000+ | 1300+ | 1000+ |
| Taille CDN | ~80KB | ~30KB | ~40KB |
| Facilité | Très facile | Facile | Facile |
| Popularité | ★★★★★ | ★★★★☆ | ★★★★☆ |
Bonnes pratiques :
- ✅ Utilisez CDN pour les sites statiques
- ✅ Utilisez NPM pour les applications SPA
- ✅ Lazy load les icônes pour optimiser les performances
- ✅ Préférez les kits personnalisés pour réduire la taille
- ❌ N'utilisez pas trop d'icônes (20-30 max par page)
- ❌ Toujours fournir du texte alternatif pour l'accessibilité
Accessibilité :
<!-- ✅ Bon : avec aria-label -->
<button aria-label="Supprimer">
<i class="fas fa-trash"></i>
</button>
<!-- ❌ Mauvais : pas d'accessible name -->
<button>
<i class="fas fa-trash"></i>
</button>
Conclusion : Font Awesome reste le choix #1 pour 99% des projets. Simple, léger, puissant.