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.

Front end Mart 10, 2023

HTML’de İkon Eklemenin Modern Yöntemleri

Cengiz İlhan

Son yıllarda kullanımı gittikçe artan ve sunduğu avantajlarıyla SVG, Ölçeklenebilir Vektör Grafikleri (Scalable Vector Graphics) anlamına gelir. Bu vektör görüntü formatı JPEG, PNG ve GIF gibi diğer görüntü formatlarına kıyasla çok daha az yer kaplar. Aynı zamanda SVG’ler herhangi bir kalite kaybı olmadan ölçeklendirilebilir ve CSS aracılığıyla özelleştirilebilir. Küçük boyutlu olması sebebiyle web sayfalarının daha performanslı çalışmasını sağlar. Böylece SEO ( Search Engine Optimization ), kullanıcı deneyimi gibi konularda açısından avantaj sağlamış oluruz. Bu özellikleriyle yazılım projelerinde tasarım ve geliştirme süreçlerinin vazgeçilmez bir parçası haline gelmeye başlayan SVG teknolojisi front-end geliştirme aşamasında birkaç farklı metod ile kullanılabilir.

Bu yazımızda HTML’de SVG ikonu ekleme işlemi için aşağıdaki yöntemleri inceleyeceğiz:

Yöntem 1: Background-Image Olarak Ekleme

Yöntem 2: IMG Etiketi Kullanarak Ekleme 

Yöntem 3: SVG’yi Doğrudan HTML’e Ekleme

Yöntem 4: Font-Family Olarak Ekleme

SVG Background-Image Olarak Nasıl Eklenir ?

“Background-image” olarak ekleme yöntemi Bootstrap 5.0’da da aktif olarak kullanılan güncel bir metottur.

Yapacağımız işlem span objesinin “::before” pseudo class’ını kullanıp, 20px’lik bir alana background image eklemek olacak. Böylece tüm span’lara aynı background image’ı atamış olacağız. 

Span etiketi kullanarak bir örnek yapalım:

<span>Örnek Span </span>

Style bölümünde öncelikle span etiketine aşağıdaki kodları tanımlayalım. Span etiketinin varsayılan display property’sinin default value’su inline olduğu için (“display:inline”), “display:flex” tanımlaması yapmamız gerekiyor. Flex value’su ile “::before” ve span’in yan yana görünmesini sağlayacağız. “gap:10px” ise “::before” ve span arasına 10px’lik boşluk bıracak.

span {
       display: flex;
       gap: 10px;
     }

Bir sonraki adımda ise span’a “::before” tanımlaması yapalım. Aşağıdaki kodlar ile Span’dan önce oluşan kısma boş bir 20px’lik alan tanımladık. Şuan tek yapmamız gereken şey, SVG kodunu “background-image” alanına eklemek.

   span::before {
       content: "";
       background-image: ;
       background-repeat: no-repeat;
       background-size: contain;
       width: 20px;
       height: 20px;
}

Bu işlem için aşağıdaki SVG grafiği kullanabiliriz. CSS’de “background-image” alanına SVG kodu eklememiz için SVG kodunu DATA URI formatına dönüştürmek gerekir. Bu işlem için arama motoruna “svg to data image” yazdığınızda çok fazla alternatif tool bulabiliriz. 

<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><title>keyboard_arrow_down</title><g fill="none"><path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z" fill="#212121"></path></g></svg>

SVG kodunu URL-encoder for SVG adresindeki  Insert SVG alanına yapıştıralım ve Ready for CSS alanında bize üretilen CSS kodunu alıp CSS’deki ilgili alana yapıştıralım.

HTML dosyamızın son hali aşağıdaki gibi olacaktır.

<!DOCTYPE html>
<html lang="en">
 <head>
   <meta charset="UTF-8" />
   <meta http-equiv="X-UA-Compatible" content="IE=edge" />
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   <title>Document</title>
 </head>
 <body>
   <span>Örnek Span </span>
   <style>
     span {
       display: flex;
       gap: 10px;
     }
     span::before {
       content: "";
       background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Ctitle%3Ekeyboard_arrow_down%3C/title%3E%3Cg fill='none'%3E%3Cpath d='M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z' fill='%23212121'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");
       background-repeat: no-repeat;
       background-size: contain;
       width: 20px;
       height: 20px;
     }
   </style>
 </body>
</html>

Browser’da görünen hali ise aşağıdaki gibi olacaktır. 

Peki ya Hover Efekti Eklemek İstersek ?

Mouse ile  “Örnek Span” üzerine gelindiğinde aşağı ok ikonunun yukarı doğru dönmesi için gereken işlemleri yapalım.

Span’a hover olduğunda “::before” alanının yönünü 180 derece değiştirecek kodu aşağıdaki gibi uygulayalım. 

  span:hover::before {
       transform: rotate(180deg);
     }

