divmagic Make design
SimpleNowLiveFunMatterSimple
GitHub, Daha Fazla CSS Göndererek Performansı Nasıl Artırdı – ve Siz de Nasıl Yapabilirsiniz
Blogs›CSS›GitHub, Daha Fazla CSS Göndererek Performansı Nasıl Artırdı – ve Siz de Nasıl Yapabilirsiniz
CSS

GitHub, Daha Fazla CSS Göndererek Performansı Nasıl Artırdı – ve Siz de Nasıl Yapabilirsiniz

GitHub, Daha Fazla CSS Göndererek Performansını Nasıl Artırdı – ve Siz de Nasıl Yapabilirsiniz

Cesur bir mühendislik hamlesiyle GitHub, yakın zamanda CSS-in-JS'den elle yazılmış, iyi yapılandırılmış düz CSS'ye tam geçişlerini detaylandırdı. Sonuç? Site hızında ve kullanıcı deneyiminde dramatik bir sıçrama. Bu, eski usul yöntemlere bir dönüş değil; daha fazla CSS göndermenin aslında sitenizi hızlandırabileceğinikanıtlayan dikkatlice hesaplanmış bir strateji. Bu derinlemesine incelemede, GitHub'ın yolculuğunu, arkasındaki teknik mantığı, performans kazanımlarını ve DivMagic gibi araçların bu yaklaşımı her ön yüz geliştiricisi için nasıl erişilebilir kıldığını açıklayacağız.

34%
improvement in Largest Contentful Paint

CSS-in-JS, kapsamlı stiller ve bileşen tabanlı mimari hakkındaki düşünme şeklimizde devrim yarattı, ancak beraberinde gizli maliyetler getirdi. Çalışma zamanı stil enjeksiyonu, artırılmış JavaScript paketleri ve daha yavaş ayrıştırma süreleri, birçok yüksek trafikli siteyi stil stratejilerini yeniden gözden geçirmeye itti. Dünyanın en çok ziyaret edilen geliştirici platformlarından biri olan GitHub, senaryoyu tersine çevirmeye karar verdi:soyutlama katmanını kaldırın ve baştan itibaren yalın, statik CSS dosyaları sunun.

CSS‑in‑JS Performans Paradoksu

Yıllar boyunca ekipler, geliştirici deneyimi avantajları (otomatik kritik CSS, kapsamlama, dinamik stiller ve birlikte konumlandırma) için styled‑components veya Emotion gibi CSS‑in‑JS kütüphanelerini benimsedi. Ancak uygulamalar ölçeklendikçe, bu avantajlar genellikle bir bedelle gelir.

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

Yukarıdaki tablo keskin bir zıtlık gösteriyor. GitHub'ın kendi analizi, JavaScript paket boyutunun, statik olabilecek CSS‑in‑JS çalışma zamanı kodu ve stil tanımları tarafından şişirildiğini ortaya koydu. Daha da kötüsü, bu stillerin tarayıcı boyamadan önce JavaScript tarafından ayrıştırılması ve enjekte edilmesi gerekiyordu, bu da First Contentful Paint (FCP) ve Largest Contentful Paint (LCP)'yi geciktiriyordu.

25%
faster Time to Interactive on github.com

Tüm stilleri bağımsız CSS dosyalarına taşıyarak GitHub, çalışma zamanı yükünü ortadan kaldırdı. Tarayıcı, CSS'yi HTML ile paralel olarak getirip ayrıştırabilir, böylece oluşturma engelini kaldırabilirdi. Web sitesinin Core Web Vitals'ları her alanda iyileşti; bu, hem kullanıcı deneyimi hem de SEO için kritik bir faktördür.

Göç: Daha Fazla CSS, Ama Daha Akıllı CSS

GitHub mühendislik ekibi – Josh Black ve Marie Lucca – süreçlerini ayrıntılı bir blog yazısında anlattı. Büyük bir yeniden yazma yerine, her bir UI parçasını CSS‑in‑JS'den saf CSS'ye dönüştürürken sıfır kesinti süresi sağlayan bileşen bazında bir strateji benimsediler.

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

