Kurumsal web projelerinde Design Tokens, CSS Custom Properties (değişkenler), tutarlı tipografi ve bileşen tabanlı tasarım sistemi geliştirme rehberi.
Hızlı Özet (TL;DR)
Zaman içinde büyüyen, yeni hizmet sayfaları, ürün katalogları ve teknik makaleler eklenen kurumsal web sitelerinde yaşanan en büyük mühendislik kaosu; her sayfada farklı buton renklerinin, uyumsuz yazı boyutlarının, tutarsız kart gölgelerinin ve dağınık boşlukların (Spacing) türemesidir. Bu görsel ve yapısal tutarsızlık hem markanın kurumsal ciddiyetini zedeler hem de CSS kod tabanını (Codebase) şişirerek bakım maliyetlerini ve sayfa yükleme sürelerini katlar. Modern ön yüz (Frontend) mühendisliğinde bu sorun Tasarım Sistemi (Design System) ve yerel CSS Değişkenleri (CSS Custom Properties) mimarisiyle çözülür. Atomik tasarım token’ları sayesinde sitenin tüm renk, tipografi, boşluk ve animasyon kuralları tek bir doğruluk kaynağından (Single Source of Truth) yönetilir.
Kurumsal Web Projelerinde “CSS Entropisi” ve Bakım Krizi
Bir kurumsal web projesi ilk yayına alındığında genellikle 5-10 sayfadan oluşur ve her şey düzenli görünür. Ancak aylar ve yıllar geçtikçe yeni kampanya sayfaları, yeni modüller veya farklı geliştiricilerin müdahaleleri devreye girer. Merkezi bir tasarım sistemi olmayan projelerde her geliştirici kendi sayfasını tamamlamak için mevcut sınıfları ezmek (!important kullanmak) veya sonuna yeni rastgele sınıflar (.btn-mavi-yeni, .kart-kutusu-2, .baslik-ozel) eklemek zorunda kalır.
Yazılım mühendisliğinde “Yalnızca Ekleme Yapılan Stil Dosyası” (Append-Only Stylesheet) olarak bilinen bu sendrom şu sonuçları doğurur:
- Görsel Marka Parçalanması: Ana sayfadaki kurumsal lacivert
#0a2540iken, iletişim sayfasında#0d2e4f, blog kartlarında#113355kullanılmaya başlanır. Kullanıcı nedenini tam adlandıramasa da sitede amatör bir dağınıklık hisseder. - Performans ve Core Web Vitals Kaybı: Birbiriyle çakışan binlerce satırlık ölü CSS kodu, tarayıcının oluşturma yolunu (Critical Rendering Path) tıkayarak İlk İçerikli Boyama (FCP) ve En Büyük İçerikli Boyama (LCP) metriklerini düşürür.
- Karanlık Mod (Dark Mode) ve Tema İmkânsızlığı: Renk kodları (Hex/RGB) yüzlerce farklı CSS kuralının içine sabit (Hardcoded) olarak gömüldüğünde, siteye koyu tema eklemek veya kurumsal kimlik yenilemesinde ana rengi değiştirmek haftalarca süren bir yeniden yazım işine dönüşür.
Tasarım Token’larının (Design Tokens) Üç Katmanlı Hiyerarşisi
Profesyonel bir tasarım sistemi, değerleri rastgele değişkenlere atamak yerine üç katmanlı bir anlamsal (Semantic) mimari kurar: İlkel (Primitive) Token’lar, Anlamsal (Semantic) Token’lar ve Bileşen (Component) Token’ları.
| Token Katmanı ve Türü | Mimari Rolü | Örnek CSS Değişkeni Tanımı | Örnek Değer ve Davranış |
|---|---|---|---|
| 1. İlkel Renk Paleti (Primitives) | Ham renk skalasını tanımlar, doğrudan bileşende kullanılmaz | --palet-kobalt-600 | #2563eb (Sabit renk değeri) |
| 2. Anlamsal Renkler (Semantic) | Rengin arayüzdeki görevini ve amacını tanımlar | --renk-vurgu-birincil | var(--palet-kobalt-600) |
| 3. Yüzey ve Cam Efektleri | Arka plan, kart yüzeyi ve yarı saydam katmanları belirler | --yuzey-kart-cam | rgba(15, 23, 42, 0.75) |
| 4. Akıcı Tipografi Ölçeği | Ekran genişliğine göre kesintisiz ölçeklenen font boyutları | --yazi-boyut-h1 | clamp(2rem, 3.5vw + 1rem, 3.25rem) |
| 5. Boşluk ve Izgara Ritmi | 4px / 8px tabanlı matematiksel margin ve padding ölçeği | --bosluk-bolum-dikey | clamp(3.5rem, 6vw, 6rem) |
| 6. Kenarlık ve Köşe Ovalliği | Kart, buton ve girdi alanlarının geometrik form dili | --kose-yuvarlaklik-kart | 16px (1rem) |
| 7. Mikro-Etkileşim Zamanlaması | Hover ve geçiş animasyonlarının ivme eğrileri | --gecis-standart | 0.2s cubic-bezier(0.4, 0, 0.2, 1) |
Modern CSS Değişkenleri ile Merkezi tokens.css Mimarisi
SASS/LESS gibi ön işlemci (Preprocessor) değişkenlerinin ($renk) aksine, yerel CSS Değişkenleri (--renk) derleme sonrasında yok olmaz; tarayıcının DOM ağacında canlı olarak yaşar. Bu özellik, medya sorguları (@media) veya veri nitelikleri ([data-theme="dark"]) içinde yalnızca değişkenin değerini değiştirerek tüm sitenin görünümünü anında güncelleyebilmemizi sağlar.
Maysa Yazılım’ın kurumsal web projelerinde uyguladığı standart tokens.css çekirdek mimarisi şu şekildedir:
:root {
/* 1. Renk Mimarisi (HSL & Curated Dark/Light) */
--renk-zemin-ana: #0b0f19;
--renk-zemin-ikincil: #111827;
--renk-yuzey-kart: rgba(17, 24, 39, 0.78);
--renk-kenarlik-ince: rgba(255, 255, 255, 0.08);
--renk-kenarlik-vurgu: rgba(59, 130, 246, 0.45);
--renk-metin-ana: #f1f5f9;
--renk-metin-ikincil: #94a3b8;
--renk-metin-soluk: #64748b;
--renk-marka-birincil: #2563eb;
--renk-marka-vurgu: #10b981;
--renk-uyari-amber: #f59e0b;
/* 2. Tipografi Ailesi ve Ölçeği */
--font-govde: 'Inter', system-ui, -apple-system, sans-serif;
--font-baslik: 'Outfit', 'Plus Jakarta Sans', sans-serif;
--font-kod: 'JetBrains Mono', monospace;
--yazi-h1: clamp(2.125rem, 3.2vw + 1rem, 3.25rem);
--yazi-h2: clamp(1.625rem, 2.2vw + 0.8rem, 2.25rem);
--yazi-h3: clamp(1.25rem, 1.4vw + 0.6rem, 1.5rem);
--yazi-govde: 1.0625rem;
/* 3. Boşluk (Spacing) ve Düzen Ölçeği */
--bosluk-xs: 0.5rem; /* 8px */
--bosluk-sm: 0.75rem; /* 12px */
--bosluk-md: 1.25rem; /* 20px */
--bosluk-lg: 2rem; /* 32px */
--bosluk-xl: 3.5rem; /* 56px */
--konteyner-maks: 1280px;
/* 4. Derinlik, Gölge ve Geçişler */
--golge-kart: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 20px 25px -5px rgba(0, 0, 0, 0.25);
--gecis-akici: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}
Akıcı Tipografi (clamp()) ve Matematiksel Boşluk Ritmi
Geleneksel web tasarımında mobil, tablet ve masaüstü ekranlar için ayrı ayrı @media (max-width: 768px) blokları açılarak font boyutları kademeli olarak küçültülürdü. Ancak bugün piyasada 360px genişliğindeki kompakt telefonlardan 1366px dizüstü bilgisayarlara ve 3840px 4K monitörlere kadar yüzlerce farklı ara ekran boyutu bulunmaktadır. Kırılım noktalarında (Breakpoints) yazıların aniden sıçraması iyi bir kullanıcı deneyimi değildir.
Tasarım sistemimizde CSS clamp(minimum, tercih_edilen, maksimum) fonksiyonunu doğrudan tipografi ve boşluk token’larına bağlayarak Akıcı Tipografi (Fluid Typography) elde ediyoruz. Böylece ekran genişliği (vw) değiştikçe başlıklar ve bölüm arası boşluklar milimetrik bir matematiksel eğriyle kendiliğinden büyür veya küçülür. Ayrıca veri tabloları, fiyat listeleri ve mühendislik metriklerinde font-variant-numeric: tabular-nums kuralı standart hale getirilerek rakamların alt alta kusursuz hizalanması sağlanır.
Bileşen Tabanlı (Component-Driven) Mimari ve CSP Güvenliği
Tasarım token’ları (tokens.css) tanımlandıktan sonra ikinci katman olarak yeniden kullanılabilir bileşen kütüphanesi (bilesenler.css) inşa edilir. Sayfalardaki hiçbir öğe rastgele (ad-hoc) stillerle veya satır içi stil nitelikleriyle biçimlendirilmez.
Satır içi (Inline) stil kullanmamak yalnızca temiz kod açısından değil, aynı zamanda İçerik Güvenlik Politikası (Content Security Policy - CSP) açısından da kritik bir siber güvenlik gereksinimidir. style-src 'self' başlığı ile satır içi stillerin yasaklanması, XSS (Cross-Site Scripting) ve CSS veri sızdırma saldırılarını engeller.
Bileşen tabanlı mimaride tüm arayüz elemanları atomik sınıflarla çalışır:
- Etkileşimli Butonlar (
.btn-birincil,.btn-ikincil,.btn-hayalet): Tümü aynı yükseklik, köşe yuvarlaklığı, odak halkası (:focus-visible) vetranslateY(-2px)mikro-hover animasyonunu paylaşır. - Yüzey Kartları (
.ozellik-karti,.blog-karti): İnce yarı saydam kenarlık (1px solid var(--renk-kenarlik-ince)),backdrop-filter: blur(12px)cam efekti ve esnek CSS Grid yerleşimiyle içerik uzunluğu ne olursa olsun aynı hizada durur. - Durum ve Kategori Rozetleri (
.rozet-endustri,.rozet-guvenlik): Yüksek kontrast oranına (WCAG AA/AAA) sahip, okunabilirliği doğrulanmış bilgi etiketleri sunar.
Bu modüler yapı sayesinde, şirketiniz yeni bir İmalat ERP Çözümleri modülü çıkardığında veya yeni bir sektörel iniş sayfası (Landing Page) yayına almak istediğinde sıfırdan tasarım yapılmaz; doğrulanmış bileşenler legolar gibi birleştirilerek dakikalar içinde yüksek dönüşümlü sayfalar üretilir.
Modüler, siber güvenli, ışık hızında açılan ve kurumsal tasarım sistemlerine sahip web altyapıları için Kurumsal Web Tasarım ve SEO Çözümleri ve özel web tabanlı iş uygulamaları için Özel Yazılım Geliştirme sayfalarımızı inceleyebilirsiniz.
Sıkça Sorulan Sorular
CSS Değişkenleri (Custom Properties) eski tarayıcılarda veya mobil cihazlarda yavaşlığa neden olur mu?
Hayır, tam aksine performansı artırır. CSS Custom Properties standardı tüm modern masaüstü ve mobil tarayıcılarda (Chrome, Safari, Firefox, Edge) %98’in üzerinde yerel (Native) desteğe sahiptir. Tekrarlayan binlerce satırlık CSS kuralını ortadan kaldırdığı için stil dosyasının boyutunu %40 ila %60 oranında küçültür ve tarayıcının stil hesaplama (Recalculate Style) süresini milisaniyelere indirir.
Hazır CSS kütüphaneleri (Bootstrap vb.) kullanmak yerine neden özel bir tasarım sistemi kurulmalıdır?
Bootstrap gibi genel amaçlı hazır kütüphaneler, sitenizin hiç kullanmadığı yüzlerce kilobaytlık jenerik stil kodunu barındırır ve web sitenizin internetteki diğer binlerce şablon siteyle aynı görünmesine neden olur. Kuruma özel (Bespoke) oluşturulan bir tasarım sistemi ve tokens.css mimarisi ise yalnızca markanızın ihtiyaç duyduğu bileşenleri içerir, sıfır gereksiz kod yüküyle Google PageSpeed testlerinde 95–100 bandında skor üretir.
Tasarım sistemi kurulduktan sonra ileride kurumsal renklerimizi değiştirmek ne kadar sürer?
Tasarım token’ları mimarisinin en büyük avantajı budur. Renk, font veya köşe yuvarlaklığı gibi değerler sayfa şablonlarının içine tek tek yazılmadığı için, yalnızca merkezi tokens.css dosyasındaki 3-4 satırlık ana değişken değerini güncellemek, 500 sayfalık bir kurumsal web sitesinin tüm butonlarını, başlıklarını, ikonlarını ve kart vurgularını saniyeler içinde hatasız olarak yeni kurumsal kimliğe dönüştürmek için yeterlidir.