- Web’de masonry düzenini uygulamak için yeni bir CSS özelliği olan Grid Lanes, Safari Technology Preview 234’e eklendi
display: grid-lanes özelliği kullanılarak media query olmadan duyarlı grid oluşturulabiliyor ve grid-template-columns ile esnek sütun tanımları yapılabiliyor
item-tolerance özelliği ile öğe yerleşiminin hassasiyeti ayarlanabiliyor, içerik boyutu farklarından kaynaklanan görsel dengesizlik azaltılabiliyor
- Hem sütun hem satır yönü destekleniyor; akış,
grid-template-columns veya grid-template-rows tanımına göre otomatik belirleniyor
- CSS Working Group bazı ayrıntılı özellik adlarını tartışıyor ve WebKit ekibi standardizasyon ile implementasyonu eşzamanlı yürütüp geliştiricileri denemeye teşvik ediyor
CSS Grid Lanes genel bakış
- Grid Lanes, Web’de masonry tarzı düzeni yerel CSS ile uygulamak için yeni bir görüntüleme modu
display: grid-lanes kullanılarak mevcut gride benzer söz dizimiyle yapılandırılabiliyor
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)) ile minimum 250px genişliğinde esnek sütunlar oluşturulabiliyor
gap özelliğiyle öğeler arası boşluk belirleniyor ve media query kullanmadan tüm ekran boyutlarına uyum sağlanıyor
- Safari Technology Preview 234’te denenebiliyor, WebKit bir demo sayfası sunuyor
Grid Lanes nasıl çalışıyor
- Tarayıcı her öğeyi en üstteki konuma en yakın sütuna otomatik olarak yerleştiriyor
- Masonry.js’ye benzer şekilde, sonraki öğe o anda en kısa olan sütuna ekleniyor
- Kullanıcı, sekme ile gezinirken o anda görünen içeriği yatay yönde keşfedebiliyor
- Sonsuz kaydırmalı içerik yükleme durumlarında JavaScript olmadan da otomatik sıralama yapılabiliyor
CSS Grid’in genişletilmiş özellikleri
- lane boyutlarını çeşitlendirme:
grid-template-* söz dizimiyle dar ve geniş sütunlar dönüşümlü yerleştirilebiliyor
- Örnek:
grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr) minmax(16rem, 2fr)) minmax(8rem, 1fr)
- Öğe genişletme (span) desteği
- Belirli bir öğe birden fazla sütuna yayılabiliyor (
grid-column: span 4 gibi)
- Örnek demo: gazete makalesi tarzı düzen
- Açık yerleşim mümkün
- Örn:
header { grid-column: -3 / -1; } ile başlık son sütunlara sabitlenebiliyor
Yön değiştirme özelliği
- Sütun tabanlı (waterfall) veya satır tabanlı (brick) düzenlerin ikisi de destekleniyor
grid-template-columns tanımlanırsa sütun yönü, grid-template-rows tanımlanırsa satır yönü otomatik seçiliyor
- Varsayılan değer
grid-auto-flow: normal; sistem tanımlanan yöne göre otomatik karar veriyor
- CSS Working Group, akış kontrolü için kullanılacak özelliklerin adlarını (
grid-lanes-direction vb.) tartışıyor
- İlgili tartışmalar GitHub CSSWG-drafts issue’larında sürüyor
Yerleşim hassasiyetini ayarlama: item-tolerance
item-tolerance, öğeleri yerleştirirken boyut farklarının ne kadar katı ayırt edileceğini belirliyor
- Varsayılan değer
1em; bunun altındaki farklar aynı yükseklikmiş gibi değerlendiriliyor
- Değer yükseldikçe öğeler sağa sola daha az kayıyor, düştükçe daha ince konum ayarı yapılıyor
- Erişilebilirlik açısından, sekmeyle gezinirken görsel sıçramayı en aza indirmek için uygun bir değer belirlemek gerekiyor
- Özellik adı şu anda
item-tolerance olarak tanımlı, ancak flow-tolerance veya pack-tolerance olarak değişebilir
Deneyler ve kullanım örnekleri
Gelecek planları
- CSS Working Group, kalan özellik adlarını belirleme çalışmalarını sürdürüyor
- WebKit ekibi 2022 ortalarından beri implementasyon ve standardizasyon çalışmalarını birlikte yürütüyor
- Geliştiricilere demo hazırlama ve geri bildirim verme çağrısı yapılıyor
- Jen Simmons, Bluesky ve Mastodon üzerinden görüş topluyor
- Temel söz dizimi istikrar kazandığı için gerçek projelerde kullanıma hazırlık tamamlanmış durumda
2 yorum
O zaman Safari için
Grid-lanes, Firefox için de ayrıgridkullanmak gerekecek, değil mi? Biraz web standartlarına göre uyum sağlasanız keşke...Hacker News görüşleri
Safari ekibini alkışlıyorum. Ekim ayında birdenbire Interop 2025 sıralamasında zirveye çıkmaları gerçekten şaşırtıcıydı
CSS Gap Decorations özelliğinin bir an önce gelmesini istiyorum. flex ya da grid öğeleri arasına güzel ayırıcı çizgiler koymak için sürekli gereksiz hack'ler kullanmaktan bıktım
Son projede Masonry düzeni kullandım; performans fena değil ama absolute positioning temelli olduğu için oldukça hacky. Nesnelerin en-boy oranını önceden bilmeniz gerekiyor ve yeniden boyutlandırmada tekrar hesaplama yapmak gerekiyor. Bu yüzden yerel desteğin bir an önce gelmesini umuyorum
Bu tür duyurular harika ama biraz da trajik komedi gibi. Apple tarayıcıyı sürekli güncellemediği için, yeni özelliklere gerçekten güvenip kullanabileceğiniz zaman çok daha sonra geliyor
Masonry düzeni güzel görünüyor ama tüm görselleri bir bakışta kavramayı zorlaştırdığını düşünüyorum
Adına neden Masonry demediklerini merak ediyorum. Yine de grid-lanes adı açıklayıcı olduğu için anlaması kolay
LLM'lerin bu yeni CSS söz dizimini doğru şekilde öğrenmesinin ne kadar süreceğini merak ediyorum
Rastgele boyut ve konumdaki metinlerden oluşan bir grid içeren web sayfasına bakmak zorunda kalacaksam, biri beni vursa daha iyi
Gazete tarzı grid demo görseli
Ben kişisel olarak lane düzenini sevmiyorum. Listedeki tüm öğeleri sırayla gözden geçirmek zorlaşıyor, bakışlar yukarı aşağı sıçrıyor ve bu da bilişsel yorgunluğu artırıyor
Apple'ın Safari'yi tüm platformlarda istikrarlı biçimde indirilebilir hâle getirmesi gerektiğini düşünüyorum