Files
eryao/apps/lib/app/app_theme.dart
T

77 lines
2.5 KiB
Dart

import 'package:flutter/material.dart';
import '../shared/theme/app_color_palette.dart';
class AppTheme {
static const Color _primary = Color(0xFF673AB7);
static const Color _accent = Color(0xFF9C27B0);
static const Color _scaffold = Color(0xFFF8F8F8);
static const Color _textHigh = Color(0xFF333333);
static const Color _textMid = Color(0xFF666666);
static const Color _textLow = Color(0xFF999999);
static ThemeData light() {
const colorScheme = ColorScheme.light(
primary: _primary,
onPrimary: Color(0xFFFFFFFF),
secondary: _accent,
onSecondary: Color(0xFFFFFFFF),
surface: Color(0xFFFFFFFF),
onSurface: _textHigh,
error: Color(0xFFB00020),
onError: Color(0xFFFFFFFF),
outline: Color(0xFFDDDDDD),
surfaceContainerHighest: Color(0xFFF0E6FF),
surfaceContainerHigh: Color(0xFFF4F5F7),
surfaceContainerLow: Color(0xFFFAFAFA),
);
return ThemeData(
useMaterial3: true,
colorScheme: colorScheme,
scaffoldBackgroundColor: _scaffold,
textTheme: const TextTheme(
headlineMedium: TextStyle(
fontSize: 24,
fontWeight: FontWeight.w700,
color: _textHigh,
),
titleLarge: TextStyle(
fontSize: 20,
fontWeight: FontWeight.w600,
color: _textHigh,
),
titleMedium: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w600,
color: _textHigh,
),
bodyLarge: TextStyle(fontSize: 16, color: _textMid),
bodyMedium: TextStyle(fontSize: 14, color: _textMid),
bodySmall: TextStyle(fontSize: 12, color: _textLow),
),
extensions: const <ThemeExtension<dynamic>>[
AppColorPalette(
accentPurple: _accent,
historyGoldBg: Color(0xFFFFF8E1),
historyGoldText: Color(0xFFFFB300),
historyBlueBg: Color(0xFFE6F7FF),
historyBlueText: Color(0xFF1890FF),
historyGrayBg: Color(0xFFF5F5F5),
historyGrayText: Color(0xFF9E9E9E),
categoryCareerBg: Color(0xFFF0E6FF),
categoryCareerText: Color(0xFF673AB7),
categoryLoveBg: Color(0xFFFFF3E0),
categoryLoveText: Color(0xFFFF9800),
categoryMoneyBg: Color(0xFFE8F5E9),
categoryMoneyText: Color(0xFF4CAF50),
notificationDot: Color(0xFFE53935),
warning: Color(0xFFF57C00),
warningContainer: Color(0xFFFFF3E0),
onWarningContainer: Color(0xFF8A4B00),
),
],
);
}
}