smaple.tr
design tokens

Tasarim Tokenlari ve Design System Olceklendirme Rehberi [2026]

Mehmet Kurtipek
February 2, 2026
10 min read
design tokens
design system
style dictionary
figma tokens
component library
UI kit
tasarım sistemi
multi-brand
design-to-code
frontend mimari

Tasarim Tokenlari Nedir ve Neden Onemlidir

Modern yazilim projelerinde tutarli bir kullanici deneyimi sunmak, ekip buyudukce zorlasmaya baslar. Farkli gelistiriciler farkli renk kodlari kullanir, tasarimci ile frontend muhendisi arasinda spacing degerleri uyumsuzlasir ve sonunda urun gorsel olarak parcalanir. Tasarim tokenlari (design tokens), tam olarak bu sorunu cozmek icin ortaya cikmis bir yaklasimdir.

Tasarim tokenlari, bir tasarim sisteminin en temel gorsel kararlaridir. Renk, tipografi, bosluk, golge, border-radius ve animasyon suresi gibi degerleri platform-bagimsiz bir formatta tanimlar. Bu degerler tek bir kaynaktan (single source of truth) yonetilir ve farkli platformlara (web, iOS, Android, Flutter) otomatik olarak dagitilir.

Salesforce'un Lightning Design System ekibinin 2014 yilinda ortaya attigi bu konsept, bugun kurumsal yazilim gelistirmenin vazgecilmez bir parcasi haline gelmistir. Tokenlarin temel kategorileri sunlardir:

Token Kategorisi Ornek Degerler Kullanim Alani
Renk (Color) #1A73E8, rgba(0,0,0,0.12) Marka renkleri, arka plan, metin
Tipografi 16px, Inter, 600 Font boyutu, font ailesi, font agirligi
Bosluk (Spacing) 4px, 8px, 16px, 24px Margin, padding, gap degerleri
Golge (Shadow) 0 2px 4px rgba(0,0,0,0.1) Kart golgeleri, dropdown golgeleri
Border 1px solid, 8px radius Cerceve kalinligi, kose yuvarlatma
Animasyon 200ms, ease-in-out Gecis suresi, hareket egrisi

Token Hiyerarsisi: Global, Alias ve Component Tokenlari

Tasarim tokenlarinin gercek gucu, dogru bir hiyerarsi ile ortaya cikar. Duz bir token listesi yerine katmanli bir yaklasim benimsemek, bakimi kolaylastirir ve marka degisikliklerinde tek noktadan guncelleme yapmayi mumkun kilar.

Global Tokenlar (Primitive Tokens)

En alt katmandaki ham degerlerdir. Herhangi bir anlam veya baglam icermez, sadece degerleri tanimlar:

{
  "color": {
    "blue-500": { "value": "#1A73E8" },
    "blue-600": { "value": "#1557B0" },
    "gray-100": { "value": "#F5F5F5" },
    "gray-900": { "value": "#212121" }
  },
  "spacing": {
    "scale-1": { "value": "4px" },
    "scale-2": { "value": "8px" },
    "scale-4": { "value": "16px" },
    "scale-6": { "value": "24px" }
  }
}

Alias Tokenlar (Semantic Tokens)

Global tokenlara anlam katan katmandir. "Bu renk ne icin kullaniliyor?" sorusuna cevap verir:

{
  "color": {
    "brand-primary": { "value": "{color.blue-500}" },
    "brand-primary-hover": { "value": "{color.blue-600}" },
    "background-default": { "value": "{color.gray-100}" },
    "text-primary": { "value": "{color.gray-900}" }
  },
  "spacing": {
    "inline-sm": { "value": "{spacing.scale-2}" },
    "inline-md": { "value": "{spacing.scale-4}" },
    "stack-md": { "value": "{spacing.scale-4}" }
  }
}

Component Tokenlar

Belirli bir bilesene ozgu tokenlari tanimlar. En ust katmandir:

{
  "button": {
    "background-color": { "value": "{color.brand-primary}" },
    "background-color-hover": { "value": "{color.brand-primary-hover}" },
    "padding-horizontal": { "value": "{spacing.inline-md}" },
    "padding-vertical": { "value": "{spacing.inline-sm}" },
    "border-radius": { "value": "{border.radius-md}" }
  }
}

Bu uc katmanli yaklasimda marka rengini degistirmek icin yalnizca global katmandaki blue-500 degerini guncellemek yeterlidir. Degisiklik, alias katmani uzerinden tum bilesentokenlarina otomatik olarak yansir.

Design Token Araclari ve Ekosistem

Token yonetimi icin olgunlasmis bir arac ekosistemi mevcuttur. Proje ihtiyaclarina gore dogru araci secmek, gelistirme surecini onemli olcude hizlandirir.

Style Dictionary