Bu kulağa ters gelebilir: daha fazla CSS gönderip yükü nasıl azaltabilirsiniz? Cevap ölü kod eliminasyonu ve kritik CSS bölmeişleminde yatıyor. CSS‑in‑JS dünyasında, birçok stil dinamik olarak oluşturuluyordu ve genellikle ulaşılamaz kurallar veya aşırı spesifik seçiciler içeriyordu. GitHub, gerçek UI yüzeyini denetleyerek kullanılmayan stilleri ayıkladı ve mevcut sayfada oluşturulmayan her şeyi kaldırmak için PurgeCSS gibi araçlar kullandı.

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

Ekip ayrıca, tıpkı JavaScript gibi CSS'yi de ağaç sallayabilen sağlam bir derleme hattına büyük yatırım yaptı. Katlanmış içerik üstü için gereken stilleri çıkaran ve bunları <head> içine gömen bir “kritik CSS satır içi” adımı tanıttılar, geri kalanı ise eşzamansız olarak yükleniyor. “Aşamalı CSS yükleme” olarak bilinen bu desen, sayfanın stillenmemiş içerik parlaması olmadan daha hızlı etkileşime girmesini sağladı.

Konuşan Performans Metrikleri

GitHub'ın göçü yalnızca sentetik kıyaslamaları iyileştirmedi; gerçek kullanıcı izleme (RUM) verileri de aynı hikayeyi anlattı. Birkaç önemli sayıya bakalım:

100%
of github.com migrated to plain CSS

-Largest Contentful Paint%34 iyileşti ve Google'ın Core Web Vitals'ında “iyileştirme gerekiyor” seviyesinden “iyi” eşiğine yükseldi. -Time to Interactive%25 hızlandı, yani kullanıcılar sayfayla daha erken etkileşime girebildi. -CSS yük boyutu, JS tarafından oluşturulan stillerden statik dosyalara geçilmesine rağmen %40 azaldı.

  • First Input Delayçoğu oturumda neredeyse kayboldu, çünkü ana iş parçacığı stil hesaplamalarıyla daha az meşguldü.

Bu kazanımlar yalnızca teknik başarılar değildi; doğrudan github.com'da daha iyi etkileşim ve daha düşük hemen çıkma oranlarına dönüştü.

“CSS‑in‑JS soyutlamasını kaldırmanın basit eyleminin oluşturma hattımızı ne kadar iyileştirdiğine şaşırdık. Tarayıcı CSS'yi verimli bir şekilde nasıl işleyeceğini biliyor – sadece işini yapmasına izin vermemiz gerekiyordu.” – GitHub mühendislik ekibi

Bu Neden Her Ön Yüz Geliştiricisi İçin Önemli

“GitHub büyüklüğünde bir platform işletmiyorum, neden umursamalıyım?” diye düşünebilirsiniz. Cevap, aynı ilkelerin her ölçekte geçerli olduğudur. CSS‑in‑JS, sitenizi yüzlerce milisaniye yavaşlatabilecek bir bağımlılık getirir – ve web performansında her milisaniye önemlidir.

Modern tarayıcılar, düz CSS'yi ayrıştırmak için inanılmaz derecede optimize edilmiştir. CSSOM'u (CSS Nesne Modeli) ayrı bir iş parçacığında oluşturabilir, verimli bir şekilde önbelleğe alabilir ve JavaScript yürütmesini kesintiye uğratmadan DOM'a uygulayabilirler. Stilleri JavaScript aracılığıyla oluşturduğunuzda, bu hattı kırarsınız ve tarayıcıyı beklemeye zorlarsınız.

DivMagic'in Düz CSS İş Akışına Nasıl Uyduğu

Karmaşık bir UI bileşeninin tam stillerini yeniden oluşturmak sıkıcı ve hataya açık bir süreç olabilir. İşte buradaDivMagicoyunun kurallarını değiştiriyor. Bir tarayıcı uzantısı olarak DivMagic, herhangi bir web sitesinden herhangi bir UI öğesini kopyalamanıza ve anında temiz, yeniden kullanılabilir CSS ve HTML almanıza olanak tanır. Öğeleri inceleyip stilleri bir araya getirmek yerine,tüm görünümü tek tıklamayla kopyalayabilirsiniz.

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

