Ana içeriğe geç

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.