Bugün kullanabileceğiniz temel özellikler

Temel Özelliklerin yalnızca bir parçası olan bazı özellikler hakkında bilgi edinin.

Mariko Kosaka

Web sürekli olarak gelişiyor ve tarayıcılar, geliştiricilere platformda yenilik sağlayacak yeni araçlar sunmak için sürekli güncelleniyor. Daha önce yardımcı kitaplıklar gerektiren özellikler, web platformunun bir parçası haline geldi ve tüm tarayıcılarda, tasarım öğelerini kodlamanın daha kısa veya kolay yollarıyla destekleniyor.

Bu sürekli evrim ve adaptasyon faydalı olsa da kafa karışıklığı yaratabilir. Tüm bu güncellemeler arasında gezinmek zor olabilir. Geliştiriciler olarak "Tüm tarayıcı motorları bu yeni özelliği ne zaman destekleyecek?" gibi sorularımız var. "Bu özellikleri üretim kodumda ne zaman kullanmaya başlayabilirim?" "Eski tarayıcıları ne kadar süreyle desteklemeliyiz?"

Doğru cevap "duruma göre değişir". Gerekli olan ve kullanılabilen öğeler kullanıcı tabanınıza, teknoloji yığınınıza, ekip yapınıza ve desteklenen cihazlara bağlıdır. Ancak hepimizin hemfikir olduğu bir şey şu: Web'in mevcut ortamı bu kararları almanın zorlaşabileceği konusunda.

Chrome ekibi daha fazla açıklık getirmek için diğer tarayıcı motorları ve web topluluğuyla ortak çalışıyor. Bir dizi temel özelliğin birlikte çalışabilirliğini iyileştirmeye yardımcı olan Interop 2023 gibi projelerdeki çalışmalarımız da buna dahildir. Peki son birkaç yılda sunulan özellikler ne olacak? İki yıl önce öğrendiğimiz deneysel özellikler kullanıma hazır mı?

Bu gönderide, son iki ana sürüm için tüm önemli tarayıcı motorlarında artık kullanılabilir olan bazı özellikleri vurgulamak istiyorum. Bu, geliştiricilerin çoğunluğunun bir özelliği kullanmanın güvenli olduğunu düşündüğü son noktadır. Bu, Temel adını verdiğimiz özellik grubudur. Daha fazla bilgi için Referans değer duyurusunu buradan inceleyebilirsiniz.

İletişim öğesi

<dialog> öğesi, pop-up'lar ve kalıcı öğeler gibi iletişim kutusu istemleri oluşturmak için kullanılan yeni bir HTML öğesidir.

Tarayıcı Desteği

  • Chrome: 37..
  • Kenar: 79..
  • Firefox: 98..
  • Safari: 15.4.

Kaynak

Bunu kullanmak için kalıcı öğeyi tanımlayın, ardından iletişim öğesinde showModal() yöntemini çağırarak iletişim kutusunu açın.

<dialog id="d">
  <form method="dialog">
    <p>Hi, I'm a dialog.</p>
    <button>ok</button>
  </form>
</dialog>

<button onclick="d.showModal()">
  Open Dialog
</button>

Odak yönetimi, sekme izleme ve yığın bağlamını koruma gibi özellikler, yerel bir HTML öğesi olarak yerleşiktir. Daha fazla bilgi için İletişim kutusu bileşeni oluşturma bölümünü okuyun.

Bağımsız CSS dönüşüm özellikleri

CSS dönüşümlerini kullanmak, sitenize hareket eklemenin etkili bir yoludur.
. Tek satırda üç özellikle CSS dönüştürmeleri yazmaya aşina olabilirsiniz.
. Bağımsız dönüşüm özellikleriyle artık dönüşüm özelliklerini ayrı ayrı belirtebilirsiniz. Bu özellik, karmaşık animasyon karesi animasyonları yazarken kullanışlıdır.

.target {
  translate: 50% 0;
  rotate: 30deg;
  scale: 1.2;
}

Tarayıcı Desteği

  • Chrome: 104..
  • Kenar: 104..
  • Firefox: 72..
  • Safari: 14.1.

Kaynak

Bu değişikliğin ayrıntılı açıklaması için Ayrı dönüşüm özelliklerine sahip CSS dönüşümleri üzerinde daha ayrıntılı kontrol başlıklı makaleyi okuyun.

Yeni görüntü alanı birimleri

