React UI kütüphanesi seçimi: 2026'da hangi durumda hangisi?
MUI, Ant Design, Mantine, Chakra ve shadcn/ui — npm rakamlarıyla güncel tablo, Server Components'in seçime etkisi ve asıl soru: bağımlılık mı istiyorsun, kodun sahipliği mi?
"En iyi React UI kütüphanesi hangisi?" sorusunun cevabı yok, çünkü soru yanlış. Doğru soru şu: projeyi kim, ne kadar süre, hangi kısıtlarla sürdürecek? Üç haftada teslim edilecek bir yönetim paneliyle beş yıl yaşayacak bir ürünün cevabı aynı değil.
Bu yazı 2026 itibarıyla güncel rakamlarla başlıyor, sonra seçimi belirleyen iki gerçek ayrımı anlatıyor: sahiplik modeli ve Server Components sınırı.
Önce tablo
2 Eylül 2026 itibarıyla npm kayıt defterinden:
| Paket | Sürüm | React peer | Haftalık indirme |
|---|---|---|---|
@radix-ui/react-dialog | 1.1.23 | ^16.8 – ^19 | 71.400.000 |
@mui/material | 9.4.0 | ^17 || ^18 || ^19 | 10.360.000 |
react-aria-components | 1.21.0 | ^16.8 – ^19 | 4.020.000 |
antd | 6.6.2 | >=18 | 3.750.000 |
@mantine/core | 9.6.0 | ^19.2.0 | 2.550.000 |
@chakra-ui/react | 3.37.0 | >=18 | 1.800.000 |
@heroui/react | 3.2.4 | >=19 | 536.000 |
Bu tablonun en çarpıcı satırı ilki. Radix'in tek bir bileşeni, bütün "hazır" kütüphanelerin toplamından daha fazla indiriliyor. Sebebi şu: Radix bir kütüphane değil, başsız (headless) bir davranış katmanı — görünüm getirmiyor, yalnız erişilebilirlik ve klavye davranışını çözüyor. shadcn/ui de dahil pek çok şey onun üstüne kuruluyor.
Yani pazar "hazır bileşen paketi kur" modelinden "davranışı hazır al, görünümü kendin yaz" modeline kaymış durumda. Seçimini yaparken asıl ayrım bu.
Ayrım 1: Bağımlılık mı, sahiplik mi?
Bağımlılık modeli (MUI, Ant Design, Mantine, Chakra): Paketi kurarsın,
bileşenleri import edersin. Tasarımı onların tema sistemi üzerinden
değiştirirsin. Yükseltme geldiğinde npm update yaparsın.
Sahiplik modeli (shadcn/ui): Bileşenin kaynak kodu bir CLI komutuyla senin
projene kopyalanır. components/ui/button.tsx artık senin dosyan. İstediğin
gibi değiştirirsin — ama yükseltmeyi de sen yaparsın.
İkisinin de bedeli var ve bedel projenin ömrüne göre değişiyor:
- Bağımlılık modeli hızlı başlatır. Bedeli, tasarımın kütüphanenin izin
verdiği kadar özgün olabilmesi. Tema sisteminin dışına çıkmak istediğin an
!importantsavaşına giriyorsun. - Sahiplik modeli özgür bırakır ama başlangıç yükü daha ağır ve bakım tamamen sende. Buna karşılık kütüphanenin büyük sürüm geçişi seni ilgilendirmiyor.
Chakra UI v3, v2'nin devamı değil; stil katmanı Panda CSS'e, bileşen mantığı
Ark UI'ya taşınmış bir yeniden yazım. Yani v2 kullanan bir projede
yükseltme bir npm update değil, bir göç projesi. Bağımlılık modelinin gerçek
maliyeti tam olarak bu — kütüphanenin yön değiştirmesi senin takvimini
belirliyor.
Aynı riskin başka bir yüzü Mantine'de: v9 artık react: ^19.2.0 istiyor. React
sürümünü yükseltemeyen bir projede kütüphaneyi de yükseltemiyorsun.
Ayrım 2: Server Components sınırı
Next.js App Router kullanıyorsan bu, seçimden daha çok mimariyi ilgilendiriyor.
Etkileşimli bileşenler — açılır menü, modal, sekme, form — durum tutuyor, olay
dinliyor ve context kullanıyor. Bunların hepsi istemci bileşeni. Yani
hangi kütüphaneyi seçersen seç, o bileşenleri kullandığın yer "use client"
sınırının içinde kalıyor ve kodu tarayıcıya iniyor.
Bir kütüphaneyi sayfanın kökünde kullanırsan (tema sağlayıcı, düzen bileşeni) sayfanın tamamını istemci tarafına çekmiş olursun. Bunun yerine sınırı yapraklarda tut: sayfa ve düzen sunucu bileşeni kalsın, yalnız etkileşimli parçalar istemci bileşeni olsun.
Sahiplik modelinin sessiz avantajı burada: dosya senin olduğu için
"use client" satırını nereye koyacağına sen karar veriyorsun. Hazır
kütüphanede bu karar paketin içinde verilmiş oluyor.
Beş seçenek, ne zaman doğru?
MUI (Material UI)
Haftada 10 milyondan fazla indirme ile en büyük tam kapsamlı kütüphane. Bileşen seti geniş, dokümantasyonu iyi, kurumsal dünyada tanınıyor.
- Doğru olduğu yer: İç kullanıma yönelik yönetim panelleri, tasarımın ayırt edici olmasının gerekmediği kurumsal uygulamalar, ekipte tasarımcı olmayan projeler.
- Yanlış olduğu yer: Marka kimliğinin öne çıkması gereken müşteriye dönük ürünler. MUI'yi Material Design'a benzemekten çıkarmak, sıfırdan yazmaktan daha çok emek istiyor.
Ant Design
Alibaba'nın kütüphanesi; veri yoğun ekranlarda çok güçlü. Tablo bileşeni tek başına pek çok kütüphanenin tamamından yetenekli: sanallaştırma, sütun sabitleme, filtreleme, dışa aktarma.
- Doğru olduğu yer: Büyük tablolar, karmaşık formlar, çok dilli ve RTL desteği gereken kurumsal paneller.
- Yanlış olduğu yer: Pazarlama siteleri ve küçük uygulamalar. Getirdiği ağırlığın karşılığını ancak veri yoğun ekranlarda alıyorsun.
Mantine
100'ün üzerinde bileşen ve — asıl değerli kısmı — kullanışlı kancalar
(useForm, useDisclosure, useLocalStorage). Görünümü Material'a göre daha
nötr, bu yüzden markalaştırması kolay.
- Doğru olduğu yer: Hızlı gitmek isteyip Material görünümü istemeyen projeler; form ağırlıklı uygulamalar.
- Dikkat: v9, React 19.2 ve üstünü zorunlu tutuyor.
Chakra UI
Erişilebilirlik ve geliştirici deneyimiyle isim yapmıştı. v3 ile Panda CSS + Ark UI üzerine yeniden yazıldı.
- Doğru olduğu yer: Yeni başlayan, v3 ile baştan kurulacak projeler.
- Dikkat: v2'de duran bir projeyi yükseltmek göç demek. Yeni bir işe başlarken bu geçişin ekosistemde henüz taze olduğunu hesaba kat.
shadcn/ui
Bir paket değil; Radix + Tailwind üzerine kurulu, projene kopyalanan bileşen koleksiyonu. Yukarıdaki tabloda görünmemesinin sebebi de bu — npm'den kurulmuyor.
- Doğru olduğu yer: Tasarımın ürünün bir parçası olduğu, uzun ömürlü projeler. Tailwind zaten kullanıyorsan sürtünmesi sıfıra yakın.
- Yanlış olduğu yer: Tailwind kullanmayan ekipler ve "kur ve geç" beklentisi olan kısa işler. Kopyalanan her bileşenin bakımı artık senin.
Karar tablosu
| Durum | Öneri |
|---|---|
| İç yönetim paneli, tasarım önemsiz | MUI ya da Ant Design |
| Veri yoğun tablolar, kurumsal | Ant Design |
| Hızlı gitmek istiyorum, Material istemiyorum | Mantine |
| Tailwind kullanıyorum, tasarım markanın parçası | shadcn/ui |
| Tasarım sistemim var, uygulayacağım | Radix / React Aria + kendi bileşenlerim |
| Prototip, bir haftalık iş | Hangisini biliyorsan o |
Son satır şaka değil: tanımadığın bir kütüphaneyi öğrenme süresi, çoğu kısa işte kütüphaneler arasındaki farktan büyük.
Ben ne kullanıyorum?
Şu an okuduğun sitede hiçbir UI kütüphanesi yok. Tailwind CSS v4, sınıf
birleştirme için clsx ve class-variance-authority, ikon için lucide-react,
hareket için motion — bileşenlerin tamamı elle yazıldı.
Bunu her projeye önermiyorum. Bu sitede işe yaramasının üç sebebi var:
- Tasarım sistemi işin kendisi. Kısıtlar (tek vurgu rengi, saç teli kenarlık, 36px buton) bir kütüphanenin varsayılanlarıyla çelişiyor; onları bastırmak yazmaktan uzun sürerdi.
- Bileşen sayısı az. Buton, rozet, kart, açılır menü. Bir tablo bileşeni yazmam gerekseydi karar başka olurdu.
- Sürdüren tek kişi benim. Ekip büyüdüğünde ortak bir kütüphanenin dokümantasyonu, elle yazılmış bileşenlerin kabile bilgisinden değerli hâle geliyor.
- Soru "hangisi en iyi" değil, "bu proje kaç yıl yaşayacak ve tasarım ne kadar önemli"
- Pazar hazır bileşenden başsız davranış katmanına kaydı — Radix tek başına hepsinden fazla indiriliyor
- Bağımlılık modeli hızlı başlatır, büyük sürüm geçişlerinde takvimini o belirler (bkz. Chakra v3)
- Sahiplik modeli özgür bırakır, bakımı sana yıkar
- App Router'da hangi kütüphaneyi seçersen seç etkileşimli bileşenler istemci tarafında;
"use client"sınırını yapraklara koy
Sürüm, React peer bağımlılığı ve indirme sayıları 2 Eylül 2026 tarihinde npm kayıt defteri ve npm indirme API'sinden alındı. Bu rakamlar hızlı değişiyor; karar vermeden önce kendin bakmanı öneririm.
Bu yazıyı faydalı bulduysan paylaşabilirsin.