Amazon tarafindan gelistirilen acik kaynakli arac, token donusturme islemlerinin endistri standardidir. JSON veya YAML formatinda tanimlanan tokenlari CSS degiskenleri, iOS Swift sabitleri, Android XML kaynaklari ve daha fazlasina donusturur:

// config.js - Style Dictionary yapilandirmasi
module.exports = {
  source: ["tokens/**/*.json"],
  platforms: {
    css: {
      transformGroup: "css",
      buildPath: "build/css/",
      files: [{
        destination: "variables.css",
        format: "css/variables"
      }]
    },
    ios: {
      transformGroup: "ios-swift",
      buildPath: "build/ios/",
      files: [{
        destination: "StyleDictionary.swift",
        format: "ios-swift/class.swift",
        className: "StyleDictionary"
      }]
    },
    android: {
      transformGroup: "android",
      buildPath: "build/android/",
      files: [{
        destination: "style_dictionary_colors.xml",
        format: "android/colors"
      }]
    }
  }
};

Figma Tokens (Tokens Studio)

Tasarimcilarin Figma icerisinde dogrudan token tanimlamasini ve yonetmesini saglayan eklenti, tasarim-gelistirme koprusunun en kritik parcasidir. JSON formatinda tokenlari disa aktarabilir ve Git repolarina senkronize edebilir.

Arac Karsilastirmasi

Ozellik Style Dictionary Tokens Studio Theo (Salesforce)
Platform destegi Cok genis Figma odakli Genis
Giris formati JSON, YAML JSON (Figma) JSON, YAML
Cikis formati CSS, iOS, Android, Flutter JSON, CSS CSS, iOS, Android
Git entegrasyonu Manuel Yerlesik Manuel
Tema destegi Plugin ile Yerlesik Sinirli
Topluluk buyuklugu Cok buyuk Buyuk Orta

Multi-Brand ve Multi-Platform Token Yonetimi

Birden fazla marka veya urun icin design system isleten organizasyonlarda token yonetimi ek bir karmasiklik katmani getirir. Smart Maple olarak Ankara merkezli projelerimizde, ozellikle holding yapisindaki kurumsal musterilerde bu senaryoyla sik karsilasiyoruz.

Multi-Brand Token Stratejisi

Temel yaklasim, paylasilan (shared) tokenlari ve markaya ozel tokenlari ayirmaktir:

tokens/
  core/
    spacing.json        # Tum markalar icin ortak
    typography.json     # Tum markalar icin ortak
  brands/
    brand-a/
      colors.json       # Marka A renkleri
      overrides.json    # Marka A ozel degerler
    brand-b/
      colors.json       # Marka B renkleri
      overrides.json    # Marka B ozel degerler
  themes/
    light.json          # Acik tema alias tokenlari
    dark.json           # Koyu tema alias tokenlari

Bu yapida core dizini tum markalar arasinda paylasilan degerleri icerir. Her marka kendi renk paletini ve gerektiginde override degerlerini tanimlar. Tema katmani ise hem acik hem koyu mod destegi saglar.

Multi-Platform Cikti Uretimi

Style Dictionary pipeline'i ile tek bir token kaynagindan birden fazla platforma cikti uretmek mumkundur:

# Build komutu ornegi
npx style-dictionary build --config config.web.js
npx style-dictionary build --config config.ios.js
npx style-dictionary build --config config.android.js
npx style-dictionary build --config config.flutter.js

Her platform icin uretilen cikti formatlari:

Platform Cikti Formati Ornek
Web CSS Custom Properties --color-brand-primary: #1A73E8;
iOS Swift Constants static let brandPrimary = UIColor(hex: "#1A73E8")
Android XML Resources <color name="brand_primary">#1A73E8</color>
Flutter Dart Constants static const brandPrimary = Color(0xFF1A73E8);

Component Library Olceklendirme

Tokenlar altyapiyi olustururken, gercek kullanici deneyimini bilesenler (components) sekillendirir. Farkli platformlar icin component library olceklendirmek, dikkatli bir mimari gerektirir.

Monorepo Yaklasimi

Buyuk olcekli design system projeleri icin monorepo yapisi onerilir:

packages/
  tokens/              # Tasarim tokenlari paketi
  react-components/    # React bilesen kutuphanesi
  flutter-widgets/     # Flutter widget kutuphanesi
  web-components/      # Framework-agnostic web components
  icons/               # SVG ikon kutuphanesi
  docs/                # Dokumantasyon sitesi (Storybook/ZeroHeight)

React Component Library Ornegi

Tokenlari React bilesenlerinde kullanmanin en etkili yolu CSS Custom Properties uzerinden baglamaktir:

// Button.tsx
import styles from './Button.module.css';

interface ButtonProps {
  variant: 'primary' | 'secondary' | 'ghost';
  size: 'sm' | 'md' | 'lg';
  children: React.ReactNode;
}

