Front end Temmuz 31, 2023

Responsive Front-end Geliştirme’de – Modern Yöntemler – 1

Cengiz İlhan

Detaylara geçmeden önce “Responsive design” kavramına giriş yapalım. Responsive design, web sitenizin ya da web uygulamanızın en yalın haliyle bilgisayarlar, tabletler, telefonlar gibi farklı ekran boyutları ve çözünürlükleri olan cihazlarda uyumlu bir şekilde görüntülenmesini sağlayan bir tekniktir. Kullanıcılar farklı ekran çözünürlüklerinden sitenize eriştiğinde, sayfanın düzgün bir şekilde görüntülenmesini ve kullanılabilirliğini korumasını sağlar. Bu sayede, farklı ekran boyutlarına sahip cihazlardan websiteniz ya da web uygulamanız rahatlıkla görüntülenebilir ve içerikler düzenli bir şekilde sunulabilir. Bu kısa bilgiden sonra, responsive front-end geliştirme konusuna odaklanabiliriz.

İster web site ister web uygulama oluşturalım bazı sorunları daha ortaya çıkmadan çözmek için fazladan efor sarf etmemize gerek kalmayacak birçok modern front-end geliştirme teknikleri mevcut. Özellikle zamanla yarışılan projelerde ya da front-end alanına yeni giriş yapmış veya bu konuda merakı olabileceklerin sık karşılaşacakları sorunlar için bazı çözüm yollarını aşağıda sıraladık

1-Responsive Font-Size Tanımlaması:

CSS’de bazı property’ler vardır ki bunlar için Deskop’dan sonra Mobil’de de ayrıca yeni değer tanımlaması yapmamız gerekir. Mobil için ikinci bir tanımlama yapmadan tek bir satırda hem Mobil hem Desktop için tanımlama yapmamızı sağlayan “Clamp”ı font size belirlemek için nasıl kullanacağımızı inceleyelim:

Çok büyük boyutta bir başlığımız olsun. Örneğin: font-size:140px. 

“font-size:140px “ gibi kesin bir  font size verirsek tarayıcı genişliği daraldıkça yazımız bulunduğu alana sığmayıp taşmaya başlayacaktır. Bu sorunu çözmek için “Clamp” Property’sine ihtiyacımız var.

Clamp şu şekilde çalışır. 

Font-size: clamp(minimum değer,  tercih edilen değer, maksimum değer)

Bu senaryo için en iyi kullanımlardan birisi aşağıdaki gibi olacaktır.
“Font-size: clamp(75px, 10vw, 140px;) “

Minimum ve maksimum değerleri belirledik. Önerilen kısım içinde vw cinsinden bir tanımlama yaptık.  1vw = viewport width’in %1’ine eşittir. Böylece sayfa genişliğine oranlı bir font size tanımladık aynı zamanda Mobil ve Desktop için ekstra bir tanımlamaya gerek kalmadı.

Font-size: clamp(75px, 10vw, 140px;) 

Üstteki şekilde tanımlama yaptığımızda

 

<!doctype html>
<html lang="en">
 <head>
   <meta charset="utf-8">
   <meta name="viewport" content="width=device-width, initial-scale=1">
 </head>
 <body>
 <h1 class="sabit">Sabit Font Size Başlığı</h1>
 <h1 class="clamp">Responsize Font Size Clamp</h1>
 </body>


 <style>
   .sabit {
     font-size:140px;
     color:rgb(8, 58, 143);
   }
   .clamp {
     font-size: clamp(75px, 10vw, 140px);
   }
 </style>
</html>

Ekran genişliği 2000px olduğunda font size 10vw=200px olacakken, maksimum değerimiz 140px olduğundan 140px olarak kalacaktır. 400px gibi mobil cihazlarda ise 400px için 10 vw = 40px olacakken, minimum değer 75 px olduğu için 75px’de kalacaktır.

2) Margin, Padding ve Gap Değerlerinin Responsive Olarak Belirlenmesi:

Yukarıda font-size için anlattığımız yöntem aşağıdaki Property’ler içinde geçerlidir.

gap: clamp(5px, 5vw, 50px); 

padding: clamp(5px, 2vw, 30px);

