shadcn/ui, geleneksel bir component kütüphanesi değil; kopyala-yapıştır mantığıyla çalışan, projenize doğrudan dahil olan ve üzerinde tam kontrol sahibi olduğunuz bir bileşen koleksiyonudur. Radix UI’ın erişilebilirlik gücünü ve Tailwind CSS’in esnekliğini birleştirir.
shadcn/ui’ı her projede (Next.js, Vite, Remix vb.) standart bir yapıyla kurmak, sürdürülebilirliği artırır.
pnpm dlx shadcn@latest init
Bu komut components.json dosyasını oluşturur ve src/components/ui klasörünü hazırlar. UI bileşenleri buraya iner; sizin yazdığınız iş mantığı içeren bileşenler ise src/components/ altında kalmalıdır.
E-ticaret sitelerinde kullanıcı etkileşimi ve hız kritiktir.
Sheet): Sağdan açılan (Drawer/Sheet) bir sepet yapısı için Sheet bileşenini kullanın.Slider & Checkbox): Fiyat aralığı için Radix tabanlı Slider, kategoriler için Checkbox idealdir.Carousel): Ürün detay sayfasında kaydırılabilir alanlar için shadcn/ui’ın Embla Carousel tabanlı bileşenini ekleyin.DataTable): TanStack Table ile entegre olan DataTable bileşeni, binlerce siparişi filtrelemek ve sıralamak için en güçlü araçtır.Landing page yapılarında görsel hiyerarşi ve SSS bölümleri öne çıkar.
Accordion): Yer kaplamayan, temiz bir soru-cevap alanı için.Button): Shadcn’in variant yapısını kullanarak outline, ghost veya destructive butonlar oluşturun.NavigationMenu): Karmaşık dropdown menüler ve “Mega Menu” yapıları için Radix’in erişilebilir menü yapısını kullanın.İçerik yoğun projelerde tipografi ve yükleme hızları önemlidir.
Avatar): Yazarların profil fotoğraflarını placeholder desteğiyle sunar.Badge): İçerik kategorilerini ve metadataları şık bir şekilde gösterir.Skeleton): İçerik yüklenirken “layout shift” olmaması için içerik bloklarının taslağını gösterin.shadcn/ui’ın en büyük avantajı, stilin globals.css içindeki CSS Variables üzerinden yönetilmesidir.
themes kısmından projenin kurumsal renklerini primary, secondary, accent gibi değişkenlere atayın:
@layer base {
:root {
--primary: 221.2 83.2% 53.3%; /* Marka rengi */
--radius: 0.5rem;
}
}
src/components/ui/button.tsx dosyasını açıp doğrudan Tailwind class’larını değiştirebilirsiniz. Bu, kütüphaneyi “fork” etmek gibidir; kütüphane size değil, siz kütüphaneye hükmedersiniz.
Form bileşeni react-hook-form ve zod ile tam uyumludur. Client-side validation için mutlaka bu üçlüyü kullanın.pnpm dlx shadcn@latest add [component-name] ile projenize ekleyin. Tüm kütüphaneyi yükleyerek bundle size’ı şişirmemiş olursunuz.shadcn/ui bir paket olmadığı için npm update ile güncellenmez. Yeni sürümleri takip etmek için:
Bu rehber, projenizin türü ne olursa olsun başlangıçtan yayına kadar shadcn/ui’ı en verimli şekilde kullanmanızı sağlayacaktır.