EffCSS v5: Native API Tabanlı Tip Güvenli CSS-in-TS
EffCSS v5, CSSStyleSheet ve adoptedStyleSheets kullanan sıfır bağımlılıklı CSS-in-TS kütüphanesi. Contract-first tasarım ve framework bağımsız yapısıyla dikkat çekiyor.
EffCSS, runtime enjeksiyonu veya build eklentileri yerine tarayıcının native CSSStyleSheet ve adoptedStyleSheets API'lerini kullanan, sıfır bağımlılıklı ve framework bağımsız bir CSS-in-TS kütüphanesidir. Version 5, v4'teki useStyleProvider/TStyleSheetMaker desenini terk ederek variable, animation, layer, container ve font gibi bağımsız yardımcı fonksiyonlara dayanan çok daha sade bir API sunuyor. Bu fonksiyonlar sırasıyla @property, @keyframes, @layer, @container ve @font-face kurallarını üretiyor.
Kütüphanenin öne çıkan özelliği contract-first yaklaşımı: geliştiriciler tasarım sistemini bir TypeScript type olarak tanımlıyor, ardından attributes veya classNames fonksiyonlarıyla bu tipe uygun scoped selector'lar üretiliyor. Bu sayede seçici isimlerinde yazım hatası yapmak imkansız hale geliyor ve otomatik tamamlama desteği geliyor. className ve attribute gibi daha basit fonksiyonlarla ad-hoc CSS kuralları da oluşturulabiliyor; serialize fonksiyonu ise SSR senaryoları için stylesheet'leri HTML string'e dönüştürüyor.
EffCSS özellikle tasarım sistemi kütüphaneleri, component library'ler ve TypeScript DX'ine önem veren ekipler için uygun bir seçenek. Tailwind'in utility-first felsefesinden farklı, component-scoped bir paradigma sunuyor; yaklaşık 3.7 KB minified boyutuyla tam sıfır-runtime çözümlerden (Linaria, vanilla-extract) ayrışıyor. Mikro-frontend ve çoklu takım senaryolarında her stylesheet'in varsayılan olarak izole olması da önemli bir avantaj olarak öne çıkıyor.