Skip to content

Renk Ve Tema

Falcon sitesindeki tüm renkler öncelikle src/styles/tokens/_colors.css dosyasında tanımlanır. Buton, kart ve rozet gibi bileşenler bu semantic token’ları okur; sayfa dosyalarına hex veya text-blue-500 yazılmaz. Açık ve koyu görünüm, html öğesindeki .dark sınıfı ile seçilir — Header’daki tema seçici (ThemeSelect) tercihi localStorage içinde saklar.

İlgili katmanlar: CSS Kullanımı, Fix UI Kullanımı. Tema seçici arayüzü: Font & UI Kullanımı.


Ne değiştirirsenDosya
Sayfa zemini, kart, border, metin tonlarısrc/styles/tokens/_colors.css
Body font, import sırası, @theme eşlemesisrc/styles/core.css (renk import’u token’dan gelir)
Tek bir butonun hover detayısrc/styles/components/_fix-button.css (nadir)

Yapmayın: Her sayfada #007aff veya benzeri hex değerlerini kopyalamak.


Bileşenler doğrudan hex yerine anlamlı isimler kullanır; açık/koyu geçişte aynı isim, farklı değer.

TokenRol
--backgroundSayfa zemini
--foregroundAna metin
--cardKart / yükseltilmiş yüzey
--mutedİkincil zemin, badge tabanı
--muted-foregroundİkincil metin, açıklama
--primaryMarka vurgusu, primary buton
--primary-foregroundPrimary üzerinde metin
--secondaryİkincil buton / nötr alan
--borderÇizgiler, kart kenarı
--destructive / --success / --warning / --infoDurum renkleri

Ek alias’lar (--primary-dark, --danger, --separator vb.) bileşen uyumluluğu için tanımlıdır; yeni stil yazarken mümkünse üstteki semantic isimleri tercih edin.


Değerler src/styles/tokens/_colors.css içindeki :root bloğundan alınmıştır.

TokenDeğerKullanım
--background#f2f2f7Body, grouped zemin
--foreground#000000Başlık ve gövde metni
--card#ffffffKartlar, yükseltilmiş yüzey
--card-foregroundvar(--foreground)Kart içi metin
--muted#f2f2f7İkincil zemin, badge tabanı
--muted-foregroundrgba(60, 60, 67, 0.6)Soluk metin, footer alt satır
--primary#007affPrimary buton, link vurgusu
--primary-foreground#ffffffPrimary üzerinde metin
--primary-dark#0051d5Primary hover (--primary-hover)
--secondary#e5e5eaİkincil buton zemin
--secondary-foreground#000000İkincil buton metni
--border#c6c6c8Ayırıcılar, kart kenarı
--ringvar(--primary)Odak halkası (form)
--destructive#ff3b30Hata / sil
--destructive-foreground#ffffffDestructive üzerinde metin
--success#34c759Başarı badge / durum
--warning#ff9500Uyarı
--info#5ac8faBilgi
--accent#ff9500Vurgu rengi (ayrı kullanım)

Aynı token adları; değerler .dark bloğunda güncellenir. Bileşen CSS dosyası değişmez.

TokenDeğerKullanım
--background#000000Sayfa zemini
--foreground#ffffffAna metin
--card#1c1c1eKart / elevated yüzey
--muted#2c2c2eİkincil zemin
--muted-foregroundrgba(235, 235, 245, 0.6)Soluk metin
--primary#0a84ffMarka vurgusu
--primary-foreground#ffffffPrimary metin
--primary-dark#0066ccPrimary hover
--secondary#2c2c2eİkincil alan
--secondary-foreground#ffffffİkincil metin
--border#38383aAyırıcılar
--destructive#ff453aHata
--success#30d158Başarı
--warning#ff9f0aUyarı
--info#64d2ffBilgi

Not: Açık ve koyuda aynı token adı, farklı hex — _fix-button.css veya sayfa dosyasına tema dalı eklemenize gerek kalmaz.


  1. BaseLayout.astro<head> içinde inline script: localStorage anahtarı theme (system | light | dark); sistem modunda prefers-color-scheme okunur; sonuç document.documentElement.classList.toggle('dark', …).
  2. ThemeSelect (src/components/islands/ThemeSelect.tsx) — Header’da; src/lib/theme.ts ile applyTheme / storeTheme. Geliştirme sırasında buradan açık/koyu/sistem deneyin.
  3. core.css@import "./tokens/_colors.css"; body { background-color: var(--background); color: var(--foreground); }. Tailwind @theme içinde --color-primary: var(--primary) gibi eşlemeler utility sınıflarını token’a bağlar.

Renk değerlerini core.css içine taşımayın; palet yalnızca _colors.css üzerinden yönetilir.


BileşenHangi token’lar
Button primary--primary, --primary-foreground, --primary-dark (hover)
Card--card, --card-foreground, --border
Badge--muted, --muted-foreground; durumlar için --success / --warning / --destructive / --info
Form input--card, --border, --ring, --muted-foreground
Header / footerTailwind: bg-background, border-border, text-muted-foreground@theme üzerinden token

Ayrıntılı bileşen kullanımı: Fix UI Kullanımı, stil katmanları: CSS Kullanımı.


İstediğinNe yap
Marka rengini (mavi) değiştir:root ve .dark içinde --primary; isteğe --primary-dark / --primary-hover
Koyu kart rengi.dark--card, --muted
Tüm site arka planı (açık):root--background
Badge okunmuyorÖnce _colors.css token’ları; gerekirse src/styles/components/_fix-badge.css
Tek sayfada özel renkKaçının; son çare olarak sayfada Tailwind utility — bakım maliyeti yüksek

Dosyaİçerik
src/styles/tokens/_spacing.cssBoşluk ölçeği
src/styles/tokens/_radius.cssKöşe yuvarlaklığı
src/styles/tokens/_shadows.cssGölge

Bunlar renk değildir. Site paleti için _colors.css yeterlidir.


  • src/config/site.ts içine renk koymak — orada domain, logo ve site adı vardır (Site Bilgileri).
  • Onlarca sayfada text-blue-500 veya sabit hex sınıfları.
  • Harici UI kütüphanesi kurarak paleti ikinci kez tanımlamak — projede Fix UI + token modeli kullanılır.


Renk = src/styles/tokens/_colors.css; açık tema :root, koyu tema .dark ile aynı token adları. Bileşenler var(--token) tüketir; sayfa dosyalarında hex yazmayın.