Tailwind CSS Academy · Ders

İlkel ve Anlamsal Belirteçler

color.blue.500 gibi ilkel belirteçleri ve color.primary gibi anlamsal belirteçleri tanımlayın; esnek tema oluşturma için bunları Tailwind yapılandırmasında eşleyin.

1. ders / 413 adım

İlkel ve Anlamsal Belirteçler, CoddyKit'te ücretsiz bir Tailwind CSS Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Tailwind CSS Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Tailwind CSS Academy kursu toplamda 4 dersten oluşur.

Tasarım Belirteçleri Nedir

Tasarım belirteçleri, bir tasarım sisteminin renkler, boşluklar, yazı tipi boyutları ve diğer görsel kararlarını saklayan adlandırılmış değerlerdir. CSS'inizin her yerinde #3b82f6 değerini sabit kodlamak yerine ona bir ad verir ve her yerde bu ada başvurursunuz. Böylece genel olarak kolayca güncellenebilen tek bir doğruluk kaynağı oluşturulur. Tailwind'in yapılandırması, bu adlandırılmış değerlerden yardımcı program sınıfları oluşturduğu için tasarım belirteçleri için doğal bir yerdir.

İlkel Belirteçler Tanımlandı

İlkel belirteçler, kendilerine anlamsal bir anlam yüklenmemiş ham ve açıklayıcı değerlerdir. Bir değerin ne olduğunu, nerede kullanıldığını değil, açıklarlar. Örnek olarak color.blue.500, spacing.4 veya fontSize.lg verilebilir. Tailwind'in varsayılan renk paleti tamamen ilkel değerlerden oluşur: blue-500, red-300 ve benzerleri. Daha üst düzey anlamsal katmanı oluşturmak için ilkel belirteçlere başvurursunuz.

// Primitive tokens in tailwind.config.js
module.exports = {
  theme: {
    extend: {
      colors: {
        'blue-brand': '#3b82f6',
        'blue-brand-dark': '#1d4ed8',
        'red-danger': '#ef4444',
        'green-success': '#22c55e'
      }
    }
  }
}

Anlamsal Belirteçler Tanımlandı

Anlamsal belirteçler, bir değerin ham görünümünü değil, amacını açıklar. blue-500 yerine color.primary tanımlarsınız. red-500 yerine color.danger tanımlarsınız. Anlamsal belirteçler kod tabanınızı niyet odaklı hâle getirir; text-primary ifadesini okuyan bir geliştirici, rengin gerçekte ne olduğundan bağımsız olarak bunun ana marka rengi olduğunu hemen anlar. Bu soyutlama, kolay tema oluşturmayı ve yeniden markalamayı mümkün kılar.

// Semantic tokens built on top of primitives
module.exports = {
  theme: {
    extend: {
      colors: {
        primary: '#3b82f6',      // maps to blue-brand primitive
        'primary-hover': '#1d4ed8',
        danger: '#ef4444',       // maps to red-danger primitive
        success: '#22c55e'       // maps to green-success primitive
      }
    }
  }
}

İki Katmanlı Belirteç Mimarisi

Sağlam bir token sistemi iki katman kullanır: altta primitives, üstte ise semantics bulunur. Primitive katmanı, tasarımınızda kullanabileceğiniz tüm ham değerleri depolar. Semantic katman, bu primitives değerlerini amaca dayalı adlarla eşler. Marka renginiz değiştiğinde primitive değeri yalnızca bir kez güncellersiniz ve ona başvuran her semantic token değişikliği otomatik olarak devralır. Sorumlulukların bu şekilde ayrılması, ölçeklenebilir tasarım sistemlerinin temelidir.

// Two-layer architecture
const primitives = {
  blue500: '#3b82f6',
  blue700: '#1d4ed8',
  gray900: '#111827'
};

// tailwind.config.js semantic layer
module.exports = {
  theme: {
    extend: {
      colors: {
        primary: primitives.blue500,
        'primary-dark': primitives.blue700,
        'text-base': primitives.gray900
      }
    }
  }
}

İşaretlemede Semantic Token Kullanımı

Semantic token'lar Tailwind config'inize kaydedildikten sonra, renk kabul eden tüm utility'ler arasında utility class olarak kullanılabilir hâle gelir. bg-primary, text-primary, border-primary ve ring-primary kullanabilirsiniz; bunların tümü aynı semantic değere başvurur. Bu sayede config'inizdeki primary rengini değiştirdiğinizde, arayüzünüzde bu semantic utility'leri kullanan her öğe anında güncellenir.

