divmagic Make design
SimpleNowLiveFunMatterSimple
Comment GitHub a amélioré les performances en livrant plus de CSS – et comment vous pouvez le faire aussi
Blogs›CSS›Comment GitHub a amélioré les performances en livrant plus de CSS – et comment vous pouvez le faire aussi
CSS

Comment GitHub a amélioré les performances en livrant plus de CSS – et comment vous pouvez le faire aussi

Comment GitHub a amélioré ses performances en livrant plus de CSS – et comment vous pouvez faire de même

Dans une décision d'ingénierie audacieuse, GitHub a récemment détaillé sa migration complète du CSS-in-JS vers un CSS simple, manuscrit et bien structuré. Le résultat ? Un bond spectaculaire dans la vitesse du site et l'expérience utilisateur. Il ne s'agit pas d'un retour aux méthodes anciennes, mais d'une stratégie soigneusement calculée qui prouve que livrer plus de CSS peut en réalité rendre votre site plus rapide. Dans cette analyse approfondie, nous décortiquerons le parcours de GitHub, les raisons techniques derrière ce choix, les gains de performance, et comment des outils comme DivMagic rendent cette approche accessible à tout développeur frontend.

34%
improvement in Largest Contentful Paint

Le CSS-in-JS a révolutionné notre façon de penser les styles isolés et l'architecture basée sur les composants, mais il a apporté des coûts cachés. L'injection de styles à l'exécution, l'augmentation des bundles JavaScript et des temps d'analyse plus lents ont poussé de nombreux sites à fort trafic à réexaminer leurs stratégies de style. GitHub, l'une des plateformes de développement les plus visitées au monde, a décidé de renverser la tendance : supprimer la couche d'abstraction et livrer des fichiers CSS statiques et légers dès le départ.

Le paradoxe de performance du CSS-in-JS

Pendant des années, les équipes ont adopté des bibliothèques CSS-in-JS comme styled-components ou Emotion pour leurs avantages en termes d'expérience développeur : CSS critique automatique, isolation, styles dynamiques et colocalisation. Mais à mesure que les applications évoluent, ces avantages ont souvent un coût.

ApproachInitial RenderBundle ImpactMaintenance
CSS‑in‑JSJS must parse style objects firstAdds runtime + CSS in JS bundleTight coupling, harder to refactor
Plain CSS (GitHub)Browser parses CSS immediatelySmaller JS, CSS loaded separatelyClass naming conventions, reusable
DivMagicExtract exact UI from any siteZero runtime, clean CSS outputInstant copy, then customize

Le tableau ci-dessus montre un contraste frappant. L'analyse de GitHub a révélé que la taille du bundle JavaScript était gonflée par le code d'exécution du CSS-in-JS et les définitions de styles qui auraient pu être statiques. Pire encore, ces styles devaient être analysés et injectés par JavaScript avant que le navigateur puisse peindre, retardant le First Contentful Paint (FCP) et le Largest Contentful Paint (LCP).

25%
faster Time to Interactive on github.com

En déplaçant tous les styles vers des fichiers CSS autonomes, GitHub a éliminé la surcharge d'exécution. Le navigateur pouvait récupérer et analyser le CSS en parallèle avec le HTML, débloquant le rendu. Les Core Web Vitals du site se sont améliorés sur tous les plans, un facteur critique tant pour l'expérience utilisateur que pour le référencement.

La migration : plus de CSS, mais un CSS plus intelligent

L'équipe d'ingénierie de GitHub – Josh Black et Marie Lucca – a décrit son processus dans un article de blog détaillé. Au lieu d'une réécriture massive, ils ont adopté une stratégie composant par composant, convertissant chaque élément d'interface du CSS-in-JS au CSS pur tout en maintenant zéro temps d'arrêt.

man, computer, monitor, desk, lamp, office, wall, notes, posters, home office, web, development, man, office, home office, home office, home office, home office, home office, web, web, web

40%
reduction in CSS payload size

