CSS text-box-trim

Yayınlanma tarihi: 14 Ocak 2025

Chrome 133'ten itibaren text-box, geliştiricilerin ve tasarımcıların metnin üstündeki ve altındaki alanı özelleştirmesine olanak tanır.

Browser Support

  • Chrome: 133.
  • Edge: 133.
  • Firefox: behind a flag.
  • Safari: 18.2.

Source

Longhand:

text-box-trim: trim-start | trim-end | trim-both | none;
text-box-edge: cap | ex | text | leading + alphabetic | text;

Shorthand:

text-box: trim-both cap alphabetic;

Bu özellik, metnin üstündeki ve altındaki boşluğu kontrol etmenizi sağlar. Örneğin, <h1>, <button> ve <p>. Her yazı tipi, öğenin boyutuna katkıda bulunan farklı miktarda bu blok yönlü alanı üretir. Bu kaotik alan katkısı kolayca ölçülemez ve şimdiye kadar kontrol edilemezdi.

Yazı tipi biliyor, artık CSS de biliyor.

CodePen'de deneyin

Yazı tipinin üstündeki ve altındaki boşluk, web'in metni düzenleme şeklinden kaynaklanır. Bu boşluğa "yarım satır aralığı" denir. Bu konu, Matthias Ott'un The Thing With Leading In CSS adlı gönderisinde uzman bir şekilde ele alınmıştır. Temel olarak, dizgi işlemi elle yapılırken metin satırlarını ayırmak için metal kurşun parçaları kullanılıyordu. Web, önde gelenlerden ilham alarak önde geleni iki parçaya ayırır ve bir parçayı içeriğin üstüne, bir parçayı da altına dağıtır.

Yarım satır aralığını göstermek için metnin üstünde ve altında pembe bir çubukla başlık gösteriliyor. Kaynak

Bu geçmiş, text-box her yarıya ad verdiği için anlamlıdır: üst ve alt. Ayrıca, bu geçmişi kırpma olanağı da sunar.

text-box ile ilgili tekniğin bilinen durumu da var. Ethan Wang'ın Leading-Trim: The Future Of Digital Typesetting (Leading-Trim: Dijital Dizginin Geleceği) başlıklı heyecan verici gönderisini hatırlayabilirsiniz. Bu gönderide leading-trim (text-box'nın önceki adı) ilk kez tanıtılmıştı.

Üstünde ve altında fazla boşluk olan bir başlık, makasla kesilmiş ve kaldırılmış gibi görünüyor.

Metin kırpma işlemine giriş noktanız, tasarımcılar için Figma ve "dikey kırpma" kontrolleri olabilir. Bu X gönderisinde, bu dikey kırpma seçeneğinin nerede bulunduğu ve düğmeler için nasıl faydalı olduğu gösterilmektedir.

Kaynak

Bu sayfaya nasıl geldiğinizden bağımsız olarak, küçük bir tipografi kontrolü gibi görünen bu özellik büyük bir fark yaratabilir.

Özellik ve söz dizimi

text-box ile çalışırken en çok ihtiyaç duyacağınız iki tek satırlık komutun (bence) ne olduğunu aşağıda bulabilirsiniz:

h1 {
  /* trim both sides to the capital letters */
  text-box: trim-both cap alphabetic;

  /* trim both sides to the lowercase letter x */
  text-box: trim-both ex alphabetic;
}

Her ikisini de cap alphabetic olarak kırpmak, bu özelliğin en yaygın kullanım şeklidir. Aşağıdaki demolar bu özelliği birçok kez kullanır. Ancak önceki örnekte ex alphabetic de gösterilir. Çünkü bu, kendi benzersiz yollarıyla optik denge için yararlıdır.

Explorer playground

Playground'umuzda söz dizimini keşfedin ve açılır menüleri kullanarak sonuçları görün. Yazı tiplerini değiştirebilir, fazla ve eksik kesme değerlerini değiştirebilir, renk kodlu görselleri ve etiketleri takip edebilirsiniz.

Metin kutusuyla söz dizimi önizlemesi: trim-both cap alphabetic söz dizimi vurgulanır ve gösterilir. Kırpma değerlerini seçmek için 3 açılır liste daha vardır.

Deneyebilecekleriniz:

  1. text-box-trim öğesinin tek satırlık ve çok satırlık metin varyantlarında nasıl çalıştığını görsel olarak inceleyin.
  2. Bir varyantın üzerine gelerek bu efekti elde etmek için kullanılan kırpma değerlerini görme
  3. Yazı tipini değiştirme
  4. Yalnızca bir metin kutusunun bir tarafını kırpma
  5. Şarkı çalarken söz dizimini inceleyin.
CodePen'de deneyin

Ne tür uygulamalar oluşturabilirim ve hangi sorunları çözebilirim?