margin: clamp(5px, 2vw, 30px);

font-size: clamp(75px, 10vw, 140px);

 

Bu şekilde gap, padding, margin ve font-size gibi sık kullanılan CSS Property’leri için daha az ve temiz kod yazmış oluruz. 

3) Responsive olarak görsel ekleme

Görselleri projemize farklı ekran boyutlarına uyumlu (responsive) olarak birkaç farklı yöntemle ekleyebiliriz:

1. Birinci yöntem: <picture> etiketi ile birden fazla resim dosyasının gerektiği yöntem.

<picture>
  <source media="(min-width:700px)" srcset="tabletimage.jpg">
  <source media="(min-width:465px)" srcset="desktopimage.jpg">
  <img src="mobileimage.jpg"  style="width:auto;">
</picture>

buradaki media query ile CSS’deki media query benzer mantıkta çalışıyor.

Çalışma prensibi ise şu şekilde; picture etiketinin içerisinde tanımlı olan Source tag’larının media query’sinde verilen koşul geçerli ise, o görsel görünür oluyor. Koşul geçerli değilse img etiketinde verilen görsel geçerli olacaktır.

Bu şekilde belirlenecek farklı break-pointler için Picture etiketinin içerisinde farklı çözünürlükler için tanımlanabilir. 

2. İkinci yöntem: CSS media Query’leri ile ilgili ekranda “display:none;” ile görseli gizlemek. Örneğin:

<style>
@media only screen and (max-width: 600px) {
.desktopResim{
display:none;}
}
@media only screen and (min-width: 600px) {
.mobilresim{
display:none;}
}
</style>
<img class=”mobilResim” src=”mobilresim.jpg>

<img class=”desktopResim src=”desktopresim.jpg>

Veya Bootstrap framework’u kullanıyorsanız ekstra CSS yazmadan:

<img class=”d-block d-lg-none” src=”mobilresim.jpg>

<img class=”d-none d-lg-block” src=”desktopresim.jpg>

Class yöntemini videolarda JS kullanmamak içinde uygulayabilirsiniz. Örneğin:

<video class=”d-none d-lg-block” controls>
  <source src="dekstopvideo.mp4" type="video/mp4">
</video>
<video class=”d-block d-lg-none” controls>
  <source src="mobilevideo.mp4" type="video/mp4">
</video>

Böylece belirlenen break-pointlerde  ilgili objeleri gizlemiş olduk.

4.  Çoklu Görsellerde Oran-Orantı, Eşitlik ve Hizalama

Aspect Ratio Nedir ?

Aspect ratio görüntü en boy oranı ile ilgilidir ve görsellerle çalışırken sık karşılaşırız.

Örneğin: 16:9 üzerinden gidelim. Genişlik 16 birim iken, yükseklik 9 birim oranında olmalıdır.

4:4, 4 birim genişlik 4 birim yükseklik olacağı için kare olur.

Aspect-ratio’nun CSS’de kullanımı şöyledir:

<style>

aspect-ratio:16/2;

</style>

Doğrudan  görselin çözünürlüğünü referans alabilirsiniz. Görsel 800×600 pixel çözünürlükteyse “aspect-ratio:800/600;”  gibi.

Aspect-ratio’yu bir örnek üzerinde beraber kullanalım.

Çoklu cart yapısı tanımlarken zor kısımlardan biri de tüm elemanların aynı ölçeklere sahip olmasıdır çünkü genelde görsellerin çözünürlüğü farklı olduğu için elemanlar farklı görünebilir. 

Aşağıdaki görselde olduğu gibi farklı boyutlara sahip görsellerden oluşan  örneğimiz var ama biz hepsinin aynı boyutta görünmesini istiyoruz. Bu sorunu nasıl çözebiliriz?

Fig. 1 

Class’ına “aspect-ratio” tanımlayalım.

“ Aspect-ratio:2/2; “ Sonuç Fig. 2 görselinde görüldüğü gibi img elementlerinin en boy oranları eşit oldu ama görseller özünde farklı çözünürlükte olduğu için yükseklikleri eşit olmadı.  (HTML yapısı gereği img height’leri (görsel boyları) eşit olmasına rağmen, eşit değilmiş görünüyor.)