<button class="bg-primary hover:bg-primary-dark text-white px-4 py-2 rounded-lg">
  Save Changes
</button>

<span class="text-danger font-medium">Error: field required</span>

<div class="border border-success bg-success/10 p-3 rounded">
  Successfully saved!
</div>

Token'lar için Adlandırma Kuralları

İyi token adlandırması, rolü ve ölçeği açıklayan tutarlı bir düzen izler. Yaygın bir kural category.role.modifier biçimini kullanır; örneğin color.action.default, color.action.hover ve color.action.disabled. submit-button-blue gibi aşırı özgül adlardan kaçının; token'ı başka bir yerde yeniden kullanmak istediğiniz anda bu adlar anlamını yitirir. Görsel uygulamayı değil, amacı ve ölçeği açıklayan adlar seçin.

// Good naming: intent-based
colors: {
  'action-default': '#3b82f6',
  'action-hover': '#1d4ed8',
  'action-disabled': '#93c5fd',
  'surface-base': '#ffffff',
  'surface-raised': '#f8fafc',
  'text-primary': '#111827',
  'text-muted': '#6b7280'
}

// Avoid: too specific or too abstract
// 'btn-blue', 'thing1', 'color7'

Primitive Değerleri Semantic Değerlere Eşleme

İki katmanlı mimariyi sürdürmenin en temiz yolu, primitives değerlerini ayrı bir dosyada JavaScript sabitleri olarak tanımlamak ve bunları Tailwind config'inize aktarmaktır. Bu yaklaşım, primitives değerlerinin okunabilir ve yeniden kullanılabilir olmasını sağlarken config'in yalnızca semantic eşlemeleri içermesini sağlar. Bir tasarımcı marka paletini değiştirdiğinde yalnızca primitives dosyasının güncellenmesi gerekir; semantic eşleme olduğu gibi kalır.

// tokens/primitives.js
module.exports = {
  blue50: '#eff6ff',
  blue500: '#3b82f6',
  blue700: '#1d4ed8',
  rose500: '#f43f5e',
  gray100: '#f3f4f6',
  gray900: '#111827'
};

// tailwind.config.js
const p = require('./tokens/primitives');
module.exports = {
  theme: {
    extend: {
      colors: {
        primary: p.blue500,
        'primary-hover': p.blue700,
        'primary-light': p.blue50,
        danger: p.rose500
      }
    }
  }
}

Semantic Boşluk ve Tipografi Token'ları

Token'lar yalnızca renklerle sınırlı değildir. Semantic boşluk ve tipografi token'ları da tanımlayabilirsiniz. p-4 yerine card-padding adlı bir semantic boşluk token'ı kullanmak, boşluğun ne amaçla kullanıldığını açıkça belirtir. Tailwind'de bunları theme.extend.spacing ve theme.extend.fontSize altında eklersiniz. Bu, arayüz tutarlılığını güvence altına alır: uygulamadaki her kart aynı p-card boşluğunu kullanır ve bu boşluğun yalnızca bir kez ayarlanması gerekir.

module.exports = {
  theme: {
    extend: {
      spacing: {
        'card': '1.5rem',     // p-card = 24px
        'section': '5rem',    // py-section = 80px
        'nav-height': '4rem'  // h-nav-height
      },
      fontSize: {
        'hero': ['3.5rem', { lineHeight: '1.1' }],
        'body': ['1rem', { lineHeight: '1.6' }]
      }
    }
  }
}

Etkileşimli Durumlar için Token'lar

Etkileşimli durumlar için token tanımlamak da aynı derecede önemlidir. Birincil düğmenin varsayılan, üzerine gelme, etkin ve devre dışı görünümleri için token'lara ihtiyacı vardır. Semantic token'lar olmadığında her geliştirici üzerine gelme durumu için biraz farklı tonlar seçebilir ve bu da görsel tutarsızlık oluşturur. action-hover ve action-disabled gibi semantic token'larla sistemdeki her düğme, kullanıcı etkileşimine aynı şekilde yanıt verir.

<button
  class="bg-action-default hover:bg-action-hover active:bg-action-active
         disabled:bg-action-disabled disabled:cursor-not-allowed
         text-white px-5 py-2.5 rounded-lg transition-colors"