Böylece ikinci SVG ikonuna gerek kalmadan sadece rotate komutu ile ikonun yönünü değiştirdik. Ek olarak ikon yukarı doğru dönerken, transition komutu ile güzel bir geçiş animasyonu uygulamış olduk.

 

transition: .5s ease-in-out;

“Ease-in” etkisi, sadece başlangıçta yumuşak bir geçiş yaratır. “Ease-out” ise sadece animasyon sonunda yumuşak bir geçiş sağlar. “Ease-in-out” ise hem başlangıçta hem de sonunda yumuşak bir geçiş efekti uygular. İlgili animasyonumuz iki yönlü olacağı için “Ease-in-out” seçeneğinin kullanılması daha güzel bir deneyim yaratır.

“ease-in-out” kodunu eklediğimizde HTML dosyamızın son hali aşağıdaki gibi olacaktır.

<!DOCTYPE html>

<html lang="en">

 <head>

   <meta charset="UTF-8" />

   <meta http-equiv="X-UA-Compatible" content="IE=edge" />

   <meta name="viewport" content="width=device-width, initial-scale=1.0" />

   <title>Document</title>

 </head>

 <body>

   <span>Örnek Span </span>

   <style>
     span {
       display: flex;
       gap: 10px;
     }

     span::before {
       content: "";

       background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Ctitle%3Ekeyboard_arrow_down%3C/title%3E%3Cg fill='none'%3E%3Cpath d='M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z' fill='%23212121'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");

       background-repeat: no-repeat;

       background-size: contain;

       width: 20px;

       height: 20px;

       transition: 0.5s ease-in-out;

     }

     span:hover::before {

       transform: rotate(180deg);

     }

   </style>

 </body>

</html>

IMG Etiketi Kullanarak SVG Nasıl Eklenir ? 

IMG Etiketi kullanarak SVG eklemek çok tercih edilmeyen bir yöntemdir. HTML dosyamızda tekrarlı kullanım olmayacaksa bu yöntem tercih edilebilir. Aşağıdaki kullanım ile IMG etiketi olarak nasıl SVG eklendiğini görüyoruz. Fark edeceğiniz gibi PNG veya JPG eklemekten çok bir farkı bulunmuyor.

<img src=”./path/icon.svg” >

Bu durumda aşağıdaki gibi görünecektir.

SVG’yi Inline Olarak HTML’e Nasıl Ekleriz ? 

SVG görselimizi metin editörü ile açtığımızda yada bir browserda açarak kaynak kodlarını incelediğimizde SVG’nin kodlardan oluşan yapısını görüntüleyebiliriz. Bu şekilde SVG dosyasının içerisindeki tüm kodu alıp HTML sayfamıza ekleyebiliriz.

<!DOCTYPE html>

<html lang="en">

 <head>

   <meta charset="UTF-8" />

   <meta http-equiv="X-UA-Compatible" content="IE=edge" />

   <meta name="viewport" content="width=device-width, initial-scale=1.0" />

   <title>Document</title>

 </head>

 <body>

   <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><title>keyboard_arrow_down</title><g fill="none"><path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z" fill="#212121"></path></g></svg>

 </body>

</html>

Bu durumda aşağıdaki gibi görünecektir.

SVG font-family Olarak Nasıl Eklenir ?

Bootstrap Icons ya da Font Awesome gibi hazır kütüphane ve hazır ikonlar kullanmak isterseniz hali hazırda SVG formatında ikon setler mevcut. Bunlar kullanılabilir.

Ancak özel tasarım SVG dosyalarını font family’e dönüştürmek istersek Nucleo, Icomoon v.b araçları kullanmak gerekir.

Kullanım kolaylığı nedeniyle Front-end developerların daha çok tercih ettiği Nucleo uygulamasıdır. Nucleo ile nasıl font family oluşturulur konusu başlı başına ele alınması gerektiği için ayrı bir yazıda ele aldık.

Nucleo ile SVG’lerimizi font family’e dönüştürme rehberi için Nucleo İle Font Family Oluşturma sayfamızı ziyaret edebilirsiniz.

Dipnot: SVG dosyalarının içerisine script komutları yazılabildiği için Script Injection riski bulundurur. Bu sebeple kullanıcıların SVG dosyalarını doğrudan yüklemesine izin vermek risklidir.

 

Front end Mart 14, 2023

Nucleo ile Font Dosyası Oluşturmak

Cengiz İlhan

SVG iconlarımızı, Icomoon ve Nucleo gibi font oluşturucu araçlar yardımıyla birer font dosyasına dönüştürebiliriz. Daha sonra ise CSS’de “font-face” ve “font-family” propertyleriyle kolayca kullanabiliriz. Güncel olması ve kullanım kolaylığı ile Nucleo’da font dosyası oluşturma işlemine bir göz atalım.

