Tailwind CSS, utility-first yaklaşımıyla CSS dünyasını dönüştürdü. 2026'da yayınlanan Tailwind CSS 4, bu dönüşümü bir adım öteye taşıyor. Yepyeni Oxide engine, CSS-first konfigürasyon, Lightning CSS entegrasyonu ve radikal performans iyileştirmeleriyle Tailwind CSS 4, modern web projelerinin vazgeçilmez aracı. Bu yazıda v4'ün tüm yeniliklerini, migration rehberini ve en iyi pratikleri ele alıyoruz.
Tailwind CSS 4'te Neler Değişti?
Oxide Engine: Rust Tabanlı Yeni Motor
Tailwind CSS 4'ün en büyük değişikliği, tamamen Rust ile yeniden yazılmış Oxide engine. Bu yeni motor:
- Build süresi: v3'e kıyasla 5x hızlı tam derleme
- Incremental build: 100x hızlı artımlı derleme (dosya değişikliklerinde)
- Bellek kullanımı: %50 daha az RAM tüketimi
- Startup süresi: Anında başlangıç, bekleme yok
Pratikte bu ne anlama geliyor? Büyük projelerde bile CSS dosyanız milisaniyeler içinde güncelleniyor. tailwind --watch komutu artık neredeyse anlık.
CSS-First Konfigürasyon
v3'te tailwind.config.js dosyası kullanılıyordu. v4'te konfigürasyon doğrudan CSS dosyanızda yapılıyor:
/* v3 — tailwind.config.js */
/* module.exports = {
theme: {
extend: {
colors: {
primary: '#6366f1',
secondary: '#8b5cf6',
},
fontFamily: {
sans: ['Inter', 'sans-serif'],
}
}
}
} */
/* v4 — doğrudan CSS dosyasında */
@import "tailwindcss";
@theme {
--color-primary: #6366f1;
--color-secondary: #8b5cf6;
--font-sans: 'Inter', sans-serif;
--breakpoint-sm: 640px;
--breakpoint-md: 768px;
--breakpoint-lg: 1024px;
--breakpoint-xl: 1280px;
}
Bu yaklaşımın avantajları:
- IDE desteği: CSS syntax highlighting ve autocomplete doğrudan çalışır
- Tek kaynak: Konfigürasyon ve stiller aynı yerde
- CSS custom properties: Tema değerleri CSS custom property olarak erişilebilir
- JavaScript bağımlılığı yok: Konfigürasyon için JS gereksiz
Lightning CSS Entegrasyonu
Tailwind CSS 4, PostCSS yerine Lightning CSS kullanıyor. Bu Rust tabanlı CSS işlemcisi:
- Otomatik vendor prefix ekleme
- CSS nesting desteği (native)
- Otomatik minification
- Modern CSS syntax dönüşümü
Artık autoprefixer veya postcss-nesting gibi eklentilere ihtiyaç yok — hepsi yerleşik.
Yeni Özellikler
1. Container Queries (Yerleşik):
<div class="@container">
<div class="@sm:flex @sm:gap-4 @lg:grid @lg:grid-cols-3">
<div class="@sm:w-1/3 @lg:w-auto">
<!-- Responsive layout, parent container'a göre -->
</div>
</div>
</div>
Container queries, viewport yerine parent element'in boyutuna göre responsive tasarım yapmanızı sağlar. Component tabanlı tasarımda devrim niteliğinde.
2. Native CSS Nesting:
.card {
@apply rounded-lg shadow-md;
&:hover {
@apply shadow-xl;
}
& .title {
@apply text-xl font-bold;
}
& .description {
@apply text-gray-600;
}
}
3. Wide Gamut Renk Desteği:
@theme {
--color-vivid-blue: oklch(0.6 0.25 260);
--color-vivid-green: oklch(0.7 0.3 145);
--color-vivid-red: oklch(0.6 0.25 25);
}
OKLCH renk uzayı, daha canlı ve algısal olarak tutarlı renkler sunar. sRGB sınırlamalarını aşarak özellikle P3 destekli ekranlarda çarpıcı sonuçlar verir.
4. 3D Transform Utility'leri:
<div class="rotate-x-12 rotate-y-6 perspective-800">
<div class="translate-z-20 backface-hidden">
3D dönüştürülmüş element
</div>
</div>
v3'ten v4'e Migration Rehberi
Adım 1: Bağımlılıkları Güncelleyin
npm install tailwindcss@latest
# PostCSS ve autoprefixer artık gereksiz (Tailwind 4 yerleşik)
npm uninstall autoprefixer postcss-nesting
Adım 2: Konfigürasyonu CSS'e Taşıyın
tailwind.config.js dosyanızdaki özelleştirmeleri @theme bloğuna taşıyın:
@import "tailwindcss";
@theme {
/* colors */
--color-primary: #6366f1;
--color-primary-dark: #4f46e5;
--color-secondary: #8b5cf6;
/* spacing (ek değerler) */
--spacing-18: 4.5rem;
--spacing-88: 22rem;
/* border radius */
--radius-xl: 1rem;
--radius-2xl: 1.5rem;
/* shadows */
--shadow-soft: 0 2px 15px -3px rgba(0,0,0,0.07);
}
Adım 3: Kaldırılan Class'ları Güncelleyin
Bazı class isimleri v4'te değişti:
| v3 | v4 |
|---|---|
decoration-clone |
box-decoration-clone |
decoration-slice |
box-decoration-slice |
overflow-ellipsis |
text-ellipsis |
flex-grow-0 |
grow-0 |
flex-shrink-0 |
shrink-0 |
Adım 4: PostCSS Konfigürasyonunu Temizleyin
postcss.config.js dosyanızı sadeleştirin:
// v3 — postcss.config.js
// module.exports = {
// plugins: {
// 'tailwindcss/nesting': {},
// tailwindcss: {},
// autoprefixer: {},
// }
// }
// v4 — sadece tailwindcss yeterli
module.exports = {
plugins: {
tailwindcss: {},
}
}
Tailwind CSS vs CSS-in-JS Karşılaştırması
2026'da hâlâ sıkça sorulan soru: "Tailwind mı, styled-components/Emotion mı?"
| Özellik | Tailwind CSS 4 | styled-components | CSS Modules |
|---|---|---|---|
| Runtime maliyeti | Sıfır | ~12 KB + runtime | Sıfır |
| Build süresi | Çok hızlı (Rust) | Orta | Hızlı |
| Bundle boyutu | 8-15 KB (purged) | 20-40 KB | Değişken |
| DX (Geliştirici deneyimi) | Hızlı iterasyon | Type-safe | Modüler |
| SSR uyumu | Mükemmel | Ekstra setup | İyi |
| RSC uyumu | Tam uyumlu | Sınırlı | Tam uyumlu |
| Öğrenme eğrisi | Orta | Düşük | Düşük |
| Design system | @theme ile kolay | ThemeProvider | Değişken |
Tailwind CSS 4'ün en büyük avantajı sıfır runtime maliyeti ve RSC ile tam uyumluluk. CSS-in-JS çözümlerinin çoğu runtime JavaScript gerektirdiği için Server Components'te sorun çıkarıyor.
En İyi Pratikler
1. Component Bazlı Soyutlama
Tekrarlayan class dizilerini component'lere soyutlayın, @apply'a değil:
// Kötü — @apply ile CSS soyutlama
// .btn-primary { @apply px-4 py-2 bg-primary text-white rounded-lg; }
// İyi — React component soyutlama
function Button({ children, variant = "primary", ...props }) {
const styles = {
primary: "bg-primary text-white hover:bg-primary-dark",
secondary: "bg-secondary text-white hover:bg-secondary/90",
outline: "border-2 border-primary text-primary hover:bg-primary/10",
};
return (
<button
className={`px-4 py-2 rounded-lg font-medium transition-colors ${styles[variant]}`}
{...props}
>
{children}
</button>
);
}
2. Design Token'larını @theme ile Yönetin
@theme {
/* Renk sistemi — semantic isimlendirme */
--color-background: #ffffff;
--color-foreground: #0f172a;
--color-muted: #64748b;
--color-accent: #6366f1;
--color-destructive: #ef4444;
--color-success: #22c55e;
/* Typography scale */
--font-display: 'Cal Sans', sans-serif;
--font-body: 'Inter', sans-serif;
--font-mono: 'JetBrains Mono', monospace;
/* Spacing scale (ek) */
--spacing-page: 1.5rem;
--spacing-section: 4rem;
/* Animation */
--animate-fade-in: fade-in 0.3s ease-out;
--animate-slide-up: slide-up 0.4s ease-out;
}
@keyframes fade-in {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes slide-up {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: translateY(0); }
}
3. Responsive Tasarımda Mobile-First
<!-- Mobile-first yaklaşım -->
<div class="
grid grid-cols-1 gap-4 p-4
md:grid-cols-2 md:gap-6 md:p-6
lg:grid-cols-3 lg:gap-8 lg:p-8
">
<!-- Kartlar -->
</div>
4. Dark Mode
<div class="bg-white text-gray-900 dark:bg-gray-900 dark:text-gray-100">
<h1 class="text-primary dark:text-primary/90">Başlık</h1>
<p class="text-gray-600 dark:text-gray-400">Açıklama</p>
</div>
5. Performans İpuçları
- Kullanılmayan class'lar otomatik temizlenir: Tailwind 4'te purge varsayılan
- Dinamik class isimlerinden kaçının:
bg-${color}-500yerine tam class ismi kullanın - @layer ile organizasyon: Base, components, utilities katmanlarını kullanın
- Tailwind Merge: clsx + twMerge ile çakışan class'ları yönetin
Sonuç
Tailwind CSS 4, Rust tabanlı Oxide engine ile performansta çıtayı yükseltiyor, CSS-first konfigürasyonla geliştirici deneyimini iyileştiriyor ve container queries, wide gamut renkler gibi modern CSS özelliklerini yerleşik olarak sunuyor. v3'ten migration nispeten kolay ve faydaları büyük.
Maviona olarak tüm projelerimizde Tailwind CSS 4 kullanıyoruz. Hız, tutarlılık ve bakım kolaylığı açısından 2026'nın en güçlü CSS çözümü.
Projeniz için modern, performanslı ve bakımı kolay bir tasarım altyapısı istiyorsanız, Maviona'nın hizmetlerine göz atın.