>
  Submit
</button>

<!-- tailwind.config.js colors:
  action-default: '#3b82f6'
  action-hover:   '#1d4ed8'
  action-active:  '#1e40af'
  action-disabled:'#93c5fd'
-->

Açık ve Koyu Modda Token Kullanımı

Semantic token'lar koyu mod ile birleştirildiğinde en güçlü hâline ulaşır. blue-500 gibi bir primitive token sabit bir değere sahipken primary gibi bir semantic token, açık ve koyu modlarda farklı primitives değerlerine eşlenebilir. Aracı olarak CSS değişkenlerini kullanmak, CSS'yi yeniden oluşturmadan çalışma zamanında geçiş yapmayı sağlar. Bu teknik temalandırma modülünde daha ayrıntılı ele alınacaktır; ancak semantic token'ların bunu mümkün kıldığını anlamak, mimari açıdan önemli bir kavrayıştır.

/* global.css */
:root {
  --color-primary: #3b82f6;
  --color-surface: #ffffff;
  --color-text: #111827;
}

.dark {
  --color-primary: #60a5fa;
  --color-surface: #1f2937;
  --color-text: #f9fafb;
}

/* tailwind.config.js */
colors: {
  primary: 'var(--color-primary)',
  surface: 'var(--color-surface)',
  'text-base': 'var(--color-text)'
}

Token Denetimi ve Bakımı

Bir tasarım sistemi büyüdükçe token denetimleri zorunlu hâle gelir. Denetim, her token'ın etkin olarak kullanılıp kullanılmadığını, herhangi bir token'ın belgelenen amacından sapıp sapmadığını ve yeni bir token gerektiren yeni kalıpların ortaya çıkıp çıkmadığını kontrol eder. grep gibi araçlar veya özel tasarım token yöneticileri, kullanılmayan token'ları bulmak için kod tabanınızı tarayabilir. Kullanılmayan token'ları kaldırmak config'i yalın tutar ve ekibe yeni katılan geliştiricilerin zihinsel yükünü azaltır.

// Find tokens in config not used in markup
// (pseudocode — run as a build-time lint check)
const definedTokens = Object.keys(theme.colors);
const usedTokens = scanHTMLFiles(srcDir)
  .flatMap(file => extractTailwindClasses(file))
  .map(cls => cls.replace(/^(bg|text|border|ring)-/, ''));

const unusedTokens = definedTokens
  .filter(t => !usedTokens.includes(t));

console.log('Unused tokens:', unusedTokens);

Hızlı Kontrol

Bu dersteki Tailwind CSS Mastery kavramlarını anlayıp anlamadığınızı test edin.

Ders Özeti

Bu derste şunları öğrendiniz: primitive token'lar, color.blue.500 gibi adlandırılmış ham değerlerdir; semantic token'lar, bu primitive değerleri color.primary gibi amaca dayalı adlarla eşler; iki katmanlı mimari ise bir değerin ne olduğunu, nerede kullanıldığından ayırır. Sırada, CSS değişkenlerinin Tailwind token'ları çalışma zamanında tema değiştirmeye nasıl bağladığını inceleyeceğiz.

Başlamak ücretsiz

Yapay zeka eğitmeniyle HTML öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
30
Dersler
120

Sıkça Sorulan Sorular

“İlkel ve Anlamsal Belirteçler” dersi ücretsiz mi?

Evet — “İlkel ve Anlamsal Belirteçler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Tailwind CSS Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Tailwind CSS Academy kursu toplamda 4 dersten oluşur.

“İlkel ve Anlamsal Belirteçler” dersinde ne öğreneceğim?

color.blue.500 gibi ilkel belirteçleri ve color.primary gibi anlamsal belirteçleri tanımlayın; esnek tema oluşturma için bunları Tailwind yapılandırmasında eşleyin. Tailwind CSS Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Tailwind CSS Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Tailwind CSS Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“İlkel ve Anlamsal Belirteçler” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Tailwind CSS Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Tailwind CSS Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. İlkel ve Anlamsal Belirteçler
  2. CSS Değişkenleriyle Tema Oluşturma
  3. Birden Çok Marka İçin Tema Stratejisi
  4. Belirteç Belgeleri ve Yönetişim
← Tailwind CSS Academy Sayfasına Dön