Cela peut sembler contre-intuitif : comment livrer plus de CSS tout en réduisant la charge utile ? La réponse réside dans l'élimination du code mort et le fractionnement du CSS critique. Dans le monde du CSS-in-JS, de nombreux styles étaient générés dynamiquement, incluant souvent des règles inaccessibles ou des sélecteurs excessivement spécifiques. En auditant la surface d'interface réelle, GitHub a supprimé les styles inutilisés et utilisé des outils comme PurgeCSS pour retirer tout ce qui n'était pas rendu sur la page actuelle.

Performance Metrics Comparison: CSS-in-JS vs Plain CSS

L'équipe a également investi massivement dans un pipeline de build robuste capable d'éliminer le CSS par arbre (tree-shaking) tout comme le JavaScript. Ils ont introduit une étape « CSS critique en ligne » qui extrait les styles nécessaires au contenu au-dessus de la ligne de flottaison et les intègre dans le <head>, tandis que le reste se charge de manière asynchrone. Ce modèle – appelé « chargement progressif du CSS » – garantissait que la page devenait interactive plus rapidement sans flash de contenu non stylisé.

Des métriques de performance qui parlent d'elles-mêmes

La migration de GitHub n'a pas seulement amélioré les benchmarks synthétiques ; les données de surveillance réelle des utilisateurs (RUM) racontaient la même histoire. Examinons quelques chiffres clés :

100%
of github.com migrated to plain CSS
  • Largest Contentful Paints'est amélioré de 34 %, passant de « nécessite des améliorations » au seuil « bon » dans les Core Web Vitals de Google. -Time to Interactiveest devenu 25 % plus rapide, permettant aux utilisateurs d'interagir plus tôt avec la page. -La taille de la charge utile CSSa chuté de 40 % malgré le passage des styles générés par JS aux fichiers statiques. -First Input Delaya presque disparu pour la plupart des sessions, car le thread principal était moins encombré par les calculs de style.

Ces gains n'étaient pas seulement techniques ; ils se sont traduits directement par un meilleur engagement et des taux de rebond plus faibles sur github.com.

« Nous avons été surpris de voir à quel point le simple fait de supprimer l'abstraction CSS-in-JS améliorait notre pipeline de rendu. Le navigateur sait gérer le CSS efficacement – nous avions juste besoin de le laisser faire son travail. » – Équipe d'ingénierie de GitHub

Pourquoi cela compte pour chaque développeur frontend

Vous pourriez penser : « Je ne gère pas une plateforme de la taille de GitHub, alors pourquoi devrais-je m'en soucier ? » La réponse est que les mêmes principes s'appliquent à n'importe quelle échelle. Le CSS-in-JS introduit une dépendance qui peut ralentir votre site de centaines de millisecondes – et dans la performance web, chaque milliseconde compte.

Les navigateurs modernes sont incroyablement optimisés pour analyser le CSS simple. Ils peuvent créer le CSSOM (CSS Object Model) dans un thread séparé, le mettre en cache efficacement et l'appliquer au DOM sans interrompre l'exécution JavaScript. Lorsque vous générez des styles via JavaScript, vous brisez ce pipeline et forcez le navigateur à attendre.

Comment DivMagic s'intègre dans un workflow CSS simple

Recréer les styles exacts d'un composant d'interface complexe peut être un processus fastidieux et sujet aux erreurs. C'est là queDivMagicdevient un véritable atout. En tant qu'extension de navigateur, DivMagic vous permet de copier n'importe quel élément d'interface de n'importe quel site web et d'obtenir instantanément du CSS et du HTML propres et réutilisables. Au lieu d'inspecter les éléments et d'assembler les styles, vous pouvezcopier l'apparence entière en un clic.

technology, computer, code, javascript, developer, programming, programmer, jquery, css, html, website, technology, technology, computer, code, code, code, code, code, javascript, javascript, javascript, developer, programming, programming, programming, programming, programmer, html, website, website, website

