← Tous les articles

Symboles SF personnalisés : le modèle variable et les trois sources requises

Apple fournit plus de 6 900 SF Symbols et l’app SF Symbols est gratuite, mais la plupart des apps finissent par avoir besoin d’une icône qu’Apple ne propose pas : une marque graphique, un glyphe propre à un domaine, une action personnalisée qui ne s’inscrit pas dans le vocabulaire du système. La bonne approche consiste à créer un SF Symbol personnalisé plutôt qu’à déposer un SVG statique, car les SF Symbols personnalisés héritent gratuitement des mécanismes du système : ils s’adaptent à Dynamic Type, participent aux animations Symbol Effects, s’affichent dans les quatre modes de rendu, s’alignent sur la typographie SF Pro et respectent les paramètres d’accessibilité sans code spécifique à l’app. Les SVG statiques ne bénéficient d’aucune de ces intégrations.

Cet article suit le flux de travail à partir du modèle variable de l’app SF Symbols, introduit avec SF Symbols 3 à la WWDC 20211. Le cadre est simple : comprendre ce que sont les trois dessins sources requis, et pourquoi ils le sont. C’est le format du modèle qui porte l’essentiel du flux de travail, et c’est précisément ce que beaucoup de designers et d’ingénieurs ratent lors de leur première tentative. Les versions suivantes de SF Symbols (4, 5, 6, 7) ont étendu le format avec la couleur variable, les transitions magic replace, la prise en charge des dégradés et les effets d’animation, mais la structure fondamentale du modèle variable, fondée sur trois sources, reste stable depuis SF Symbols 3.

En bref

  • Les SF Symbols personnalisés partent d’un modèle exporté depuis l’app SF Symbols (File > Export Template, ou ⌘E)2. Ce modèle est un SVG avec des repères système pour le dimensionnement et un dessin de symbole provisoire à remplacer.
  • Le modèle variable ne requiert que trois dessins sources : Ultralight-Small, Regular-Small et Black-Small. L’app SF Symbols interpole automatiquement les 24 variantes restantes (3 échelles × 9 graisses)3.
  • La compatibilité des chemins est l’exigence centrale : chaque chemin doit avoir le même nombre de points d’ancrage, le même point de départ et la même direction dans les trois sources. Sans cela, l’interpolation produit des glyphes déformés.
  • Les symboles personnalisés prennent en charge les quatre modes de rendu (monochrome, hierarchical, palette, multicolor) et la structure en calques (primary, secondary, tertiary). Le panneau d’inspection du rendu dans Symbol Editor assigne les sous-chemins aux calques.
  • Livraison finale : ajoutez le fichier de symbole à Xcode comme Symbol Image Set dans le catalogue de ressources. SwiftUI le référence avec Image(_:) et le nom du symbole ; le système se charge du reste.

Le modèle variable

SF Symbols 3 (WWDC 2021) a introduit le modèle variable3, un fichier SVG unique qui capture trois dessins sources, à partir desquels l’app SF Symbols génère toute la grille de 27 variantes. Ces trois sources sont :

  • Ultralight-Small. La graisse la plus légère, à la plus petite échelle.
  • Regular-Small. La graisse intermédiaire, à la plus petite échelle.
  • Black-Small. La graisse la plus épaisse, à la plus petite échelle.

L’app utilise ces trois sources pour interpoler les 24 autres cellules (Ultralight-Medium, Regular-Medium, Black-Medium, Ultralight-Large, Regular-Large, Black-Large, ainsi que les graisses intermédiaires à chaque échelle). L’interpolation est automatique, à condition que les chemins sources aient une structure compatible.

Avant l’arrivée du modèle variable dans SF Symbols 3, les symboles personnalisés imposaient de dessiner manuellement les 27 variantes. Le modèle variable a ramené ce travail à 3 dessins + interpolation, ce qui fait la différence entre un effort de design maîtrisable et un projet qui s’enlise.

L’exigence de données compatibles

Pour interpoler les chemins, les trois chemins sources doivent décrire la même forme, dans le même ordre2 :

  • Même nombre de points d’ancrage. Un carré en graisse Regular avec 4 points d’ancrage doit aussi avoir 4 points d’ancrage en Ultralight et en Black, même si la courbure visible diffère.
  • Même point de départ. Le premier point d’ancrage du chemin doit occuper la même position conceptuelle (par exemple, toujours l’angle supérieur gauche) dans les trois graisses.
  • Même direction. Les trois chemins parcourent la forme dans le même ordre (sens horaire ou antihoraire).