Görsel 1.

Nucleo uygulaması indirme ve yükleme işlemlerinin ardından aşağıdaki adımları takip ederek iconset oluşturmaya başlayabiliriz.

1) Sol menüye sağ tıklayıp “New Set” yazdıktan sonra set ismini girip “Create empty set”e basın.

icomoon, nucleo, font setGörsel 2.

 

2) Nucleo üzerinde ilgili Icon set projesi seçiliyken  SVG Iconlarınızı  sürükleyip Nucleo üzerine bırakın.

icomoon, nucleo, font set
icomoon, nucleo, font set

Görsel 3.

 

3) Projeye sağ tıklayıp “Export” daha sonra “Icont Font” seçeneğini işaretleyip işlemi bitirin.

icomoon, nucleo, font set
icomoon, nucleo, font set

Görsel 4.

Uygulama Görsel 5’de ki gibi klasör oluşturacak. İlgili dosyaları projenize dahil edip kullanabilirsiniz.

Görsel 5.

Demo.html’de Görsel 6’daki gibi oluşturmak istediğiniz Iconlarınızdan bir demo taslağı sunar. Bu dosya aynı zamanda dökümantasyon amaçlı da kullanılabilir.

icomoon, nucleo, font set
icomoon, nucleo, font set

Görsel 6.

Bonus:

Demo.html’in nasıl oluştuğunu ve hangi teknik ile Icon’ların çağrıldığını inceleyelim.

