TutorielsDesign system sous contrainte

La classe Tailwind qui disparaît sans erreur

Une échelle typographique maison et une fusion de classes qui l'ignore : le HTML livré perd la classe, et rien ne le signale.

AvancéArticle4 étapes10 min

La panne se présente ainsi : le composant reçoit className="text-body-sm text-foreground", et le HTML construit ne porte que text-foreground. Aucune erreur, aucun avertissement, un texte à la taille par défaut là où la maquette en demandait une autre.

1. Comprendre qui supprime la classe

tailwind-merge désambiguïse les classes en conflit : entre px-2 et px-4, la dernière gagne. Pour trancher, il faut classer chaque classe dans un groupe — et il ne connaît que les groupes de Tailwind. Une échelle maison déclarée en @theme lui est inconnue : text-body-sm est rangé avec les couleurs de texte, donc jugé en conflit avec text-foreground, donc supprimé.

2. Reproduire la panne dans un test, pas dans un navigateur

La fonction cn est pure. Le test qui l’attrape tient en une ligne — expect(cn("text-body-sm", "text-foreground")) — et ne demande ni build ni DOM. Cherchée dans le navigateur, la même panne se présente comme « un style qui ne s’applique pas », et on soupçonne d’abord la feuille de style.

3. Déclarer les échelles maison

extendTailwindMerge accepte les groupes du thème : espacements, tailles de texte, rayons. Chaque valeur déclarée là est reconnue comme telle, et cesse d’être confondue avec une couleur.

4. Empêcher la dérive entre deux fichiers

La liste passée à extendTailwindMerge doit refléter le bloc @theme de la feuille de style. Rien dans l’outillage ne les tient ensemble : ajouter un token sans l’inscrire ici ramène exactement la même panne, silencieuse au même endroit. Un commentaire à chaque extrémité, et un test par groupe, sont ce qui rend l’oubli visible.

Parler au Discovery AgentOuvrir en grand
Commande

Agent

Parler au Discovery AgentCadrer votre projet en huit questions.

Agir

Thème sombreFixer l'apparence du site
Thème clairFixer l'apparence du site
Thème du systèmeSuivre à nouveau la préférence du système
Passer le site en anglaisEnglish
Labs — ProduitFiltrer les Labs par type
Labs — PrototypeFiltrer les Labs par type
Labs — RechercheFiltrer les Labs par type
Labs — Réinitialiser les filtresRetirer tous les filtres des Labs
Journal — IngénierieFiltrer le Journal par catégorie
Journal — SécuritéFiltrer le Journal par catégorie
Journal — Agent-NativeFiltrer le Journal par catégorie
Journal — StudioFiltrer le Journal par catégorie
Journal — Réinitialiser les filtresRetirer tous les filtres du Journal
Tutoriels — DébutantFiltrer les tutoriels par niveau
Tutoriels — IntermédiaireFiltrer les tutoriels par niveau
Tutoriels — AvancéFiltrer les tutoriels par niveau
Tutoriels — Réinitialiser les filtresRetirer tous les filtres des tutoriels

Services

DiscoveryCadrer le produit avant d'écrire la première ligne, pour que le budget serve à construire et pas à corriger.
Design produitUne interface qui se tient, portée par un design system que vos développeurs peuvent faire vivre sans nous.
Développement webUne application web rapide et tenue dans le temps, avec les tests et la chaîne de livraison qui vont avec.
Développement mobileUne application iOS et Android depuis une seule base de code, publiée sur les deux stores.
Infrastructure & sécuritéUne infrastructure décrite en code, et un accès Zero Trust qui ne repose pas sur un SMS.
Maintenance & évolutionUn produit qui reste à jour, surveillé et corrigé, avec quelqu'un qui répond quand ça casse.
Conseil Architecture Agent-NativeRendre un produit existant pilotable par un agent, sans le réécrire — et sans lui ouvrir plus qu'il ne faut.

Naviguer

YorroStudio d'ingénierie produit à Abidjan et Paris. On conçoit, on code, on livre.
ServicesConstruire un produit de bout en bout, ou conseiller une équipe sur son architecture agent-native.
LabsCe que le studio a construit : produits, prototypes et recherches, avec leur avancement réel.
TutorielsDes guides pas-à-pas tirés de vrais projets, réunis en parcours par sujet.
JournalLes notes et les prises de position du studio.
ContactDécrivez votre projet ; on répond avec un cadrage, pas avec un devis type.
À proposQui tient le studio, comment il travaille, et ce qu'il refuse de faire.
Discovery AgentDécrivez votre projet en conversant ; l'agent coche les modules et produit une estimation indicative.

↑↓naviguer↵exécuteréchapfermer