<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Onur Şabanoğlu</title>
    <description>The latest articles on DEV Community by Onur Şabanoğlu (@10ursabanoglu).</description>
    <link>https://dev.to/10ursabanoglu</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F270808%2Fb208c2e9-9852-4e02-a3a9-441a47cb2ce2.jpg</url>
      <title>DEV Community: Onur Şabanoğlu</title>
      <link>https://dev.to/10ursabanoglu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/10ursabanoglu"/>
    <language>en</language>
    <item>
      <title>CSS'te Değişkenler</title>
      <dc:creator>Onur Şabanoğlu</dc:creator>
      <pubDate>Wed, 19 Aug 2020 09:32:05 +0000</pubDate>
      <link>https://dev.to/10ursabanoglu/css-te-degiskenler-mmb</link>
      <guid>https://dev.to/10ursabanoglu/css-te-degiskenler-mmb</guid>
      <description>&lt;p&gt;Değişkenler programlama dillerinin neredeyse hepsinde kullanılan bir özelliktir. Frontend dünyasında ise, değişkenler en çok talep edilen CSS özelliklerinden birisiydi. Bu özelliği önceden sadece CSS Önişlemcileri (pre-processor) ile birlikte kullanabiliyorduk. Büyük projelerde, derlenme sürelerinin uzun sürmesi gibi durumlar Önişlemci kullanmanın dezavantajlarını ortaya çıkardı. CSS'in bugün geldiği noktaya bakarsak, herhangi bir Önişlemciye ihtiyaç duymadan bu özelliği kullanmamızı sağlıyor.&lt;/p&gt;

&lt;p&gt;Bir proje üzerinde çalışırken birçok öge için aynı değerleri (metin renkleri, arka plan renkleri vb.) kullanmamız gerekir. Bu gibi durumlarda aynı kodu tekrar tekrar yazmak yerine, bir defaya mahsus değişkene bir değer tanımlayıp, bu değişkeni kullanacağımız yerlerde çağırmak, projemiz açısından hem tutarlılık sağlayacak, hemde projenin bakımını kolaylaştıracaktır.&lt;/p&gt;

&lt;p&gt;Değişkenler, renkleri, yazı tiplerini ve boşluk değerleri gibi CSS özelliklerini tek bir noktadan yönetmeyi ve bir kod tabanı genelinde tutarlılık sağlamayı kolaylaştırır. Değişkenleri kullanarak bir özelliğe bir değer atayabilir ve bunu CSS kodumuzda ihtiyaç olunan yerlerde yeniden kullanabiliriz.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bu bölümde CSS değişkenlerinin şu özelliklerine değinmeye çalışacağım;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;CSS'te değişkenler nasıl tanımlanır ve bu değişkenler için varsayılan değerler nasıl ayarlanır?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tanımladığımız değişkenleri projemizde nasıl kullanabiliriz?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Değişken değerlerine bir yedek bir değer ataması nasıl yapılır?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Değişkenlerde dinamik yapı nedir ve medya sorguları ile nasıl çalışır?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Değişkenlerin güncel tarayıcı destek durumları&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Değişken Tanımlama&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Her Önişlemci, değişkenleri tanımlamak için farklı yollar kullanır. Örneğin Sass'ta değişken tanımlamak için değişken isminin başına "$" işareti, Less'te ise "@" işareti gelir. Bir CSS değişkeni tanımlamak için ise, değişken isminin önüne çift tire (--) ile başlayan bir tanım yapılır. Tire işareti CSS ayrıştırıcısına bunun bir CSS değişkeni olduğu belirtir ve bu değişkenin kullanıldığı heryerde, tanımlanan değişken değeri kullanılır.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Bildiğiniz gibi Javascript'te değişkenleri, global ve local olarak iki şekilde tanımlayabiliyoruz. Aynı durum CSS değişkenleri içinde geçerlidir.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;:root&lt;/strong&gt; seçici, Belgenin kök elamanın yerine geçer(yani onu temel alır). Örneğin HTML dosyasında :root,  etiketini temsil eder. Dolayısıyla :root' a tanımlanan değişkenler, global değişken olarak kabul edilir. --secondary-color değişkeni ise bir local değişkendir.&lt;/p&gt;

&lt;p&gt;Değişken isimleri büyük küçük harf duyarlıdır. Yani &lt;strong&gt;--primary-color&lt;/strong&gt; ve &lt;strong&gt;--primary-Color&lt;/strong&gt; iki farklı değişkenlerdir.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;h2&gt;
  
  
  &lt;strong&gt;Değişken Kullanımı&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;CSS'te değişkenler &lt;strong&gt;var()&lt;/strong&gt; fonksiyonu ile çağırılır.&lt;br&gt;
Örneğin &lt;strong&gt;--primary-color&lt;/strong&gt; değişkenimize atanan değeri, buton arka plan rengi olarak kullanmak isteseydik;&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;
&lt;br&gt;
şeklinde tanımlama yapmamız gerekirdi.