Imaginez que vous découvriez un composant de carte magnifiquement conçu sur le site d'un concurrent. Avec DivMagic, vous sélectionnez l'élément, et l'extension extrait les règles CSS précises – pas de JavaScript, pas d'exécution, seulement les styles dont vous avez besoin. Vous pouvez ensuite les coller dans la feuille de style de votre projet, personnaliser les noms de classe et respecter votre système de design.

GitHub's Page Load Time Improvement During Migration

Cela s'aligne parfaitement avec la philosophie de GitHub de livrer plus de CSS (le bon) sans surcharge. DivMagic génère du CSS prêt pour la production, statique, éliminable par arbre et totalement sous votre contrôle. Il contourne le besoin de middlewares CSS-in-JS, vous permettant de construire des interfaces rapides et légères.

Au-delà de la copie : construire une bibliothèque de composants

De nombreux développeurs utilisent DivMagic comme outil de recherche. Ils collectent des motifs d'interface provenant de produits de premier plan, étudient les architectures CSS et les adaptent dans leurs propres bibliothèques de composants. Comme le résultat est du CSS simple, il s'intègre parfaitement avec n'importe quel framework – React, Vue, Svelte ou HTML vanilla.

TaskTraditional MethodDivMagic Method
Extract a button styleInspect element, copy dozens of CSS rules, test1‑click copy, get clean CSS
Build a design systemWrite from scratch or import bloated libraryCollect real‑world examples, refine
Performance optimizationProfile, strip unused styles manuallyCopy only the styles you use, no runtime

Leçons tirées de la migration de GitHub

Si vous envisagez un mouvement similaire loin du CSS-in-JS, voici quelques enseignements exploitables :1. Auditez vos styles existants– Utilisez des outils comme PurgeCSS ou examinez manuellement quelles règles sont réellement utilisées en production. Vous constaterez souvent que 30 à 50 % du CSS est inutilisé. 2.Adoptez une approche CSS critique– Intégrez en ligne les styles minimaux nécessaires au premier affichage et reportez le reste. Des outils comme Critical ou des plugins Webpack personnalisés peuvent automatiser cela. 3.Tirez parti des propriétés personnalisées CSS– Elles réduisent les répétitions et rendent le thème trivial. Le nouveau système de jetons de design de GitHub en est un excellent exemple. 4.Utilisez BEM ou du CSS fonctionnel– Choisissez une convention de nommage qui évite les collisions sans isolation à l'exécution. 5.Testez progressivement – Migrez un composant à la fois et surveillez les performances avec le Real User Monitoring.

« La plus grande révélation a été que le CSS simple, bien organisé, s'adapte bien mieux que nous ne l'aurions jamais imaginé – même sur un site aussi complexe que GitHub. »

Embrassez la simplicité

L'histoire de réussite de GitHub est un puissant rappel que parfois le meilleur outil est celui que les navigateurs comprennent déjà parfaitement. En livrant plus de CSS – méticuleusement conçu, purgé et divisé – ils ont offert à leurs utilisateurs une expérience plus rapide et plus fluide tout en simplifiant leur propre pile de développement.

website, web design, development, code, programming, marketing, office, business, agency, website, website, web design, web design, web design, web design, web design, agency

Avec DivMagic, cette simplicité est désormais à la portée de chaque projet. Vous pouvez éviter les frictions du CSS‑in‑JS, extraire toute interface utilisateur que vous admirez et vous concentrer sur la création d'excellentes expériences. La prochaine fois que vous êtes sur le point de import styled from 'styled-components', demandez-vous : le CSS simple pourrait-il faire mieux ? La réponse pourrait bien être oui.

Commencez à construire avec DivMagic aujourd'hui

Rejoignez plus de 10 000 développeurs, concepteurs et propriétaires d'entreprise pour copier le code de n'importe quel site Web et l'utiliser dans leurs propres projets.

Get DivMagic for 42% off

Limited time deal for 22:45