Fig. 2

İlk adımı tamamladık. Şimdi daha da uyumlu görünmesini istiyorsak ikinci adıma geçiyoruz.

İlgili görsellere 

“Object-fit:cover;” tanımlamasını yaptığımızda sonuç aşağıdaki gibi oluyor.

Görselin çözünürlüğü ne olursa olsun web sayfasının tasarımının bozulmaması ve görselleri yükleyen kullanıcıların belli bir çözünürlük veya orantıya uymak zorunda kalmaması avantajlı olacaktır. Dezavantajı ise “object-fit:cover” görselin orantısını koruyup kırpma yapar. Örneğin, 350×150- “Card Title 7” başlıklı görselin sağ ve soldan %40 kadar bir alanını göremiyoruz. 

Fig. 3

Aynı zamanda Slider ya da Carousel Component’leri için de bu tekniği uygulayabilirsiniz. Böylece oran orantı sorunu çözülmüş olacaktır.

Yukarıda verilen card örneğinin kodlarına erişmek için Codepen bağlantı adresine gidebilirsiniz.

4. Düşük Çözünürlüklü Görsel Sorunu

Sayfanın %100 genişliğini kaplayan bir Banner görseli düşünelim.

ve görselimiz 1000×500 çözünürlüğünde olsun. Görüntülediğimiz monitor-çözünürlük ise 2000px olsun.

Fig. 4

Fotoğraf: Pixabay: https://www.pexels.com/tr-tr/fotograf/mavi-dizustu-bilgisayar-265631/

Fig 4’de bulunan görseldeki aşağıdaki klavye görseli Width:100% verdiğimiz için pikselleşmeye başlayarak kötü görünecektir. Bunun çözümü ise: “max-width:max-content” ‘dir.  (Fig.4 yukarıdaki klavye görseli. ) Görselin genişlik değeri (en) 1000px olarak ayarladı ve yükseklik değeri(boy) 500px olduğu için maksimum genişlik = görselin maksimum genişliği olur.

Diğer bir deyişle görsel genişliği 1000px ise:

Max-width:max-content ‘in asıl uyguladığı Kural şudur: max-width:1000px. 

Dolayısıyla görsel kendi çözünürlüğünü aşmaz ve net görünür.

UI / UX Mart 9, 2023

Tasarımlarda Sıkça Tercih Edilen 10 Google Font ve Özellikleri

Umut Can Özyılmaz

Font tercihleri, üzerinde çalıştığınız tasarım ile ilgili birçok fikir verebilir. Bu nedenle kullanışlı olmalarının yanında tasarımınızla uyumlu olması da oldukça önemli. Grafik ve UI/UX tasarımcıların birçok çalışmasına adapte edebileceği en çok kullanılan 10 yazı tipini birlikte inceleyelim. 

1. Open Sans: 

Open Sans, “Steve Matteson” tarafından tasarlanan, Google tarafından yaptırılan ve 2011’de piyasaya sürülen açık kaynaklı bir humanist Sans serif yazı tipidir. Open Sans dik bir vurgu, açık formlar ve nötr ama yine de samimi bir görünüme sahiptir. Aynı zamanda bütün boyutlarda okunabilirlik ve anlaşılabilirlik sunması en belirgin özellikleri arasında yer alır. Bu özelliklerinin yanında, çeşitli web sitesi, mobil arayüz, baskı için uygundur ve dil skalası az bilinen dilleri de içermesi ile ön plana çıkar, Latin, Yunan, Kiril alfabesi gibi dilleri destekler. 

Open sans yazı tipinin harf formlarını görselde inceleyebilirsiniz. Kendi projelerinizde kullanmayı denemek için linke tıklayabilir, ücretsiz bir şekilde indirebilirsiniz.

Open Sans – Google Fonts

2. Montserrat: 

“Julieta Ulanovsky” tarafından 2011 yılında oluşturulan ve piyasaya sürülen bu font; net hatları ile modern, minimalist tasarıma sahip geometrik bir Sans Serif yazı tipidir. Bunun yanında büyük x-genişlik özelliğine sahiptir. Özellikle, “Q” harfinin sevimli bir kuyruğu, “J” harfinin ise üst kısmında harika bir çapraz eğri vardır. Ayrıca marka bilinci oluşturma, yayıncılık dünyası, web sitesi, logolar ve baskı projeleri için mükemmel bir seçim olması ile birlikte “Latin” ve slav coğrafyasında sık kullanılan “Kiril” alfabesi için destek sunar. 