Mobil cihazlarda görüntü alanı boyutu, dinamik araç çubuklarının olup olmamasından etkilenir.
. Bazen bir URL çubuğu ve gezinme araç çubuğu görünür, ancak bazen bu araç çubukları tamamen geri çekilmiş olur.
. Görüntü alanının gerçek boyutu, araç çubuklarının görünür olup olmamasına bağlı olarak farklılık gösterir.
. svh ve lvh gibi yeni görüntü alanı birimleri, mobil cihazlar için tasarım yaparken web geliştiricilerine daha hassas kontrol olanağı sunar. Daha fazla bilgi için Büyük, küçük ve dinamik görüntü alanı birimleri başlıklı makaleyi inceleyin.

Tarayıcı Desteği

  • Chrome: 108..
  • Kenar: 108..
  • Firefox: 101..
  • Safari: 15.4.

JavaScript'te derin kopyalama

Geçmişte, orijinal nesneye referans vermeden bir nesnenin derin kopyasını oluşturmak için JSON.parse ile birlikte JSON.stringify kullanılan popüler bir saldırı yöntemi kullanılıyordu. Bu, V8'in (Chrome'un JavaScript motoru) bu hilenin performansını agresif bir şekilde iyileştirdiği yaygın bir saldırıydı. Ancak structuredClone ile artık bu eğitime ihtiyacınız yok.

const original = {id: 0, prop: {name: "Tom"}}

/* Old hack */ 
const deepCopy = JSON.parse(JSON.stringify(original));

/* New way */
const deepCopy = structuredClone(original);

Tarayıcı Desteği

  • Chrome: 98..
  • Kenar: 98..
  • Firefox: 94..
  • Safari: 15.4.

Kaynak

Daha ayrıntılı bilgi için lütfen structuredClone kullanarak JavaScript'te ayrıntılı kopyalama başlıklı makaleyi inceleyin.

Sanal :focus-visible sınıfı

Web geliştiricileri olarak hepimiz bu "odak halkası" hakkında bilgi sahibiyiz. Bir sayfada klavyeyle gezinirken veya giriş öğelerini tıkladığınızda gösterilir. Erişilebilirlik için gerekli bir özelliktir ancak bazen farklı kullanıcıların görsel tasarımını engelleyebilir. :focus-visible CSS sözde sınıfı, tarayıcının odağın görünür olması gerektiğini düşünüp düşünmediğini kontrol eder. Artık yalnızca odağın görünür olması gereken durumlar için stiller belirtebilirsiniz.

/* focus with tab key */
:focus-visible {
    outline: 5px solid pink;
}

/* mouse click */
:focus:not(:focus-visible) {
    outline: none;
}

Tarayıcı Desteği

  • Chrome: 86..
  • Kenar: 86..
  • Firefox: 85..
  • Safari: 15.4.

Kaynak

Daha fazla bilgi için CSS öğrenmeyle ilgili bölüme odaklanma bölümüne göz atın.

TransformStream arayüzü

Streams API'nin TransformStream arayüzü, akışları birbirine bağlamayı mümkün kılar.

Örneğin, bir yerden veri akışı gerçekleştirebilir, ardından veriler aktarılırken veri akışını başka bir konuma sıkıştırabilirsiniz. Getirme API'siyle istek akışı başlıklı makalede, bu örnek kullanım alanı açıklanmaktadır.

Tarayıcı Desteği

  • Chrome: 67..
  • Kenar: 79..
  • Firefox: 102..
  • Safari: 14.1.

Kaynak

Son adım

Son zamanlarda web platformunda birlikte çalışabilir ve kararlı bir şekilde kullanılabilir hale gelen birçok özellik mevcuttur. Bundan sonra, bu Temel özellik gruplarını daha net hale getirmek için WebDX Topluluk Grubu ile birlikte çalışacağız. Ayrıntılı bilgi için lütfen web.dev/baseline adresine göz atın.

Gelişmelerden haberdar olmak istiyorsanız ekibimiz bir özellik birlikte çalışabilir hale geldiğinde makaleler yayınlıyor ve deneysel özelliklerden yeni birlikte çalışabileceklere kadar web platformunda olup bitenlerle ilgili aylık güncellemeler yayınlıyor.

Yaptığımız şeyin size yardımcı olup olmadığını veya farklı desteğe ihtiyacınız olup olmadığını her zaman merak ediyoruz. Bu nedenle lütfen WebDX Topluluk Grubu'ndan bize ulaşın.