Şirket genelinde kullanılacak bir design system / component library nasıl kurarsınız?
Cevap
Design system; design token'lar, erişilebilir temel bileşenler, dokümantasyon ve sürümleme sürecinden oluşan bir üründür. Amaç tutarlılık ve ekiplerin hızlanmasıdır.
Katmanlar
- Design tokens: Renk, boşluk, tipografi, radius, gölge. Tek kaynaktan (ör. JSON, Style Dictionary) CSS custom property'lerine dönüştürülür; tema (dark mode, marka) değişkenleri değiştirerek yapılır.
- Primitives:
Box,Stack,Textgibi layout yapı taşları. - Bileşenler:
Button,Dialog,Combobox... Davranış ve erişilebilirlik için çoğu zaman headless kütüphaneler (Radix UI, React Aria) üzerine stil giydirilir. - Pattern'ler: Form layout, boş durum, tablo gibi kalıplar.
Bileşen API ilkeleri
- Native özellikleri geçir (
...props,ref),classNameile genişletmeye izin ver. variant,sizegibi sınırlı seçenekler; serbest stil yerine tasarım kısıtları.- Composition:
<Dialog><Dialog.Title/><Dialog.Content/></Dialog>.
Altyapı
- Monorepo (pnpm workspaces, Turborepo), tree-shake edilebilir ESM çıktı,
sideEffects: false. - Storybook ile dokümantasyon, Chromatic/Playwright ile visual regression, axe ile otomatik a11y testi.
- Semver ve Changesets ile changelog; breaking change'ler için codemod ve deprecation süresi.
Benimsetme
Kütüphane yazmak işin yarısıdır: katkı rehberi, tasarım (Figma) ile kod arasında aynı isimlendirme ve kullanım metrikleri gerekir.
İlgili Frontend Sistem Tasarımı soruları
- Bir autocomplete (typeahead) arama bileşenini nasıl tasarlarsınız?
- Bir frontend sistem tasarımı mülakatına nasıl yaklaşırsınız? Hangi adımları izlersiniz?
- Offline-first çalışan bir web uygulamasını (ör. not alma uygulaması) nasıl tasarlarsınız?
- Çok dilli (i18n) bir frontend uygulamasını nasıl tasarlarsınız?
- Micro-frontend mimarisi nedir? Ne zaman tercih edilir, dezavantajları nelerdir?
- Büyük bir React uygulamasında state management mimarisini nasıl kurgularsınız?
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.