Fiche 03.06 — Design system simple : couleurs, typographie, spacing
Objectif
Comprendre comment centraliser les couleurs, espacements, rayons et styles de texte pour éviter d’éparpiller des valeurs partout dans l’app.
Un design system simple permet d’avoir une interface cohérente, plus facile à modifier et plus professionnelle.
1. L’idée à comprendre
Sans design system, on finit souvent avec ce genre de code partout :
Le problème, c’est que si tu veux changer le bleu principal, le rayon des boutons ou l’espacement général, tu dois modifier plein de fichiers.
L’idée est donc de créer des valeurs réutilisables :
2. Structure recommandée
Tu peux aussi tout mettre dans un seul fichier au début, mais dès que l’app grossit, mieux vaut séparer.
3. Couleurs centralisées
Utilisation :
Dans une vraie app, tu peux ensuite brancher ces couleurs sur des assets Xcode pour mieux gérer le dark mode.
4. Espacements centralisés
Utilisation :
Au lieu d’avoir .padding(12), .padding(14), .padding(18) partout, tu gardes une logique cohérente.
5. Rayons centralisés
Utilisation :
6. Typographies centralisées
Utilisation :
7. Exemple avec un bouton réutilisable
Utilisation :
8. Exemple avec une card réutilisable
Utilisation :
En UIKit (rappel)
En UIKit, tu centralisais déjà tes tokens, mais via des enum de UIColor/UIFont (ou des asset colors) :
Pour styliser globalement, tu passais par UIAppearance (appliqué une fois, souvent au démarrage) :
La différence de mentalité : en UIKit tu configures des objets existants (impératif, mutation d'instances ou proxy appearance()). En SwiftUI tu exposes des Color/Font que tu appliques de façon déclarative, et tu factorises le style global dans des ViewModifier réutilisables plutôt que via un proxy.
👉 En SwiftUI : Color/Font dans un enum + ViewModifier (ou ButtonStyle/LabelStyle) remplacent UIColor/UIFont et UIAppearance.
Points à connaître
Un design system simple n’a pas besoin d’être énorme. Au début, quelques couleurs, espacements et styles de texte suffisent.
Il faut éviter de centraliser trop tôt des choses inutiles. Le but n’est pas de créer une usine à gaz, mais d’éviter les valeurs magiques partout.
Les noms doivent être liés au rôle visuel, pas forcément à la couleur exacte. Par exemple, primary est mieux que blue, parce que la couleur principale pourra changer plus tard.
Résumé
- Le design system centralise les styles importants.
- Il évite les
.blue,.red,.padding(12)partout. - Il rend l’app plus cohérente.
- Il facilite les changements visuels.
- Les fichiers peuvent être rangés dans
Shared/DesignSystem.