export const Button = ({ variant, size, children }: ButtonProps) => {
  return (
    <button className={`${styles.button} ${styles[variant]} ${styles[size]}`}>
      {children}
    </button>
  );
};
/* Button.module.css */
.button {
  font-family: var(--font-family-base);
  border-radius: var(--button-border-radius);
  transition: background-color var(--animation-duration-fast) var(--animation-easing-default);
}

.primary {
  background-color: var(--button-background-color);
  color: var(--button-text-color);
  padding: var(--button-padding-vertical) var(--button-padding-horizontal);
}

.primary:hover {
  background-color: var(--button-background-color-hover);
}

Design-to-Code Workflow Otomasyonu

Tasarimdan koda gecis surecini otomaticlestirmek, design system'in gercek degerini ortaya cikarir. Manuel kopyalama hatalara acik ve yavas bir surectir.

Otomatik Token Pipeline

Ideal workflow su adimlari icerir:

  1. Tasarimci Figma'da Tokens Studio ile tokenlari gunceller
  2. Tokens Studio degisiklikleri Git reposuna push eder
  3. CI/CD pipeline tetiklenir
  4. Style Dictionary tokenlari hedef platformlara donusturur
  5. Otomatik testler calistirilir
  6. Paket versiyonu guncellenir ve npm/pub registry'ye yayinlanir
  7. Tuketici uygulamalar yeni versiyonu alir
# .github/workflows/tokens-pipeline.yml
name: Token Build Pipeline
on:
  push:
    paths:
      - 'tokens/**'

jobs:
  build-tokens:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
      - run: npm ci
      - run: npx style-dictionary build
      - run: npm test
      - run: npm version patch
      - run: npm publish
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

Gorsel Regresyon Testleri

Token degisikliklerinin bilesenleri nasil etkiledigini otomatik olarak tespit etmek icin gorsel regresyon testleri kritik oneme sahiptir. Chromatic, Percy veya Playwright gibi araclarla her token degisikliginde ekran goruntuleri karsilastirilir ve beklenmedik gorsel kaymalar erken yakalanir.

Design System Governance ve Versiyonlama

Bir design system'in uzun vadeli basarisi, teknik mimarisi kadar yonetim modeline de baglidir.

Governance Modelleri

Model Tanim Uygun Olcek
Merkezi (Centralized) Ozel bir DS ekibi tum kararlari alir 50-200 kisi
Federal (Federated) DS ekibi + urun ekiplerinden temsilciler 200-1000 kisi
Topluluk (Community) Herkes katki saglar, DS ekibi gozden gecirir 1000+ kisi

Semantik Versiyonlama

Design system paketleri icin Semantic Versioning (SemVer) uygulamak zorunludur:

  • Major (v2.0.0): Geriye donuk uyumsuz degisiklikler (token kaldirilmasi, isim degisikligi)
  • Minor (v1.1.0): Geriye donuk uyumlu yeni ozellikler (yeni token eklenmesi)
  • Patch (v1.0.1): Hata duzeltmleri (token degerinde kucuk ayar)

Deprecation sureci de ayni titizlikle yonetilmelidir. Kaldirilacak tokenlar en az bir minor versiyon oncesinde deprecated olarak isaretlenmeli ve migration rehberi sunulmelidir.

Design System Metrikleri

Bir design system'in basarisini olcmeden iyilestirmek mumkun degildir. Smart Maple olarak Ankara merkezli projelerimizde asagidaki metrikleri duzenliolarak izliyoruz.

Temel Metrikler

Metrik Tanim Hedef
Adoption Rate DS bilesenlerini kullanan ekip yuzdesi %80+
Coverage Urun arayuzundeki DS bilesen kullanim orani %90+
Token Override Rate Tokenlari override eden kod satirlarinin orani %5 altinda
Contribution Rate DS'ye katki saglayan ekip uyesi yuzdesi %20+
Build Time Token donusturme pipeline suresi 30 saniye altinda
Bug Escape Rate DS kaynakli uretim hatalari Ayda 2'den az

Metrik Toplama Yontemleri

Coverage ve override rate icin statik analiz araclari kullanilabilir. ESLint eklentileri ile kod tabaninda design system disindan kullanilan hardcoded renk veya spacing degerleri tespit edilir:

// .eslintrc.js - DS uyumluluk kurali ornegi
module.exports = {
  rules: {
    "no-restricted-syntax": [
      "error",
      {
        selector: "Literal[value=/^#[0-9a-fA-F]{3,8}$/]",
        message: "Hardcoded renk degeri yerine design token kullanin."
      }
    ]
  }
};

Buyuk Ekiplerde Design System Yonetimi

Ekip buyuklugu 50 kisinin uzerine ciktiginda, design system yonetimi teknik bir sorundan organizasyonel bir soruna donusur.

Iletisim ve Egitim