Dès qu’une de ces conditions échoue, l’interpolation produit des artefacts : cassures, chevauchements incorrects, traits manquants. L’app SF Symbols en révèle certains (l’aperçu des variantes montre le résultat de l’interpolation), mais les problèmes plus subtils n’apparaissent parfois que dans la ressource exportée finale.

Le flux de travail pragmatique consiste à concevoir d’abord Regular-Small, puis à dériver Ultralight en réduisant l’épaisseur du trait, et Black en l’augmentant, sur le même squelette de chemins. Cette méthode préserve par construction le nombre de points d’ancrage, le point de départ et la direction. Concevoir chaque graisse indépendamment crée des problèmes de compatibilité plus longs à déboguer que de reconstruire proprement le symbole.

Le flux de travail

Cinq étapes, du concept à la ressource exploitable :

1. Trouver un symbole existant similaire

La bibliothèque de l’app SF Symbols compte plus de 6 900 symboles. Cherchez-en un dont la structure ressemble à votre concept (un cercle avec contenu, un carré avec superposition, une ligne avec décoration). Le chemin d’export du modèle utilise la géométrie d’un symbole existant comme point de départ.

2. Exporter le modèle

File > Export Template… ou ⌘E. Choisissez « Variable » comme type de modèle. Vous obtenez un fichier SVG avec les trois graisses sources du symbole, accompagné d’une géométrie de référence indiquant la hauteur de capitale, la ligne de base et les marges visuelles que SF Symbols utilise pour s’aligner sur le texte SF Pro.

3. Remplacer les chemins du modèle

Ouvrez le SVG dans un éditeur vectoriel (Sketch, Figma, Illustrator, Affinity Designer, Inkscape). Les calques nommés du modèle contiennent les trois dessins sources. Remplacez chacun d’eux par votre dessin personnalisé, tout en conservant les noms de calques et l’alignement sur la hauteur de capitale et la ligne de base.

C’est ici que l’exigence de compatibilité des chemins devient décisive : concevez chaque graisse depuis le même squelette de chemins, en faisant varier l’épaisseur du trait ou le poids du remplissage plutôt qu’en redessinant. Dans les outils vectoriels, le flux « dupliquer puis modifier » est le plus simple.

4. Réimporter et vérifier

Glissez le SVG modifié dans l’app SF Symbols. L’app génère les 27 variantes et les affiche dans la grille des variantes. Inspectez chaque combinaison de graisse et d’échelle à plusieurs niveaux de zoom ; les artefacts d’interpolation apparaissent souvent sur des graisses intermédiaires qui ne sautent pas immédiatement aux yeux.

Pour les symboles composés de plusieurs éléments visuels (un corps plus un badge, un cercle plus une forme intérieure), ouvrez le panneau d’inspection du rendu et assignez les sous-chemins à des calques (primary, secondary, tertiary). Ces assignations déterminent la manière dont le symbole s’affiche en modes hierarchical, palette et multicolor.

5. Ajouter à Xcode

Glissez le fichier de symbole (.svg exporté depuis SF Symbols) dans le catalogue de ressources de Xcode. Xcode le traite comme un Symbol Image Set. Référencez-le depuis le code :

Image("MyCustomSymbol")
    .symbolRenderingMode(.hierarchical)
    .foregroundStyle(.tint)

Image(_:) (sans paramètre systemName:) charge le symbole depuis le catalogue de ressources. Les mêmes comportements .symbolRenderingMode, .foregroundStyle, .symbolEffect et Dynamic Type qui fonctionnent sur les symboles système fonctionnent aussi sur les symboles personnalisés, à condition que le symbole ait été correctement conçu.

Modes de rendu et structure en calques

Les quatre modes de rendu exposés par SF Symbols fonctionnent de la même manière sur les symboles personnalisés que sur les symboles système4 :

  • Monochrome. Une seule couleur (foregroundStyle). C’est le mode le plus simple et le plus courant.
  • Hierarchical. Une seule couleur, avec une opacité variable selon le calque. Les calques définis dans le panneau d’inspection du rendu reçoivent des opacités prédéfinies ; le développeur applique une seule teinte et obtient automatiquement une hiérarchie visuelle.
  • Palette. Une couleur explicite par calque. Le développeur transmet plusieurs arguments foregroundStyle ; chaque calque reçoit le sien.
  • Multicolor. Des couleurs fixes, définies par Apple, par calque. Pour les symboles personnalisés, les couleurs sont celles que le designer assigne dans la configuration Multicolor de Symbol Editor.

