cap-collectif / ui

Design system of @cap-collectif with react • styled-components • styled-system
https://ds.cap-collectif.com/
MIT License
16 stars 0 forks source link

POC - Customisation avancée de la couleur du DS #379

Closed aguilaj closed 9 months ago

aguilaj commented 10 months ago

:tophat: What? Why?

Pour rendre le DS futur proof, permettre de + facilement y injecter des couleurs.

Historiquement, le DS a été pensé sur une palette de couleur précise -> Ici

Pour le back office, on est globalement parti sur du bleu, avec du blue.500 en couleur primaire, qu'on retrouve un peu partout en dur dans le code. Par exemple, le code de style du <Button />, actuellement :

Capture d’écran 2023-09-05 à 13 39 45

C'est pas optimal, ça laisse aucune possibilité de personnalisation. En plus de ça, pour adapter le DS côté client, on peut pas se limiter à une palette de couleur, puisque certains (la majorité) voudront une charte graphique qui leur est spécifique. J'ai donc ajouté, dans le fichier de couleurs, des valeurs supplémentaires, pour tester un fonctionnement différent :

Capture d’écran 2023-09-05 à 13 44 20

Par défaut, ces valeurs reprennent celles autour du blue.500, mais ça me permet, dans le code du bouton vu plus haut par exemple, d'avoir ça :

Capture d’écran 2023-09-05 à 13 45 34

Du coup, lorsque l'on injecte le thème, on a juste à remplacer ces couleurs si besoin, et ça donne un bouton totalement personnalisable :

Capture d’écran 2023-09-05 à 13 47 32

J'ai modifié le style de la plupart des versions primaires des composants existants -> Exemple de rendu ici (couleurs modifiables à la volée dans les controls)

Techniquement, ça fonctionne, maintenant les questions que ça soulève :

Voilà pour moi, dans tous les cas le fonctionnement existant n'est pas cassé, la palette de couleur est toujours utilisable, et comme j'ai laissé le blue.500 en primary par défaut, on prend pas de risque de casser le BO. Il va donc falloir dans un futur proche arbitrer les couleurs à utiliser, et on aura un front 100% moderne 100% customizable (fin on aura de quoi le faire, c'est différent)

:pushpin: Related Issues

Le frontend catastrophique

:clipboard: Technical Specification

:art: Chromatic links

Chromatic PR Storybook

:camera_flash: Screenshots