Montserrat harf formlarını, karakter özelliklerini ve kendi yazılarınızda test etmek için linke tıklayabilirsiniz.

Montserrat – Google Fonts

3. Red Hat Display: 

Yazı tipleri orijinal olarak Pentagram’dan “Paula Scher” tarafından yaptırıldı ve yeni “Red Hat” kimliği için MCKL’den “Jeremy Mickel” tarafından 2019 yılında piyasaya sürüldü. Her karakter mükemmel dairelerden ve düz, çift çizgilerden oluşur. “Red Hat Dsiplay” tasarımınızda görsel bir hiyerarşi oluşturmayı sağlayan başlıklar, gövde kopyası veya her ikisi için kullanılabilir.

Red Hat Display yazı tipini daha detaylı incelemek ve tüm yazı tipi ailesini ziyaret etmek için linke tıklayabilirsiniz.

 Red Hat Display – Google Fonts

4. Roboto: 

“Christian Robertson” tarafından geliştirilen ve Google tarafından 2012 yılında ücretsiz indirilebilir versiyonu piyasaya sürüldü. Roboto dijital tasarım projelerinde yaygın olarak kullanılan çok yönlü bir Sans Serif yazı tipidir. Ek olarak düz kenarlı büyük harflerden ve ayırt edici yarış pisti şeklindeki yuvarlak harflerden oluşur. Yazı tipi genişlik olarak ince, hafif, normal, orta, kalın ve siyah ağırlıkları içermesi sayesinde okuyucuya kolaylık sağlar. Bunun yanında Roboto Condensed ve Roboto Slab yazı tipi ailesi içerisinde yer alır. Ayrıca Latin alfabesi, slav yazım dili olan Kiril alfabesi dilleri için destek sunar. Son olarak matematik ve fizik alanlarında kullanılan sembolleri içeren Yunan dili için de destek sunmaktadır.

Roboto yazı tipi ailesine daha yakından bakmak ve ayırt edici özelliklerini yakından görebilmek için linke tıklayabilirsiniz.

Roboto – Google Fonts

5. Source Sans Pro: 

“Paul D. Hunt” tarafından oluşturularak Adobe tarafından 2012 yılında piyasaya sürülmüştür. Source Sans Pro modern, minimalist bir tasarıma sahip geometrik bir Sans serif yazı tipi olmasının yanında daha büyük bir x-yüksekliğine ve daha hümanist italic forma sahiptir. Source sans pro normal, ekstra, hafif, yarı kalın, kalın ve siyah gibi altı farklı harf formuna sahiptir. Bu harf formları dik ve italik stilde ağırlıklara sahip olması ile son derece okunaklıdır. Latin, Vietnamca, Çince karakterlerin Latin karakterler olarak yazılıp okunmasını sağlayan pinyin Romanizasyon ve ABD’nin New Mexico, Arizona, Colorado, Utah gibi  eyaletlerinde konuşulan eski bir kızılderili dili olan “Navajo” dillerini de kapsar.

Bu yazı tipine aşağıdaki linkten ulaşabilir, daha detaylı harf formlarını inceleyebilir ve diğer fontlar ile karşılaştırma yapabilirsiniz.

Source Sans Pro – Google Fonts

6. Raleway: 

“Matt McInerney” tarafından 2010 yılında tasarlanan Raleway, benzersiz ve zarif Sans Serif yazı tipidir. Raleway, 105 Latin dilini ve 60 Kiril dlini kapsayacak şekilde genişletilmiş karakter kümelerine sahiptir. Raleway, geometrik Sans serif fontlardan ilham alınarak yaratıldığı için okunabilirlik konusunda iyi sonuçlar ortaya çıkaran bir font olma özelliği taşır. Bununla birlikte, marka bilinci oluşturma ve reklamcılık dahil olmak üzere çeşitli tasarım projeleri için uygundur.