C’est la structure en calques qui rend possibles les modes hierarchical, palette et multicolor. Un symbole personnalisé sans assignation de calques regroupe tous les chemins dans le calque primary ; le symbole s’affiche toujours correctement en monochrome, mais il ne produit aucune hiérarchie visuelle dans les autres modes. Prenez le temps d’assigner les calques dans le panneau d’inspection du rendu pour tout symbole qui gagne en profondeur.

Échecs fréquents

Trois motifs reviennent dans les journaux d’échec des symboles personnalisés :

Violations de compatibilité des chemins. C’est le problème le plus fréquent. Un symbole qui « semble correct en graisse Regular », mais produit des graisses intermédiaires défectueuses, a presque toujours un problème de compatibilité des chemins. Diagnostic : ouvrez la grille des variantes dans l’app SF Symbols et regardez les variantes de graisse moyenne ; si elles présentent des cassures ou des traits qui ne correspondent pas à l’interpolation attendue, l’un des trois chemins sources viole la compatibilité.

Ligne de base ou hauteur de capitale mal alignée. Les symboles conçus sans respecter le repère de ligne de base du modèle se placent mal à côté du texte. Le symptôme visuel : le symbole paraît trop haut ou trop bas lorsqu’il est placé en ligne avec un Text stylé comme du texte .body. Correction : utilisez la géométrie de référence du modèle ; placez le centre optique du symbole au milieu de la hauteur de capitale.

Aucune assignation de calques. Un symbole doté d’une structure interne riche (plusieurs éléments visuels), mais sans assignation de calques, ne s’affiche correctement qu’en monochrome. Les apps qui choisissent le mode hierarchical ou palette obtiennent un rendu plat. Correction : ouvrez le panneau d’inspection du rendu et assignez chaque sous-chemin à un calque (primary pour la forme principale, secondary pour les accents, tertiary pour les détails tertiaires).

Ce que ce modèle implique pour les apps iOS 26+

Trois enseignements.

  1. Utilisez des SF Symbols personnalisés, pas des SVG bruts, pour les icônes intégrées à l’app. Le flux de travail des symboles personnalisés demande un vrai effort d’ingénierie, mais l’intégration système (Dynamic Type, Symbol Effects, modes de rendu, accessibilité) rend cet investissement rentable pour toute icône appelée à vivre durablement dans l’UI. Les SVG statiques conviennent aux ressources marketing ponctuelles, pas au cœur de l’UI.

  2. Concevez à partir d’un seul squelette ; faites varier l’épaisseur du trait, pas la structure du chemin. Les violations de compatibilité des chemins constituent le mode d’échec principal. Le processus défensif consiste à partir d’une graisse (Regular-Small), puis à dériver Ultralight en réduisant le trait et Black en l’augmentant depuis la même géométrie de chemins. La compatibilité tient par construction.

  3. Assignez explicitement les calques à tout symbole qui bénéficie des modes de rendu. Un symbole qui ne s’affiche qu’en monochrome renonce à la moitié du système SF Symbols. Le panneau d’inspection du rendu ne prend que quelques minutes ; le résultat, ce sont des symboles qui participent aux modes hierarchical, palette et multicolor aux côtés des symboles système.

L’ensemble complet Apple Ecosystem : les App Intents typés ; les serveurs MCP ; la question du routage ; Foundation Models ; la distinction entre environnement d’exécution et outillage LLM ; les trois surfaces ; le modèle de source unique de vérité ; Deux serveurs MCP ; les hooks pour le développement Apple ; les Live Activities ; l’environnement d’exécution watchOS ; les entrailles de SwiftUI ; le modèle mental spatial de RealityKit ; la discipline de schéma SwiftData ; les motifs Liquid Glass ; la livraison multiplateforme ; la matrice des plateformes ; Vision framework ; Symbol Effects ; l’inférence Core ML ; Writing Tools API ; Swift Testing ; Privacy Manifest ; l’accessibilité comme plateforme ; la typographie SF Pro ; les motifs spatiaux visionOS ; Speech framework ; les migrations SwiftData ; le moteur de focus tvOS ; les entrailles de @Observable ; SwiftUI Layout protocol ; ce que je refuse d’écrire. Le hub se trouve dans la série Apple Ecosystem. Pour un contexte plus large sur iOS avec agents IA, consultez le guide de développement d’agents iOS.

