Documentation

Documentation - Icônes.

Découvrez Marssel : un framework CSS intelligent, configuration minimale, conçu pour des interfaces rapides et une expérience développeur simplifiée.

Icônes

Marssel intègre un système d'icônes flexible basé sur des SVG avec support des icônes locales personnalisées, trois styles (outline, solid, duotone) et redimensionnement facile.

Utilisation de base

Affichez une icône avec icon-[nom] :

Aperçu
<!-- Icône simple -->
<span class="icon-[acorn]"></span>

<!-- Avec taille -->
<span class="icon-[acorn] icon-size-[large]"></span>

<!-- Avec couleur -->
<span class="icon-[acorn] icon-size-[xlarge] c-[2563eb]"></span>

Tailles disponibles

Utilisez icon-size-[taille] pour définir la taille :

Aperçu
<!-- Petit (16px) -->
<span class="icon-[star] icon-size-[small]"></span>

<!-- Moyen (24px) - par défaut -->
<span class="icon-[star] icon-size-[medium]"></span>

<!-- Grand (32px) -->
<span class="icon-[star] icon-size-[large]"></span>

<!-- Extra grand (48px) -->
<span class="icon-[star] icon-size-[xlarge]"></span>

<!-- Taille personnalisée -->
<span class="icon-[star] icon-size-[150px]"></span>

Types d'icônes

Marssel supporte trois styles d'icônes :

Aperçu
<!-- Outline (par défaut) -->
<span class="icon-[acorn] icon-size-[medium]"></span>

<!-- Solid -->
<span class="icon-[acorn-solid] icon-size-[medium]"></span>

<!-- Duotone -->
<span class="icon-[acorn-duotone] icon-size-[medium]"></span>

Couleurs

Appliquez des couleurs avec c-[couleur] :

Aperçu
Accueil
<!-- Couleur hexadécimale -->
<span class="icon-[check] icon-size-[medium] c-[10b981]"></span>

<!-- Couleur de thème -->
<span class="icon-[info] icon-size-[medium] c-[theme-peach]"></span>

<!-- Couleur au hover -->
<span class="icon-[heart] icon-size-[medium] c-[6b7280] c-[D41212]:hover"></span>

<!-- CurrentColor (hérite de la couleur du texte parent) -->
<div class="c-[2563eb]">
    <span class="icon-[home] icon-size-[medium]"></span>
    Accueil
</div>

Icônes personnalisées

Ajoutez vos propres icônes SVG :

**Organisation des fichiers :**
public/
|----images/
|--------icons/
|------------outline/
|----------------my-icon.svg
|------------solid/
|----------------my-icon.svg
|------------duotone/
|----------------my-icon.svg

Générer le manifest des icônes

Après avoir ajouté vos icônes personnalisées, générez le fichier manifest :

# Depuis le package npm (commande complète)
node node_modules/@marssel-vb/marssel/generators/generate-icons-manifest.mjs

# Avec options personnalisées
node node_modules/@marssel-vb/marssel/generators/generate-icons-manifest.mjs \
  --icons public/images/icons \
  --manifest public/js/icons-manifest.json \
  --pretty

Options disponibles :

  • --icons : Chemin du dossier contenant vos icônes SVG (défaut : public/images/icons/)
  • --manifest : Chemin de sortie du fichier manifest (défaut : public/js/icons-manifest.json)
  • --pretty : Formater le JSON de manière lisible (recommandé pour le développement)

💡 Note : Le générateur scanne automatiquement les sous-dossiers outline/, solid/ et duotone/ et ajoute les suffixes appropriés aux noms des icônes.

Utilisation avec des chemins personnalisés

Si vous utilisez des chemins personnalisés, assurez-vous de les configurer à la fois dans la génération du manifest ET dans l'initialisation de Marssel :

# 1. Générer le manifest avec chemins personnalisés
node node_modules/@marssel-vb/marssel/generators/generate-icons-manifest.mjs \
  --icons assets/svg/icons \
  --manifest assets/data/icons.json \
  --pretty
// 2. Configurer Marssel avec les mêmes chemins
import { MarsselBundle } from '@marssel-vb/marssel';
const { Marssel } = MarsselBundle;

const app = new Marssel({
    paths: {
        iconsManifest: '/assets/data/icons.json'
    }
});

Utilisation des icônes importées

<!-- Icône personnalisée outline -->
<span class="icon-[my-icon] icon-size-[medium]"></span>

<!-- Icône personnalisée solid -->
<span class="icon-[my-icon-solid] icon-size-[medium]"></span>

<!-- Icône personnalisée duotone -->
<span class="icon-[my-icon-duotone] icon-size-[medium]"></span>

Icônes animées

Ajoutez des animations aux icônes :

Aperçu
<!-- Rotation -->
<span class="icon-[spinner-ball-duotone] icon-size-[medium] c-[2563eb] icon-animated-[spin]"></span>
<!-- Pulse -->
<span class="icon-[circle-notch] icon-size-[medium] c-[2563eb] icon-animated-[pulse]"></span>

Icônes courantes

Retrouvez toutes les icones disponibles dans la bibliothèque Marssel Icons.

API JavaScript

Contrôlez les icônes programmatiquement :

// Vérifier si le manifest est chargé
if (marssel.iconManager.isLoaded) {
  console.log('Icônes chargées');
}

// Obtenir les statistiques du cache
const stats = marssel.iconManager.getCacheStats();
console.log(stats);
// { size: 45, iconsLoaded: 120, isLoaded: true }

// Nettoyer le cache
marssel.iconManager.clearCache();