import 'package:fikoyt_ui/ui/fiko_button.dart'; import 'package:fikoyt_ui/ui/theme/fikoyt_acik_tema.dart'; import 'package:fikoyt_ui/ui/theme/fikoyt_koyu_tema.dart'; import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; class FikoTheme { final BuildContext? context; FikoTheme(this.context); static FikoTheme? instance; static FikoTheme of(BuildContext context) { if (instance != null) { return instance ?? FikoTheme(context); } else { instance = FikoTheme(context); return instance ?? FikoTheme(context); } } ThemeData get acikTema { return FikoytAcikTema(); } ThemeData get koyuTema { return FikoytKoyuTema(); } bool get koyuMod { // return true; return SchedulerBinding.instance.platformDispatcher.platformBrightness == Brightness.dark; } static bool get koyuModStatic { // return true; return SchedulerBinding.instance.platformDispatcher.platformBrightness == Brightness.dark; } ThemeData get aktifTema { if (koyuMod) { return koyuTema; } else { return acikTema; } } Color get yaziRenk { if (koyuMod) { return Colors.white70; } else { return Colors.black87; } } Color get uygulamaArkaPlanRenk { if (koyuMod) { return Colors.grey.shade900; } else { return Colors.grey.shade200; } } FikoButtonTheme get fikoButonTema { if (koyuMod) { return FikoButtonTheme(yaziRengi: Colors.white, arkaRenk: Colors.transparent, radius: 0, borderRadius: BorderRadius.circular(15)); } else { return FikoButtonTheme(yaziRengi: Colors.black, arkaRenk: Colors.transparent, radius: 0, borderRadius: BorderRadius.circular(15)); } } Color get kartArkaPlanRenk { if (koyuMod) { return Colors.teal.withAlpha(70); } else { return Colors.white; } } TextStyle get kartBaslikStil { if (koyuMod) { return TextStyle(fontSize: 14, color: Colors.teal.shade50); } else { return TextStyle(fontSize: 14, color: Colors.teal.shade900); } } Color get kartBaslikRenk { if (koyuMod) { return Colors.white; } else { return Colors.black38; } } Color get saatTabloBaslikRenk { if (koyuMod) { return Colors.blue.shade200; } else { return Colors.blue.shade400; } } Color get saatTabloVeriArkaPlanRenk { if (koyuMod) { return Colors.teal.withAlpha(70); } else { return Colors.grey.shade200; } } Color get tabloBaslikYaziRenk { if (koyuMod) { return Colors.white; } else { return Colors.white; } } Color get tabloBaslikRenk { if (koyuMod) { return Colors.blue.shade300; } else { return Colors.blue.shade400; } } Color get tabloVeriArkaPlanRenk { if (koyuMod) { return Colors.tealAccent.withAlpha(30); } else { return Colors.tealAccent.withAlpha(30); } } Color get bilgiSatiriArkaPlanRenk { if (koyuMod) { return Colors.yellow.withAlpha(100); } else { return Colors.yellow.withAlpha(70); } } Color get bilgiSatiriYaziRenk { if (koyuMod) { return Colors.white; } else { return Colors.blue.withAlpha(200); } } Color get tabloHataliYaziRenk { if (koyuMod) { return Colors.red.shade300; } else { return Colors.red; } } Color get tabloGecerliYaziRenk { if (koyuMod) { return Colors.green.shade200; } else { return Colors.green; } } } class FikoTema extends ThemeExtension { final Color? arkaPlanRenk; final Color? kartArkaPlanRenk; final Color? yaziRengi; final Color? gecerliYaziRengi; final Color? hataliYaziRengi; FikoTema({ this.arkaPlanRenk, this.kartArkaPlanRenk, this.yaziRengi, this.gecerliYaziRengi, this.hataliYaziRengi, }); @override ThemeExtension copyWith({ Color? arkaPlanRenk, Color? kartArkaPlanRenk, Color? yaziRengi, Color? gecerliYaziRengi, Color? hataliYaziRengi, }) { return FikoTema( arkaPlanRenk: arkaPlanRenk ?? this.arkaPlanRenk, kartArkaPlanRenk: kartArkaPlanRenk ?? this.kartArkaPlanRenk, yaziRengi: yaziRengi ?? this.yaziRengi, gecerliYaziRengi: gecerliYaziRengi ?? this.gecerliYaziRengi, hataliYaziRengi: hataliYaziRengi ?? this.hataliYaziRengi, ); } @override ThemeExtension lerp(covariant ThemeExtension? other, double t) { if (other is! FikoTema) { return this; } return FikoTema( arkaPlanRenk: Color.lerp(arkaPlanRenk, other.arkaPlanRenk, t), kartArkaPlanRenk: Color.lerp(kartArkaPlanRenk, other.kartArkaPlanRenk, t), yaziRengi: Color.lerp(yaziRengi, other.yaziRengi, t), gecerliYaziRengi: Color.lerp(gecerliYaziRengi, other.gecerliYaziRengi, t), hataliYaziRengi: Color.lerp(hataliYaziRengi, other.hataliYaziRengi, t), ); } }