Tema Sistemi¶
Uygulamanın görsel sistemi 3 dosyadan oluşur. Yeni biri geldiğinde buraya bakarak tüm yapıyı anlayabilir.
Dosyalar ve Görevleri¶
core/theme/app_theme.dart¶
Dark ThemeData yapısını üretir. Renk değerleri (Color(0xFF...))
doğrudan ColorScheme.dark(...) içine inline yazılır;
ayrı sabit veya ayrı dosya yoktur. Renk değiştirmek veya yeni renk eklemek için
bu dosyaya dokunulur.
core/theme/app_typography.dart¶
Font ailelerini ve metin stillerini tanımlar.
- Plus Jakarta Sans → UI metni (username, tarih, sayaçlar)
- Inter → İçerik metni (öğrencilerin yazdığı postlar)
core/extensions/build_context_extensions.dart¶
Widget'lardan tema verilerine kısa yoldan erişmek için extension.
Theme.of(context).textTheme yerine context.textTheme yazılmasını sağlar.
Widget'larda Kullanım¶
// Renk
context.colorScheme.error // kırmızı
context.colorScheme.onSurfaceVariant // gri
// Font
context.textTheme.bodyLarge // Inter — post içeriği
context.textTheme.titleSmall // Plus Jakarta Sans — username
context.textTheme.bodySmall // Plus Jakarta Sans — tarih
Hiçbir widget hex değeri veya font adı bilmez.
Sadece context.textTheme.xxx veya context.colorScheme.xxx kullanır.
Yeni Renk veya Font Eklemek¶
Renk: app_theme.dart içindeki ColorScheme.dark(...) çağrısının içine doğrudan Color(0xFF...) olarak yaz.
Font stili: app_typography.dart'a yeni TextTheme rolü ekle.
Widget'ta kullan: context.textTheme.yeniRol veya context.colorScheme.yeniRenk.