Öncelikle CSS dosyamıza ilgili font dosyası import ediliyor. Yani “.css” dosyasına “@font-face { font-family: ‘MyWebFont’; src: url(‘webfont.eot’); “ komutuyla ilgili font dosyası eklenir.  

Daha sonra uygulama tarafından otomatik olarak ilgili class’lara “font-family:Nucleo” tanımlaması yapılıyor. Şimdi son işlem ise doğru karakter kodunu ilgili alana yazmak.

Görsel 7.

Her class’ın “::before” kısmına ilgili karakter kodları tanımlıdır. Örneğin Görsel 8’deki gibi “Icon-alarm-disable-3”e “/ea28” karakter kodu tanımlanmış. Görüldüğü gibi her karakter kodu bir Icon’u temsil eder.

Görsel 8.

Eğer ilgili Icon set’i  daha sonra güncelleyecekseniz (önerilmez) karakter kodlar değişecektir. Bu sebeple farklı bir HTML etiketine Icon eklemeniz gerekirse aşağıda anlatılan şekilde yapabilirsiniz.

Örneğin H1 elementine Icon eklemek istediğimizi varsayalım.

<h1 class=”Icon Icon-alarm-disable-3“> Örnek Başlık </h1>

Icon’u eklemek istediğim H1 elementine ilgili classı tanımlıyorum. H1 elementine classı ekledik ve icon karakter kodu değişse bile aynı CSS class kullanılacağı için bir sorun ile karşılaşılmaz.

Özetle, yukarıdaki adımları takip ederek kolay ve pratik bir şekilde icon set oluşturabilirsiniz. İcon set oluşturmak için farklı yöntemler bulunuyor olsa da anlatmış olduğumuz basamaklar size kolaylık sağlayacaktır.

 

Front end Aralık 17, 2021

Bootstrap V5 Alpha ile Gelen Özellikler

Seçil Durgun

Bootstrap, Twitter ekibi tarafından geliştirilmiş bilinen en popüler arayüz geliştirme kütüphanelerinden biridir. Responsive ve dinamik web siteleri oluşturmayı sağlayan Bootstrap V5, 16 haziran 2020 tarihinde alpha sürümü olarak yayınlandı.

Gelin Bootstrap V5 ile gelen yeni özelliklere bakalım.

V5 sürümü ile neler değişti?

Boostrap V5 ile gelen özelliklerin en göze çarpanı jQuery ve Internet Explorer desteğinin artık bırakılmış olduğudur. 

Peki Bootstrap jQuery yerine ne kullanacak? 

Boostrap, V5 sürümü için Vanilla JavaScript ile devam edeceğini belirtti. Bu da, Bootstrap V5 üzerine inşa edilen projelerin dosya boyutu ve ileriye dönük sayfa yüklenme hızları açısından önemli ölçüde daha performanslı olacağı anlamına geliyor.

CSS Özellikleri

XXL özelliği

V5 öncesi sürümlerde bildiğiniz gibi sm, md, lg, xl gibi classlar kullanılıyordu, ancak artık xxl class gelmesi ile birlikte 1400px” yani 1400px ve üzeri boyutlarda extra bir media query belirtilmesine gerek kalmıyor.

Container genişlik yapılarını aşağıdaki tablodan görebilirsiniz.  

Ayrıca grid yapılarını buradan inceleyebilirsiniz.

Boostrap V5

 

Customize Alanı

Boostrap V5 ile gelen diğer bir özellik ise customize alanıdır. 

Bu alan özellikle Node.js kullanıyorsanız işinize yarayacak bir alandır. Böylece Bootstrap, sitenizi kendinize göre revize etmenize olanak sunar.

Customize Alanı

Customize Alanı 2

Daha detaylı bilgiye buradan ulaşabilirsiniz.

Renk Paleti

Bootstrap V5 sürümü ile renk paleti de değişen özellikler arasında. Ayrıca SASS değişkenleri ve Bootstrap scss/_variables.scss dosyasında extra kod yazmadan class kullanabilirsiniz. 

 

Renk Paleti 1

Renk Paleti 2

Renk Paleti 3

Renk Paleti 4

Renk paletiyle ilgili daha detaylı bilgiye buradan ulaşabilirsiniz.  

Form yapıları 

Bootstrap V5 ile form kontrolleri de yenilendi. 

Boostrap V5

Daha detaylı bilgiye buradan ulaşabilirsiniz. 

g – gx – gy sınıfları

gx- yatay eksende sütun boşluk değerini kontrol eder.

gy- dikey eksende sütun boşluk değerini kontrol eder.

g- hem yatay hem de dikeyde sütun boşluk değerini kontrol eder.

row-cols-auto sütun genişliklerini otomatik belirler.

g – gx – gy sınıfları için daha detaylı bilgiye buradan ulaşabilirsiniz.

.gx-

.gx-

.gy-

.gy-

.g-

.g-

Float start / end

Bootstrap V5 sürümü öncesinde float-left , float-right yapıları kullanılıyordu. Fakat V5 ile bu “css” değiştirildi.

İşte değiştirilen float yapıları örnekleri:

.float-start

.float-end

.float-none

.float-sm-start

.float-sm-end

.float-sm-none

.float-md-start

.float-md-end

.float-md-none

.float-lg-start

.float-lg-end

.float-lg-none

.float-xl-start

.float-xl-end

.float-xl-none

.float-xxl-start

.float-xxl-end

.float-xxl-none

Icon

Bootstrap V5 ile ilgili en büyük gelişmelerden bir diğeri de icon paketidir. V5 öncesinde fontawesome ya da material icon gibi icon kütüphaneleri kullanılıyordu. Şimdi ise yaklaşık 1.200 simgeye sahip ücretsiz, yüksek kaliteli, açık kaynaklı simge kitaplığı bulunuyor. 

Bunları istediğiniz şekilde ekleyebilir ve düzenleyebilirsiniz. (- SVG’ler, SVG hareketli resimler veya web yazı tipleri). 

Dahası, V5 bunları herhangi bir projede Bootstrap ile veya Bootstrap olmadan kullanma imkanı da sunuyor.

İcon paketi

Icon paketi ile ilgili detaylı bilgiye buradan ulaşabilirsiniz. 

RTL ve RFS özellikleri

RTL

Bootstrap V5 ile birlikte arapça gibi sağdan sola yazım şekli olan dil yapılarına metin desteği de geliyor.

Örnek kullanım şekli : <html lang=”ar” dir=”rtl”> 

Bununla ilgili daha detaylı bilgiye buradan ulaşabilirsiniz.

Yapıların nasıl çalıştığını ise buradan inceleyebilirsiniz.

Not: RTL özelliği hala geliştirme aşamasındadır ve muhtemelen kullanıcı geri bildirimlerine göre şekillenecektir.

RFS

Bootstrap’in yan projesi RFS, başlangıçta yazı tipi boyutlarını yeniden boyutlandırmak için geliştirilmiş olan bir birim yeniden boyutlandırma motorudur ( “Duyarlı Yazı Tipi Boyutları” olarak bilinir). 

Günümüzde RFS gibi birim değerleri ile belli başlı CSS attributeleri rescaling yeteneğine sahiptir. Örnek olarak; margin, padding, border-radius, hatta box-shadow verilebilir.

RFS Kullanma

RFS ile ekran boyutuna göre font boyutlandırma yapabilirsiniz.

Detaylı bilgiye buradan ulaşabilirsiniz. 

Bootstrap V4’ten V5’e Nasıl Geçilir?

(Eğer Bootstrap V4 sürümü kullanıyor ve Bootstrap V5’e geçmek neler yapılması gerektiğini merak ediyorsanız detaylar için tıklayın.)

Ayrıca Boostrap resmi Twitter sayfasından son gelişmeleri takip edebilirsiniz.