FAQ

Ai-je besoin de l’app SF Symbols, ou puis-je créer des symboles personnalisés autrement ?

L’app SF Symbols est l’outil officiel et le seul qui produise des symboles personnalisés validés et compatibles avec l’App Store. Des outils tiers et des convertisseurs en ligne existent, mais ils produisent des SVG qui peuvent ou non satisfaire les exigences du format de modèle. Pour les apps de production, utilisez l’app SF Symbols.

Puis-je créer des symboles personnalisés sous Windows ?

L’app SF Symbols existe uniquement sur macOS. Vous pouvez modifier le modèle SVG exporté sur n’importe quelle plateforme avec un éditeur vectoriel, mais les étapes d’export et de réimport nécessitent macOS. La plupart des équipes ont au moins un designer sur macOS capable de gérer ces étapes ; dans les équipes à distance, le fichier SVG passe par le contrôle de version ou un stockage partagé.

Comment prendre en charge .symbolEffect sur un symbole personnalisé ?

La plupart des effets de symbole fonctionnent automatiquement si la structure du symbole est correcte : bounce, pulse, scale et les autres s’appliquent au symbole quelle que soit son origine. La transition de contenu .replace exige que le symbole de départ et le symbole d’arrivée aient des structures compatibles (nombre de calques similaire, forme générale similaire). L’article sur Symbol Effects de cet ensemble détaille le vocabulaire des effets.

Quelle est la différence entre un Symbol Image Set et un Image Set standard dans Xcode ?

Un Symbol Image Set importe tout le modèle du symbole (les 27 variantes) et les expose via le pipeline de rendu de SF Symbols. Le symbole s’adapte à Dynamic Type, participe aux modes de rendu et fonctionne avec .symbolEffect. Un Image Set standard est une ressource raster ou SVG statique qui ne participe à rien de tout cela. Utilisez Symbol Image Set pour les SF Symbols personnalisés.

Comment les symboles personnalisés gèrent-ils visionOS et watchOS ?

Comme les symboles système : ils s’affichent aux tailles attendues par la plateforme (petite pour watchOS, grande pour visionOS), participent aux fonctionnalités d’accessibilité de la plateforme et respectent ses conventions de couleur et d’effets. La conception du symbole personnalisé se fait une seule fois ; le comportement multiplateforme est automatique. Les articles de cet ensemble sur la matrice des plateformes Apple et les motifs spatiaux visionOS couvrent les considérations propres à chaque plateforme.

Quel est l’impact sur la validation App Store ?

Aucun. Les SF Symbols personnalisés sont examinés comme les autres ressources du catalogue de ressources. Les recommandations de style visuel (ne pas imiter les motifs d’UI d’Apple, ne pas violer de marques déposées) s’appliquent aux symboles personnalisés comme à toute autre illustration personnalisée ; sinon, le processus de validation les traite comme des ressources image standard.

Références


  1. Apple Developer : SF Symbols. Le téléchargement de l’application, le navigateur de la bibliothèque de symboles et le hub de documentation pour créer des symboles personnalisés. 

  2. Apple Developer Documentation : Créer des images de symboles personnalisées pour votre app. Le guide de référence d’Apple couvrant l’export de modèle, la structure SVG, les exigences de compatibilité des chemins et l’import dans le catalogue de ressources Xcode. 

  3. Apple Developer : Create custom symbols (session WWDC 2021 10250). L’introduction du format de modèle variable et du flux de travail fondé sur trois dessins sources. 

  4. Apple Developer Documentation : SymbolRenderingMode. Les quatre modes de rendu (.monochrome, .hierarchical, .palette, .multicolor) et leurs interactions avec la structure en calques. 

Articles connexes

Symbol Effects : le vocabulaire d'animation intégré de SwiftUI pour chaque icône

SF Symbols livre un vocabulaire d'animation que toute application iOS peut parler. Bounce, pulse, scale, replace, variab…

11 min de lecture

Liquid Glass dans SwiftUI : trois patterns issus du déploiement de Return sur iOS 26

Le Liquid Glass d'Apple est une API SwiftUI d'une seule ligne. Trois patterns de Return vont au-delà de .glassEffect() :…

20 min de lecture

Le goût est une infrastructure

À mesure que les agents génèrent une part croissante de ce qui est livré, le plafond de qualité dépend de votre capacité…

7 min de lecture