Modern CSS, framework bağımlılığını azaltacak kadar güçlenmiştir. Container Queries, CSS Layers, :has() selector ve cascade layers gibi yeni özellikler, daha temiz ve bakımı kolay stil kodu yazmayı mümkün kılmaktadır.
Container Queries — Ebeveyne Göre Duyarlı Tasarım
Medya sorguları viewport'a bakarken Container Queries, elemanın kapsayıcısına bakar. Aynı bileşen farklı boyutlardaki konteynerlerde farklı görünür.
// CSS //
/* Kapsayıcıyı tanımla */.kart-kapsayici { container-type: inline-size; container-name: kart;}/* Kapsayıcı genişliğine göre stil */@container kart (min-width: 400px) { .kart { display: grid; grid-template-columns: 160px 1fr; gap: 1rem; } .kart__resim { aspect-ratio: 1; }}@container kart (min-width: 600px) { .kart__baslik { font-size: 1.5rem; } .kart__akciyonlar { display: flex; gap: 0.5rem; }}/* Sidebar'da küçük, ana içerikte büyük görünür — aynı bileşen */
CSS Layers — Cascade Yönetimi
// CSS //
/* Katman sırası en başta tanımla — önem azdan çoğa */@layer varsayilan, temel, bilesen, yardimci;@layer varsayilan { /* Reset ve tarayıcı varsayılanları */ *, *::before, *::after { box-sizing: border-box; } * { margin: 0; }}@layer temel { /* Proje geneli temel stiller */ :root { --renk-birincil: #0ea5e9; --yazi-ailesi: 'Inter', system-ui, sans-serif; } body { font-family: var(--yazi-ailesi); line-height: 1.6; }}@layer bilesen { /* Bileşen stilleri */ .buton { background: var(--renk-birincil); padding: 0.5rem 1rem; border-radius: 0.375rem; }}@layer yardimci { /* Yardımcı sınıflar — en yüksek öncelik */ .gizle { display: none !important; } .blok { display: block !important; }}/* @layer dışındaki stiller tüm katmanlardan önce gelir */
:has() — Parent Selector
// CSS //
/* Resim içeren kartlar farklı görünsün */.kart:has(img) { padding: 0; overflow: hidden;}.kart:has(img) .kart__icerik { padding: 1rem;}/* Hatalı input olan form farklı görünsün */.form:has(input:invalid) .gonder-buton { opacity: 0.5; pointer-events: none;}/* Açık dropdown'ı içeren navigasyon */nav:has(.dropdown[open]) { background: rgba(0, 0, 0, 0.05);}/* Seçili checkbox olan liste öğesi */li:has(input[type="checkbox"]:checked) { text-decoration: line-through; opacity: 0.6;}
Modern CSS artık tasarım sistemlerini ve karmaşık düzenleri framework yardımı olmadan çözebilir. Container Queries bileşen merkezli duyarlı tasarımı, CSS Layers cascade karmaşasını, :has() mantıksal seçim ihtiyacını karşılar. Bu özellikleri projenize entegre ederek CSS kod tabanınızı dramatik biçimde sadeleştirebilirsiniz.