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.

Tailwind CSS ile design token'ları (renk, tipografi) tek bir config dosyasından nasıl merkezi yönettiğim

pixero

Üye
Katılım
14 Mart 2026
Mesajlar
11
Merhaba arkadaşlar, bugün size Tailwind CSS kullanırken başıma gelen ve sonradan hayatımı kurtaran bir düzenleme hikayesinden bahsedeceğim. Proje büyüdükçe, her component'te aynı mavi tonunu (#3B82F6) yazmak, font boyutlarını hatırlamak ve dark mode renklerini elle güncellemek tam bir kabusa dönüşmüştü. İşte benim kullandığım en temiz çözüm: her şeyi tek bir `tailwind.config.js` dosyasından yönetmek.

🔥 Karşılaştığım Kaos

Bir butonun rengini değiştirmek istediğimde, o rengi kullanan tüm component'leri bulup tek tek güncellemem gerekiyordu. Aynı şey font ailesi, border radius veya box shadow için de geçerliydi. Bu, hem zaman kaybı hem de tutarsız bir arayüz demekti. "Bu işin bir merkezi yönetimi olmalı" deyip kolları sıvadım.

🎨 Renk Paletini Token'a Dönüştürmek

İlk iş, projedeki tüm renkleri bir `theme.extend.colors` objesinde toplamak oldu. Artık `bg-primary-500` yazdığımda, config'de tanımladığım tam o mavi tonu gelecek. İşte config dosyamdan bir kesit:

JavaScript:
// tailwind.config.js
module.exports = {
  theme: {
    extend: {
      colors: {
        // Primary Brand Colors
        primary: {
          50: '#eff6ff',
          100: '#dbeafe',
          500: '#3B82F6', // Ana marka mavisi
          600: '#2563eb',
          900: '#1e3a8a',
        },
        // Semantic Colors
        success: '#10b981',
        warning: '#f59e0b',
        error: '#ef4444',
        // Neutral Grays
        gray: {
          100: '#f3f4f6',
          800: '#1f2937',
          900: '#111827',
        }
      },
    },
  },
}

Gördüğünüz gibi, `primary`, `success`, `error` gibi anlamlı (semantic) isimler kullandım. Artık component'lerde `bg-[#3B82F6]` yerine bg-primary-500 yazıyorum. Renk değişecek olursa, sadece buradaki HEX kodunu değiştirmem yeterli!

🔤 Tipografi ve Diğer Token'lar

Aynı mantığı font boyutu (fontSize), font ailesi (fontFamily), boşluklar (spacing) ve köşe yuvarlaklıkları (borderRadius) için de uyguladım. Böylece tüm tasarım kararları tek bir yerden kontrol edilebilir oldu.

JavaScript:
// tailwind.config.js (devamı)
module.exports = {
  theme: {
    extend: {
      // ... colors tanımı burada
      fontFamily: {
        'display': ['Inter', 'system-ui', 'sans-serif'],
        'body': ['Open Sans', 'Georgia', 'serif'],
      },
      fontSize: {
        'xs': '0.75rem',    // 12px
        'sm': '0.875rem',   // 14px
        'base': '1rem',     // 16px - Varsayılan body
        'lg': '1.125rem',   // 18px
        'xl': '1.5rem',     // 24px - Başlıklar
        '2xl': '2rem',      // 32px - Büyük başlıklar
      },
      borderRadius: {
        'none': '0',
        'sm': '0.125rem',
        'DEFAULT': '0.375rem', // Varsayılan değer
        'lg': '0.75rem',
        'full': '9999px',
      },
      spacing: {
        '18': '4.5rem',
        '88': '22rem',
      }
    },
  },
}

Artık bir başlık için `font-display text-xl text-primary-900` yazmak hem çok daha okunabilir hem de değişmesi gerektiğinde tek bir noktadan yönetilebilir.

✅ Sonuç ve Tavsiyeler

Bu yöntemi uyguladıktan sonra:
Tasarımda tutarlılık sağlandı.
Güncelleme yapmak inanılmaz kolaylaştı.
Takım arkadaşlarımla aynı "dil" üzerinden konuşmaya başladık (örn: "Bu butona `error` rengini ver").
Dark mode geçişlerini config'deki renk skalaları sayesinde çok daha rahat yönetebildim.

Siz de Tailwind'de böyle bir merkezi yapı kullanıyor musunuz? Özellikle büyük projelerde farklı bir design token yönetim stratejiniz var mı? Yorumlarda deneyimlerinizi paylaşırsanız çok sevinirim!
 

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