&lt;p&gt;CSS değişkenleri yalnızca standart CSS özelliklerinin değerlerini ayarlamak için kullanılabilir. Örneğin bir özellik adını, bir değişken olarak tanımlayıp kullanamayız.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Ayrıca bir özellik değerini de değişken olarak tanımlayıp kullanamayız.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Yapılamayacaklardan bir tanesi de bir değişkeni, bir değer dizesinin parçası olarak birleştiremeyiz.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;h2&gt;
  
  
  &lt;strong&gt;Bir Yedek Belirleme&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Var()&lt;/strong&gt; fonksiyonunu kullanarak, verilen değişken henüz tanımlanmamışsa veya geçersiz bir değere sahipse, yedek bir değer atayabiliyoruz.&lt;/p&gt;

&lt;p&gt;Var() fonksiyonu en fazla iki değer alabilir. Bunlardan ilki bir mutlaka bir özellik adı olmalıdır. İkincisi değer ise, isteğe bağlı olup, ilk değerin geçersiz olduğu durumda kullanılır.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;--primary-color&lt;/strong&gt; değişkenine bir değer ataması yapıldıysa, arka plan rengi &lt;strong&gt;#1A73E8&lt;/strong&gt; olacaktır, tanımlanmamış ise o zaman arka plan rengi blue değerinin rengi olacaktır.&lt;/p&gt;

&lt;p&gt;Var() fonksiyonu içinde, ikinci bir değer olarakta değişken kullanabiliyoruz.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;
&lt;br&gt;
&lt;em&gt;Yukarıda ki kod bloğunda  *&lt;/em&gt;--primary-color** değişkenine bir değer ataması yapıldıysa arka plan rengi primary-color'a atanan değer, tanımlanmamış ise  secondary-color'a atanan değer olacaktır. İki değişkene de tanımlama yapılmadıysa arka plan rengi, özelliğin başlangıç değeri olacaktır.*

&lt;h2&gt;
  
  
  &lt;strong&gt;Dinamik Yapısı ve Medya Sorguları ile Kullanma&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;CSS değişkenlerinin en büyük avantajlarından bir tanesi de dinamik bir yapısının olmasıdır. Peki nedir bu dinamik yapı?&lt;/p&gt;

&lt;p&gt;Ön işlemcilerle birlikte kullanılan değişkenler statik bir yapıya sahiptirler, CSS'te ise bu durum farklıdır. CSS'te tanımlanan bir değişken, dinamik yapıya sahip olduğu için değiştirilebilir özelliği vardır.&lt;/p&gt;

&lt;p&gt;Bunu en çok kullandığımız noktalardan bir tanesi de, farklı ekran boyutları için kullandığımız, medya sorguları ile birlikte kullanımını göreceğiz.&lt;/p&gt;

&lt;p&gt;CSS değişkenlerini medya sorguları ile birlikte kullanabiliyoruz. Böylece farklı ekran boyutları için stillerimizi tek bir noktadan yönetmek daha kolay hale geliyor.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;
&lt;br&gt;
&lt;em&gt;Yukarıda ki örnekte, ekran genişliği 576px' e kadar Butonun padding değeri 1rem olarak ayarlanacak, ekran genişliği 576px' i aştığı an padding değeri 2rem olacaktır.&lt;/em&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Tarayıcı Desteği&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;CSS'te değişkenler, birçok güncel tarayıcı tarafından desteklenir. İnternet Explorer hiçbir sürümü desteklemezken, Microsoft Edge'in 15'ten, Safari'nin ise 9.1'den sonraki sürümleri destekler. Microsoft Edge'in 15 sürümü desteklemesine rağmen hâlâ birkaç hataya sahiptir.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XvUm6VcP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rcmy6m4yzx0rheb8mrgt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XvUm6VcP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rcmy6m4yzx0rheb8mrgt.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tarayıcı desteğinin güncel durumunu ve diğer CSS özelliklerinin tarayıcı destek durumlarına aşağıdaki linkten ulaşabilirsiniz. ☟&lt;/p&gt;

&lt;p&gt;&lt;a href="https://caniuse.com/#search=Custom%20Properties"&gt;https://caniuse.com/#search=Custom%20Properties&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Özetle;&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;CSS Değişkenleri:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Herhangi bir ön işlemci kullanmadan, değişken tanımlamamıza,&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Basit ve bakımı kolay Css yazmamıza,&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tekrarlanan değerler için tek referans noktası oluşturmamıza,&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Farklı ekran boyutları için atanan değerleri daha kolay yönetmemize olanak sağlar.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Kaynaklar;&lt;/em&gt;&lt;br&gt;
&lt;a href="https://www.sitepoint.com/premium/books/css-master-2nd-edition"&gt;https://www.sitepoint.com/premium/books/css-master-2nd-edition&lt;/a&gt;&lt;br&gt;
&lt;a href="https://fatihhayrioglu.com/css-degiskenleri-custom-properties/"&gt;https://fatihhayrioglu.com/css-degiskenleri-custom-properties/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>css</category>
    </item>
  </channel>
</rss>
