hesabixArc/hesabixUI/hesabix_ui/lib/theme/app_theme.dart

39 lines
1.1 KiB
Dart
Raw Normal View History

2025-09-15 13:53:54 +03:30
import 'package:flutter/material.dart';
import 'components.dart';
import 'tokens/color_schemes.dart';
import 'tokens/extensions.dart';
import 'tokens/typography.dart';
class AppTheme {
static ThemeData build({
required bool isDark,
required Locale locale,
required Color seed,
}) {
final scheme = AppColorTokens.schemeFromSeed(seed, dark: isDark);
final isFa = locale.languageCode.toLowerCase() == 'fa';
final textTheme = isFa ? faTextTheme(isDark: isDark) : enTextTheme(isDark: isDark);
return ThemeData(
useMaterial3: true,
colorScheme: scheme,
fontFamily: isFa ? 'Vazirmatn' : null,
textTheme: textTheme,
// در حالت تیره، کنتراست متن‌ها را کمی تقویت می‌کنیم
scaffoldBackgroundColor: isDark ? scheme.surface : null,
inputDecorationTheme: appInputDecorationTheme(scheme),
elevatedButtonTheme: appElevatedButtonTheme(scheme),
appBarTheme: appAppBarTheme(scheme),
cardTheme: appCardTheme,
extensions: const <ThemeExtension<dynamic>>[
AppSpacing(),
AppRadii(),
],
);
}
}