Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

CSS'te clamp() fonksiyonu ile viewport bazlı ama sınırlı font boyutu scaling yapmak

websterx

Üye
Katılım
14 Mart 2026
Mesajlar
19
Merhaba arkadaşlar, bugün başımı çok ağrıtan bir sorunu ve onun en şık çözümünü paylaşmak istiyorum. Responsive tasarım yaparken, başlıkların ve metinlerin ekran boyutuna göre kademeli (media query'lerle) değil de, akıcı bir şekilde küçülüp büyümesini istemiştim. Ancak `vw` (viewport width) birimini kullanınca, mobilde yazılar iğne ucu kadar, 4K monitörde ise devasa oluyordu. İşte tam burada `clamp()` fonksiyonu imdadıma yetişti.

🔥 Karşılaştığım Sorun
Projemde ana başlığın mobilde en az 24px, büyük ekranlarda ise en fazla 60px olmasını, arada kalan tüm ekranlarda ise viewport genişliğiyle orantılı (akıcı) bir şekilde büyümesini istiyordum. Sadece `font-size: 4vw;` gibi bir kullanım, bu minimum ve maksimum sınırları sağlamıyordu. Her ekran için ayrı media query yazmak da hem temiz bir çözüm değildi hem de bakımı zordu.

🎯 Clamp() Fonksiyonu Nedir?
`clamp()` CSS'te bize üç değer alan bir fonksiyon sunuyor: minimum değer, tercih edilen değer ve maksimum değer. Tarayıcı, tercih edilen değeri kullanmaya çalışır, ancak bu değerin asla minimumun altına düşmesine ve maksimumun üstüne çıkmasına izin vermez. Font boyutu için biçilmiş kaftan!

💡 Uygulama ve Kod Örneği
İşte benim kullandığım en temiz çözüm. Ana başlığım için şu kodu yazdım:

CSS:
.hero-title {
  font-size: clamp(24px, 5vw, 60px);
  font-weight: 700;
  line-height: 1.2;
}

Burada ne oldu? Şöyle açıklayayım:
- 24px: Font boyutunun asla düşemeyeceği alt sınır. Çok küçük ekranlarda bile yazı okunaklı kalacak.
- 5vw: Tercih edilen değer. Viewport genişliğinin %5'i kadar bir boyut kullanılacak. Bu, akıcı scaling'in sihri.
- 60px: Font boyutunun asla geçemeyeceği üst sınır. Geniş ekranlarda başlık sayfayı ele geçirmeyecek.

Bir de daha dinamik, CSS custom property (değişken) ile kullanımını göstereyim:

CSS:
:root {
  --min-font: 1rem;   / 16px /
  --pref-font: 2.5vw;
  --max-font: 3rem;   / 48px /
}

.article-heading {
  font-size: clamp(var(--min-font), var(--pref-font), var(--max-font));
}

Bu yöntemle, tüm projedeki ölçeklendirme değerlerini tek yerden yönetmek mümkün hale geliyor.

✅ Sonuç ve Düşünceler
`clamp()` fonksiyonu, responsive tipografi için media query'lere veda ettirdi diyebilirim. Hem kod temiz hem de kullanıcı deneyimi çok daha akıcı. Artık font boyutları, ekran boyutuyla adeta "soluk alıp veriyor".

Siz responsive tasarımlarda font boyutlandırmak için hangi yöntemleri kullanıyorsunuz? `clamp()` dışında akıcı scaling için tercih ettiğiniz başka CSS çözümleri var mı? Ya da bu fonksiyonla ilgili karşılaştığınız bir sıkıntı oldu mu? Yorumlarda deneyimlerinizi paylaşın, tartışalım!
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri