82 lines
2.3 KiB
Dart
82 lines
2.3 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
|
|
class AppTheme {
|
|
AppTheme._();
|
|
|
|
static const seedColor = Color(0xFF2563EB);
|
|
static const background = Color(0xFFF6F7FB);
|
|
static const surface = Colors.white;
|
|
static const textPrimary = Color(0xFF111827);
|
|
static const textSecondary = Color(0xFF6B7280);
|
|
static const border = Color(0xFFE5E7EB);
|
|
static const success = Color(0xFF16A34A);
|
|
static const warning = Color(0xFFF59E0B);
|
|
static const danger = Color(0xFFDC2626);
|
|
|
|
static ThemeData get light {
|
|
final scheme = ColorScheme.fromSeed(
|
|
seedColor: seedColor,
|
|
brightness: Brightness.light,
|
|
surface: surface,
|
|
);
|
|
return ThemeData(
|
|
useMaterial3: true,
|
|
colorScheme: scheme,
|
|
scaffoldBackgroundColor: background,
|
|
appBarTheme: const AppBarTheme(
|
|
centerTitle: true,
|
|
elevation: 0,
|
|
scrolledUnderElevation: 0,
|
|
backgroundColor: surface,
|
|
foregroundColor: textPrimary,
|
|
),
|
|
elevatedButtonTheme: ElevatedButtonThemeData(
|
|
style: ElevatedButton.styleFrom(
|
|
minimumSize: Size(88.w, 44.h),
|
|
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8.r)),
|
|
),
|
|
),
|
|
textButtonTheme: TextButtonThemeData(
|
|
style: TextButton.styleFrom(
|
|
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8.r)),
|
|
),
|
|
),
|
|
outlinedButtonTheme: OutlinedButtonThemeData(
|
|
style: OutlinedButton.styleFrom(
|
|
minimumSize: Size(88.w, 44.h),
|
|
side: const BorderSide(color: border),
|
|
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8.r)),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
|
|
static ThemeData get dark {
|
|
final scheme = ColorScheme.fromSeed(
|
|
seedColor: seedColor,
|
|
brightness: Brightness.dark,
|
|
);
|
|
return ThemeData(
|
|
useMaterial3: true,
|
|
colorScheme: scheme,
|
|
appBarTheme: const AppBarTheme(
|
|
centerTitle: true,
|
|
elevation: 0,
|
|
scrolledUnderElevation: 0,
|
|
),
|
|
);
|
|
}
|
|
}
|
|
|
|
class AppSpacing {
|
|
AppSpacing._();
|
|
|
|
static double get xs => 4.r;
|
|
static double get sm => 8.r;
|
|
static double get md => 12.r;
|
|
static double get lg => 16.r;
|
|
static double get xl => 24.r;
|
|
static double get xxl => 32.r;
|
|
}
|