Bu kırpma özelliğinden çok daha basit bazı ortalama ve hizalama çözümleri ortaya çıkar. Hatta içerikler arasında gap gibi bir karakterin kullanılabildiği uygun satır aralığına daha da yaklaşabilirsiniz.

2 içerik grubu arasındaki karşılaştırma.
İlk grupta yarı satır aralığı, ikincisinde ise kırpılmış satır aralığı var. Sonuç olarak ikinci grup daha sıkı bir şekilde bir araya gelir. CodePen'de deneyin

Daha kolay ortalama

Daha küçük, daha satır içi ve içeriğe özgü bileşenler için padding: 10px, bir öğenin her tarafında eşit aralık bırakmak üzere belirtilmesi için makul bir stildir. Ancak sonuç, üstte ve altta genellikle ekstra boşluk olduğundan kullanıcıları şaşırtabilir.

Geliştiriciler, bu sorunu çözmek için genellikle satır aralığının etkilerini dengelemek amacıyla üst ve alt kısımlara (blok) daha az dolgu yerleştirir.

button {
  padding-block: 5px;
  padding-inline: 10px;
}

Bu noktada, öğeler görsel olarak ortalanana kadar değer kombinasyonlarını denememiz gerekir. Bu, bir ekranda ve işletim sisteminde iyi görünebilir ancak başka bir ekranda ve işletim sisteminde iyi görünmeyebilir.

text-box, metindeki yarım satır başı boşluğunu kırpmamıza olanak tanır. Bu nedenle, 10px gibi eşit dolgu değerleri kullanışlıdır:

button {
  text-box: trim-both cap alphabetic;
  padding: 10px;
}
İki örnek gösterilir.
İlk örnekte, dolgusu 10 piksel ve satırlar arası boşluğu yarım olan bir öğe gösteriliyor. İkincisinde ise aynı öğe, text-box: trim-both cap alphabetic ile gösteriliyor. Sonuç olarak ikinci düğme optik olarak ortalanır. CodePen'de deneyin

Aşağıda, <button> öğeleriyle text-box kullanılarak boşluğun kırpılmasının, pratik bir etkileşimli öğede padding: 10px öğesinin her tarafta eşit görünmesini nasıl sağladığını gösteren birkaç örnek verilmiştir. Alternatif yazı tipinin, satırlar arası boşlukta nasıl çok farklı bir boşluk oluşturabileceğine dikkat edin.

Üç grup düğme. Birincisinde normal bir sans serif yazı tipi, ikincisinde süslü veya eğlenceli bir yazı tipi, üçüncüsünde ise el yazısı yazı tipiyle aynı efekt kullanılıyor.
Her yazı tipinin farklı yarım satır aralığı vardır ancak kırpma değerleri aynıdır ve aralığı normalleştirebilir. CodePen'de deneyin

Kategorileri veya rozetleri göstermek için sıkça kullanılan <span> öğeleri vardır. Eşit taraflı dolgunun en iyi çözüm olması gereken bir başka durumdur ancak text-box yayınlanana kadar bu sorunu çözmek için geçici çözümler kullanmak zorunda kaldık.

Etiketler yan yana karşılaştırmalı olarak gösterilir. İlk grupta satırlar arası boşluk, ikincisinde ise kırpılmış satırlar arası boşluk var.
İkinci etiket grubu, kırpılmış satır başı sayesinde daha sıkı ve optik olarak ortalanmış.

Daha kolay hizalama

Metin kutusunun üstünde (over) ve altında (under) bulunan, kontrol edilemeyen, fazladan yarım satır aralığı da hizalamayı zorlaştırır. Aşağıdaki örneklerde, satırlar arası boşluğun hizalamayı zorlaştırdığı durumlar ve metin kutusunun blok kenarlarını kırpmanın nasıl daha iyi hizalamalar oluşturabileceği gösterilmektedir.

Burada, metnin yanına bir resim yerleştirilmiş. Resim, metnin ihtiyaç duyduğu yüksekliğe ulaşır. text-box olmadan resim her zaman biraz daha uzun olur. text-box ile resim, metin içeriğiyle mükemmel şekilde hizalanabilir.

CodePen'de deneyin

Satır kaydırmanın olduğu senaryolarda, boşluğun biçimlendirilmiş ilk metin satırının üstünde ve biçimlendirilmiş son metin satırının altında olduğuna dikkat edin.

Aşağıdaki örnekte, özelliğin writing-mode değişikliğine nasıl mantıksal olarak uyum sağladığına dikkat edin. Metni değiştirmeyi deneyin, düzenin nasıl hizalı kalmaya devam ettiğini görün.

CodePen'de deneyin

Çalışmaya devam etme

Want to know more? Aşağıdaki bağlantı listesinde çeşitli miktarlarda ek bilgi ve kullanım alanları sunulmaktadır.