KYOSH1RO

GitHub abandonne CSS-in-JS pour accélérer ses pages

RAPIDE 02/10/2026 · 09:05 Mis à jour le 29 septembre 2026 GITHUB CSS DÉVELOPPEMENT WEB PERFORMANCE

GitHub a remplacé CSS-in-JS par des CSS Modules afin de réduire le coût du rendu serveur et de l’initialisation de ses composants.

GitHub a entièrement abandonné CSS-in-JS sur github.com au profit des CSS Modules. Ce changement permet au site d’envoyer des feuilles de style déjà générées plutôt que de construire et collecter les styles à l’exécution, dans le navigateur comme sur le serveur.

La migration a commencé avec Primer, le design system utilisé par GitHub. Chaque composant a été converti séparément, placé derrière un feature flag, vérifié avec des tests de régression visuelle, puis déployé progressivement. Une fois Primer migré, GitHub indique avoir réduit de 55 % le temps nécessaire au rendu côté serveur et de 25 % celui consacré à l’initialisation des composants.

Le reste du chantier consistait notamment à supprimer les propriétés `sx` qui permettaient de personnaliser les composants avec des objets JavaScript. Près de 7 760 occurrences étaient encore présentes en avril 2025.
GitHub abandonne CSS-in-JS pour accélérer ses pages

Des outils internes et une extension VS Code ont d’abord accompagné la conversion. Huit ingénieurs ont migré 6 419 propriétés en six mois, avec des gains de 1 à 22 % sur le rendu serveur selon les pages.

Image: Server Side Rendering

En avril 2026, deux ingénieurs épaulés par des agents GitHub Copilot ont supprimé les 895 dernières occurrences en trois semaines. GitHub a ensuite détaché ses sept thèmes de `styled-components` avant de retirer définitivement cette dépendance, ainsi que `styled-system`.

Depuis juin 2026, github.com fonctionne entièrement avec des CSS Modules. L’intérêt du retour d’expérience tient autant aux performances obtenues qu’à la méthode : automatisation, compatibilité temporaire, tests visuels et déploiement progressif ont permis de modifier toute la couche de styles sans bascule brutale.

Lire le retour d’expérience de GitHub
← Retour aux posts