Bir önceki yazımda bahsettiğim gibi CSS’in yeni özelliklerinin bazıları çığır açan özellikler, bazıları kulllanıcı deneyimini iyileştirme yönünde özellikler bazıları da lightdark() fonksiyonu gibi yazım kolaylığı sağlayan özellikler.

lightdark() fonksiyonu mevcut uyumlu web yazımındaki büyük sorun olan aşağıdaki kullanımı daha anlaşılır ve düzenli hale getirmeye yarıyor.

:root {
  color-scheme: light dark;

  --dark-color: #292524;
  --light-color: #f5f5f4;

  --text-color: var(--dark-color);
  --bg-color: var(--light-color);
}

@media (prefers-color-scheme: dark) {
  :root {
    --text-color: var(--light-color);
    --bg-color: var(--dark-color);
  }
}

body {
  color: var(--text-color);
  background-color: var(--bg-color);
}

Bu tip koyu/açık tanımlarını ayrı ayrı yapmak yerine

:root {
  color-scheme: light dark;

  --light: #292524;
  --dark: #f5f5f4;
}

body {
  color: light-dark(var(--light), var(--dark));
  background-color: light-dark(var(--dark), var(--light));
}

Böylece daha kısa ve anlaşılır bir kod yapısına kavuşmuş oluyoruz.

Geliştirici araçlarındaki Styles sekmesindeki sağdan ikinci ikon yardımıyla dark / light arasında geçiş yapıp durumu simüle edebiliriz.

Developer tool light dark

Mevcut kodlarımızda kod boyutunu azaltacak bir özellik.

Bu yazıyı yazdığımda tüm tarayıcıların yeni sürümlerinde desteği vardı. Türkiye’de oran %85. Güzel oran.

Kaynaklar

CSS’in yeni özellikleri bazen çığır açan nitelikte (anchor positioning, :has() seçicisi, vb.) olurken bazen yazıma yardımcı kurallar (iç içe yazım, @property) oluyor bazen de genel kullanılan kullanıcı deneyimi arttırıcı özellikleri oluyor. field-size özelliği genel kullanıcı deneyimini arttırıcı bir özellik. field-size özelliği genelde javascript ile çözdüğümüz bir ihtiyacı karşılıyor. Artık CSS ile kolayca bu ihtiyacımızı giderebiliyoruz. Genelde textarea alanlarına yazılan uzun içerikler için kullanıcıya sunulan dar alanları büyütmek için kullandığımız kullanıcı metin girdikçe uzayan textarea alanları için tanımlanmış bir özellik.

Bu durum masaüstünde daha az sinir bozucuyken mobilde daha sinir bozucu bir durum oluşturuyor.

Javascript ile yazılmış bir sürü script örneği ve makalesi mevcut bu durumu çözen ancak bir satır CSS kodu ile çözmenin hazzını hiçbiri vermiyor. :)

Ben yukarıda textarea için dediysem de uygulamada input, textarea ve select elemanlarına uygulanabiliyor. Örnekler yardımıyla daha iyi anlaşılacak.

Yukarıdaki örnekte normal durumda textarea içinde içerik girdikçe veya enter’a bastıkça sağda kaydırma çubuğu çıkarken field-size tanımı yapılan textarea‘da içerik girdikçe veya enter’a basıldıkça textarea otomatik olarak artmaktadır.

input içinde bir örnek yapalım.

Yukarıdaki örnekte normal input‘ta içeriği uzattığımızda içerik sağa doğru kayarken field-sizing: content; uygulanan örnekte içerik girildikçe input genişliyor.

Bir diğer uygulanan elemanda <select>

<select> farklılıkları normalde içeriğe göre genişlik sabit olurken field-sizing: content; tanımlı select’te içeriği uzun olanda genişlik uzuyor kısa olanda kısa kalıyor.

Blink (Chrome, Edge, Opera, Arc) tabanlı tarayıcılarda bu özelliğin desteği var. Firefox desteğinin yakında geleceği haberi geldi. Safari ekibinin de geliştirme aşmasında olduğunu biliyoruz.

Kalın sağlıcakla.

Kaynaklar

Yaşlandıkça böyle ihtiyaçlar doğuyor galiba. Belki ihtiyacı olan olur diye buraya not edeyim. Chrome Dev Tools gibi araçlarda başlangıçtaki görünüm küçük kalabiliyor. Benim için küçük mesela :)

Yazı boyutlarını büyütmek için Cmd + + and Cmd + - (Windows’ta Cmd yerine Ctrl kullanın). Ancak bu kısayol İngilizce klavye için Türkçe klavyelerde bunu yapmak için

Büyütmek için: cmd + . veya cmd + shift + p ile açılan menüye zoom inyazarakta oluyor. Küçültmek için: cmd + - Başlangıç değerine dönmek için: cmd + 0

Safari

Büyütmek için: Kısayol bulamadım ancak Geliştirme aracının sağ üst köşesindeki ayarlar ikonuna tıklayıp gelen General sekmesinde en altta zoom seviyesini belirleyebiliyoruz. Küçültmek için: cmd + - Başlangıç değerine dönmek için: cmd + 0

Firefox

Büyütmek için: Adres barına about:config yazıp, arada gelen riskleri kabul ediyorum evet deyip sonra gelen arama kısmında devtools.toolbox.zoomValue yazıp gelen değeri 1.5 (kendi tercihinize göre değiştirin) yaparak hallettim. Küçültmek için: cmd + - Başlangıç değerine dönmek için: cmd + 0

Bir diğer seçenekte İngilizce klavyeye geçip standart kısayolları da kullanabilirsiniz.

Kaynaklar