Bir rakibin sitesinde güzelce hazırlanmış bir kart bileşeni keşfettiğinizi hayal edin. DivMagic ile öğeyi seçersiniz ve uzantı, kesin CSS kurallarını çıkarır – JavaScript yok, çalışma zamanı yok, sadece ihtiyacınız olan stiller. Daha sonra bunu projenizin stil sayfasına yapıştırabilir, sınıf adlarını özelleştirebilir ve tasarım sisteminize uyabilirsiniz.

GitHub's Page Load Time Improvement During Migration

Bu, GitHub'ın ek yük olmadan daha fazla CSS (iyi türden) sunma felsefesiyle mükemmel uyum sağlar. DivMagic, statik, ağaç sallanabilir ve tamamen kontrolünüz altında olan üretime hazır CSS üretir. CSS‑in‑JS ara katmanlarına olan ihtiyacı ortadan kaldırarak hızlı, hafif arayüzler oluşturmanıza olanak tanır.

Kopyalamanın Ötesinde: Bir Bileşen Kütüphanesi Oluşturma

Birçok geliştirici DivMagic'i bir araştırma aracı olarak kullanır. En üst düzey ürünlerden UI desenleri toplar, CSS mimarilerini inceler ve bunları kendi bileşen kütüphanelerine uyarlarlar. Çıktı düz CSS olduğu için herhangi bir çerçeveyle – React, Vue, Svelte veya vanilya HTML – sorunsuz bir şekilde entegre olur.

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

GitHub'ın Göçünden Çıkarılan Dersler

CSS‑in‑JS'den benzer bir geçiş düşünüyorsanız, işte bazı uygulanabilir çıkarımlar:1. Mevcut stillerinizi denetleyin– PurgeCSS gibi araçları çalıştırın veya üretimde hangi kuralların gerçekten kullanıldığını manuel olarak gözden geçirin. Genellikle %30–50 oranında kullanılmayan CSS bulursunuz. 2.Kritik CSS yaklaşımını benimseyin– İlk boyama için gereken minimum stilleri satır içi yapın ve geri kalanını erteleyin. Critical veya özel Webpack eklentileri gibi araçlar bunu otomatikleştirebilir. 3.CSS özel özelliklerinden yararlanın– Tekrarı azaltır ve temalandırmayı basitleştirir. GitHub'ın yeni tasarım token sistemi harika bir örnektir. 4.BEM veya işlevsel CSS kullanın– Çalışma zamanı izolasyonu olmadan çakışmaları önleyen bir adlandırma kuralı seçin. 5.Aşamalı olarak test edin – Her seferinde bir bileşeni taşıyın ve Gerçek Kullanıcı İzleme ile performansı izleyin.

“En büyük keşif, düz CSS'in iyi organize edildiğinde, GitHub kadar karmaşık bir sitede bile hayal ettiğimizden çok daha iyi ölçeklenebilmesiydi.”

Basitliği Kucaklayın

GitHub'ın başarı hikayesi, bazen en iyi aracın tarayıcıların zaten mükemmel bir şekilde anladığı araç olduğunu güçlü bir şekilde hatırlatır. Daha fazla CSS – titizlikle hazırlanmış, temizlenmiş ve bölünmüş – göndererek, kullanıcılarına daha hızlı ve daha akıcı bir deneyim sunarken kendi geliştirme yığınlarını da basitleştirdiler.

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

DivMagic ile bu basitlik artık her proje için ulaşılabilir. CSS-in-JS'in sürtünmesini atlayabilir, beğendiğiniz herhangi bir kullanıcı arayüzünü çıkarabilir ve harika deneyimler oluşturmaya odaklanabilirsiniz. Bir dahaki sefere import styled from 'styled-components' yapmak üzereyken kendinize sorun: düz CSS bunu daha iyi yapabilir mi? Cevap evet olabilir.

DivMagic ile Oluşturmaya Bugün Başlayın

Herhangi bir web sitesinden kod kopyalayıp kendi projelerinde kullanmak için 10.000'den fazla geliştiriciye, tasarımcıya ve işletme sahibine katılın.

Get DivMagic for 42% off

Limited time deal for 22:45