Je ne cherche pas forcément à avoir des valeurs dynamiques partout. C’est parfois utile mais ce n’est pas ce que je reproche aux classes utilitaires.

Si j’ai un composant [Button] qui utilise .c-blue pour la couleur du bouton, que je tente de le spécialiser en créant un [MyButton] qui dérive de [Button] mais en rouge… je ne peux pas. Je peux ajouter .c-red dans [MyButton] mais dans ce cas il aura .c-blue et .c-red. Une fois sur deux ce ne sera pas la valeur que je veux qui aura la priorité.

Essentiellement ce que les classes utilitaires m’apportent c’est de définir une liste de valeurs standards. Or franchement, je n’ai déjà l’embarras du choix sur comment définir cette liste de valeurs. Je peux la définir dans les variables CSS, dans les variables du préprocesseur, éventuellement dans un import JS si je fais mes styles en JS. Je n’ai aucunement besoin de définir ça via un inventaire de noms de classe.

Bref, pour cet avantage très contestable, je viens de m’empêcher de faire des surcharges simples. Franchement le ratio bénéfices/problèmes me parait faible, très faible.