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
- https://developer.mozilla.org/en-US/docs/Web/CSS/field-sizing
- https://polypane.app/blog/field-sizing-just-works/
- https://caniuse.com/mdn-css_properties_field-sizing
- https://blog.stephaniestimac.com/posts/2024/01/css-field-sizing/
- https://x.com/wesbos/status/1790072655913050579
- https://x.com/jh3yy/status/1799460095585308690
- https://x.com/JohnPhamous/status/1800963715631808949