Intégration web

Feather Icons : des icônes légères et élégantes

Feather-Icons Svg Icones Minimaliste Design Ui Icones-Vectorielles Front-End Ressources-Design Icon-Library Css Open-Source Framework-Icones Integration-Web
Feather Icons : des icônes légères et élégantes

Découvrez Feather Icons pour un design minimaliste et raffiné : icônes SVG ultra-légères, personnalisables via CSS et facilement intégrables dans vos projets.

Introduction et présentation

Feather Icons est une collection d'icônes SVG minimalistes et élégantes. Conçue pour être légère, cohérente et facile à customiser.

À retenir : Feather Icons = minimalisme pur + SVG. Ultra-léger (350 icônes) et parfait pour les designs épurés.

Avantages :

  • Très léger (~40 KB)
  • Design minimaliste et cohérent
  • Format SVG (scalable parfait)
  • Facile à customiser (stroke, couleur)
  • Open source et gratuit

Installation et setup

CDN :

<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
<script>
  feather.replace()
</script>

NPM :

npm install feather-icons

// React
import * as Icon from 'react-feather'

<Icon.Heart />

SVG inline :

<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
  <path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"></path>
</svg>

Utilisation basique

Avec CDN et data-attributes :

<!-- Remplace automatiquement avec feather.replace() -->
<i data-feather="heart"></i>
<i data-feather="star"></i>
<i data-feather="download"></i>

React (react-feather) :

import { Heart, Star, Download } from 'react-feather'

function MyComponent() {
  return (
    <>
      <Heart />
      <Star size={32} />
      <Download color="red" />
    </>
  )
}

Vue :

import { Heart } from 'vue-feather-icons'

export default {
  components: { Heart }
}

Customisation

Taille avec CSS :

.icon-small { width: 16px; height: 16px; }
.icon-large { width: 48px; height: 48px; }

<!-- SVG inline -->
<svg class="icon-large" ... > ... </svg>

Couleur :

/* Web font style */
svg {
    stroke: currentColor;  /* Utilise la couleur du texte */
    stroke-width: 2;
    fill: none;
    width: 24px;
    height: 24px;
}

svg.text-primary {
    stroke: #1976d2;
}

svg.text-danger {
    stroke: #dc3545;
}

Animations :

.icon-spin {
    animation: spin 1s linear infinite;
}

.icon-bounce {
    animation: bounce 0.6s ease-in-out infinite;
}

@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@keyframes bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

Intégration avec frameworks

Angular :

// app.module.ts
import { CommonModule } from '@angular/common'

// template.html
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
  <path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"></path>
</svg>

React avec react-feather :

import { Heart, Menu, X } from 'react-feather'

export function Header() {
  const [menuOpen, setMenuOpen] = useState(false)

  return (
    <header>
      <button onClick={() => setMenuOpen(!menuOpen)}>
        {menuOpen ? <X size={24} /> : <Menu size={24} />}
      </button>
    </header>
  )
}

Vue (vue-feather-icons) :

<template>
  <div>
    <feather-icon icon="heart" class="text-danger"></feather-icon>
    <feather-icon icon="star" size="32"></feather-icon>
  </div>
</template>

Cas d'usage et exemples

Boutons avec icônes :

<button class="btn">
  <svg ... data-feather="download"></svg>
  Télécharger
</button>

.btn {
    display: flex;
    align-items: center;
    gap: 8px;
}

.btn svg {
    width: 20px;
    height: 20px;
}

Liste d'actions :

<ul class="action-list">
  <li>
    <svg data-feather="edit-2"></svg>
    Modifier
  </li>
  <li>
    <svg data-feather="trash-2"></svg>
    Supprimer
  </li>
  <li>
    <svg data-feather="share-2"></svg>
    Partager
  </li>
</ul>

Comparaison et bonnes pratiques

Feather vs Font Awesome vs Bootstrap Icons :

Critère Feather Bootstrap Font Awesome
Icônes 350 1300+ 5000+
Taille 40 KB 30 KB 80 KB
Minimalisme ★★★★★ ★★★★☆ ★★★☆☆
Flexibilité SVG ★★★★★ ★★★☆☆ ★★☆☆☆

Quand utiliser Feather :

  • Designs minimalistes et épurés
  • Performance critique
  • Customisation SVG nécessaire
  • Petit nombre d'icônes
Conclusion : Feather Icons est parfait si vous cherchez minimalisme et légèreté. Design épuré et performant. Le choix des designers qui l'amour.

Questions fréquentes

Trois méthodes d'intégration : (1) CDN — ajoutez et appelez feather.replace() en fin de body, (2) npm — installez avec npm install feather-icons et importez en ES module, (3) SVG sprite — téléchargez le sprite et utilisez . La méthode CDN est la plus simple pour démarrer. Pour Angular, utilisez le package angular-feather qui expose des composants pour chaque icône.

Feather Icons est excellent pour la production : les icônes sont de simples SVG inline (pas de font icon), ce qui évite le flash de caractères indéfinis et les problèmes de chargement de fonts. La bibliothèque pèse moins de 30KB minifiée. Elle est open source (MIT), activement maintenue, et propose 287 icônes. Pour la performance, préférez importer individuellement les icônes nécessaires (tree-shaking) plutôt que le bundle complet.

Via l'API JavaScript : feather.replace({ width: 24, height: 24, stroke: "currentColor", "stroke-width": 2 }). Via attributs HTML : . Via CSS : les icônes Feather utilisent currentColor pour le trait, donc définir color: blue sur le parent change la couleur de l'icône. Pour un style cohérent, configurez les valeurs par défaut une fois avec feather.replace() et substituez au cas par cas via attributs.

Feather Icons propose 287 icônes minimalistes et cohérentes, toutes en SVG inline — léger, accessible, et stylisable via CSS stroke. Font Awesome propose 2000+ icônes (version gratuite : ~1600) en font icon ou SVG, avec plus de styles (solid, regular, brands). Feather est idéal pour les interfaces épurées et modernes. Font Awesome s'impose quand vous avez besoin d'icônes de marques (GitHub, Twitter) ou d'une grande variété. Lucide est un fork actif de Feather avec davantage d'icônes.

Partager