Design system'in benimsenmesi icin surekli iletisim ve egitim gereklidir. Haftalik "DS Office Hours" toplantilari, yeni bilesenler icin canli demo oturumlari ve kapsamli dokumantasyon siteleri bu surecin temel taslaridi. Storybook veya ZeroHeight gibi araclarla oluturulan interaktif dokumantasyon, gelisitiricilerin bilesenleri hizla kesfetmesini saglar.

Katki Sureci (Contribution Model)

Buyuk ekiplerde herkesin design system'e katki saglayabilmesi icin net bir surec tanimlanmalidir:

  1. RFC (Request for Comments) belgesi ile yeni bilesen veya token onerisi
  2. Tasarim incelemesi (DS ekibi + ilgili urun tasarimcisi)
  3. Prototip gelistirme ve kullanilabilirlik testi
  4. Kod incelemesi ve erisilebilirlik denetimi
  5. Dokumantasyon ve migration rehberi hazirlanmasi
  6. Release ve duyuru

Erisilebilirlik Standartlari

Token tanimlarken erisilebilirlik (accessibility) standartlarini goz onunde bulundurmak zorunludur. Renk kontraseti WCAG 2.1 AA seviyesinde en az 4.5:1 oraninda olmalidir. Focus state, hover state ve disabled state icin ayri tokenlar tanimlanmali ve bu degerler erisilebilirlik gereksinimlerini karsilamaldir.

Sonuc ve Uygulama Plani

Tasarim tokenlari ve design system olceklendirme, uzun vadeli bir yatirimdir. Kucuk baslayip iteratif buyumek en saglikli yaklasimdir. Ilk adim olarak mevcut projelerdeki tekrarlayan degerleri tespit edin ve bunlari global tokenlar olarak tanimlayin. Ardindan alias katmanini ekleyerek anlam kazandirin ve son olarak component tokenlari ile bilesen bazinda ozellestirme kapisi acin.

Dogru arac secimi, net bir governance modeli ve olculebilir metriklerle desteklenen bir design system, urun ekiplerinin hizini artirirken gorsel tutarliligi garanti altina alir. Token hiyerarsisini uc katmanli tutun, CI/CD pipeline ile donusturme islemlerini otomaticlestirin ve ekip genelinde benimseme oranini duzenli olarak takip edin. Bu yaklasim, onlarca gelistiricinin birlikte calstigi projelerde bile tutarli ve kaliteli kullanici deneyimleri sunmanizi saglayacaktir.

Related Articles

August 10, 2026

MLOps Rehberi: Makine Öğrenmesi Modellerini Production'a Taşıma

Giriş: MLOps Nedir ve Neden Önemlidir? Makine öğrenmesi modelleri geliştirmek günümüzde nispeten kolaydır. Açık kaynak kütüphaneleri kullanarak son derece başarılı modeller oluşturabiliriz. Ancak bu modelleri production ortamına taşıyarak, ölçeklendirebilir, güvenilir ve sürdürülebilir şekilde çalıştırmak tamamen farklı bir hikayedir. Araştırmalara göre, veri bilimcileri tarafından geliştirilen makine öğrenmesi modellerinin %87'si hiçbir zaman production ortamına ulaşmaz. Bu başarısızlı

Read More
August 9, 2026

LLM Fine-Tuning ve Özel Model Eğitimi Rehberi [2026]

LLM Fine-Tuning: Kurumsal Yapay Zeka Stratejisinin Temel Taşı Büyük dil modelleri (LLM), genel amaçlı metin üretimi ve anlama konusunda etkileyici performans sergiliyor. Ancak kurumsal ortamlarda belirli bir alan, terminoloji veya iş sürecine uyum sağlamaları gerektiğinde, genel bilgileri çoğu zaman yetersiz kalıyor. Bu noktada fine-tuning, yani ince ayar süreci devreye giriyor. Fine-tuning sayesinde mevcut bir temel modeli, kendi verileriniz ve ihtiyaçlarınız doğrultusunda özelleştirmek

Read More
August 8, 2026

Bilgisayarlı Görü Uygulamaları: Nesne Tespiti, OCR ve Endüstriyel AI

Bilgisayarlı Görü Uygulamaları: Endüstriyel ve Medikal AI'nin Temel Teknolojisi Bilgisayarlı görü, makine öğrenmesinin en etkili alanlarından biridir. Türkiye'de yaşanan dijital dönüşüm sürecinde, özellikle üretim, sağlık ve lojistik sektörlerinde görü tabanlı otomasyon kritik hale gelmiştir. Smart Maple olarak Ankara'da geliştirdiğimiz çözümler, son beş yılda 150+ kuruluşunun üretim verimliliğini ortalama %35 oranında artırmıştır. Bu rehberde, bilgisayarlı görü teknolojisinin iş değeri

Read More