Bu yazı tipini görselden inceleyebilirsiniz ve kendi metinlerinizde denemek için linke tıklayabilirsiniz.

Raleway – Google Fonts

7. PT Sans: 

Rusya İletişim Bakanlığı’nın bir departmanı olan Rospechat tarafından “ParaType” tasarım ajansında geliştirilerek 2009 yılında piyasaya sürülmüştür. PT Sans modern, minimalist bir tasarıma sahip çok yönlü bir Sans serif yazı tipidir. Aynı zamanda PT Serif ve PT Mono yazı tipleri mevcuttur ve Latin ve Kiril karakterlerini içerir. Rusya Federasyonundaki neredeyse tüm azınlık dillerini kapsar. PT sans font karakterlerin netliği sayesinde karşı tarafa aktarılmak istenen bilgiyi kolayca ve direkt bir şekilde aktarılmasına olanak sağlar.

PT Sans yazı tipine ulaşmak için linke tıklayarak ücretsiz bir şekilde projelerinizde kullanabilirsiniz.

PT Sans – Google Fonts

8. Exo: 

“Natanael Gama” tarafından 2009 yılında yaratılan Exo; benzersiz, fütüristik bir tasarıma sahip geometrik, elegant Sans serif yazı tipidir. Ekran yüzü olarak harika çalışmasının yanında küçük ve orta boyutlu metinler için de iyi çalışıyor olması tercih edilme sebeplerindendir.. Son derece okunaklı olması ile marka bilinci oluşturma ve reklamcılık da dahil olmak üzere çeşitli alanlarda kullanılabilir. Logo yapımı, filmler, tanıtımlar, kitaplar, etiketler, bilim kurgu, basılı materyaller, infografikler ve teknoloji afişi tasarım projeleri için uygundur.

Exo yazı tipinin harf formlarını ve belirgin karakter özelliklerini inceleyebilmek için linke tıklayabilir aynı zamanda ücretsiz bir şekilde indirebilirsiniz.

Exo – Google Fonts

9. Ubuntu:

“Dalton Maag” tarafından 2010-2011 yılları arasında geliştirilen ve modern, minimalist bir tasarıma sahip çok yönlü bir Sans serif yazı tipidir. Unicode ile tamamen uyumludur. Latin A ve B genişletilmiş karakter kümeleri, Yunanca politonik ve Kiril genişletilmiş karakter kümeleri içerir. Büyük boyutlarda okunabilirliği korurken, küçük boyutlarda da net okunabilirlik sunar. Aynı zamanda Latin, Yunanca, ve Kiril alfabelerini destekler.

Birçok dil desteği sunan Ubuntu yazı tipi ailesini yakından incelemek ve ücretsiz bir şekilde indirmek için linke tıklayabilirsiniz.

Ubuntu – Google Fonts

10. Fira Sans: 

“Erik Spiekermann” tarafından 2013 yılında Firefox işletim sistemi için yaratılan ve modern, minimalist bir tasarıma sahip çok yönlü bir Sans serif yazı tipidir. En belirgin özelliği ise açık mesafeler ve büyük bir x-yüksekliğine sahiptir. Fira Sans Latin, Yunan alfabesi, Kiril alfabesi, ortak kullanılan latin karakterler, noktalama işaretleri ve para birim sembollerini kapsamaktadır. Okunabilirlik konusunda tatmin edici sonuçlar sunmasının yanında çeşitli ödevler, davetiyeler, tebrik kartları, posterler ve kitap kapak projeleri için uygundur.

Geniş Fira sans yazı tipi ailesini daha yakından inceleyebilmek ve ayırt edici harf formlarına göz atmak için Google yazı tipi kütüphanesini aşağıdaki link üzerinden ziyaret edebilirsiniz.

Browse Fonts – Google Fonts

Bu en çok kullanılan yazı tiplerinin her biri tasarım projelerinizi görsel ve anlaşılabilirlik yönünden daha iyi hale getirebilmeniz için benzersiz özellikler sunar. İster web sitesi, ister broşür veya sosyal medya kampanyası üzerinde çalışıyor olun, bu listedeki fontlar sizin için oldukça kullanışlı seçenekler arasında yer alır.