first commit
This commit is contained in:
119
lib/theme/app_theme.dart
Normal file
119
lib/theme/app_theme.dart
Normal file
@@ -0,0 +1,119 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
|
||||
class AppTheme {
|
||||
// 颜色系统
|
||||
static const Color primaryColor = Color(0xFF6366F1); // Indigo
|
||||
static const Color secondaryColor = Color(0xFF8B5CF6); // Purple
|
||||
static const Color accentColor = Color(0xFF10B981); // Green
|
||||
|
||||
// 分类颜色
|
||||
static const Color workColor = Color(0xFF6366F1); // Indigo
|
||||
static const Color studyColor = Color(0xFF8B5CF6); // Purple
|
||||
static const Color entertainmentColor = Color(0xFFF59E0B); // Orange
|
||||
static const Color socialColor = Color(0xFFEC4899); // Pink
|
||||
static const Color toolColor = Color(0xFF6B7280); // Gray
|
||||
|
||||
// 状态颜色
|
||||
static const Color successColor = Color(0xFF10B981);
|
||||
static const Color warningColor = Color(0xFFF59E0B);
|
||||
static const Color errorColor = Color(0xFFEF4444);
|
||||
static const Color infoColor = Color(0xFF3B82F6);
|
||||
|
||||
// 浅色主题
|
||||
static ThemeData get lightTheme {
|
||||
return ThemeData(
|
||||
useMaterial3: true,
|
||||
colorScheme: ColorScheme.fromSeed(
|
||||
seedColor: primaryColor,
|
||||
brightness: Brightness.light,
|
||||
),
|
||||
textTheme: GoogleFonts.interTextTheme(),
|
||||
scaffoldBackgroundColor: Colors.white,
|
||||
cardTheme: CardThemeData(
|
||||
elevation: 0,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
),
|
||||
color: Colors.grey[50],
|
||||
),
|
||||
appBarTheme: AppBarTheme(
|
||||
elevation: 0,
|
||||
backgroundColor: Colors.white,
|
||||
foregroundColor: Colors.black87,
|
||||
titleTextStyle: GoogleFonts.inter(
|
||||
fontSize: 18,
|
||||
fontWeight: FontWeight.w600,
|
||||
color: Colors.black87,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
// 深色主题
|
||||
static ThemeData get darkTheme {
|
||||
return ThemeData(
|
||||
useMaterial3: true,
|
||||
colorScheme: ColorScheme.fromSeed(
|
||||
seedColor: primaryColor,
|
||||
brightness: Brightness.dark,
|
||||
),
|
||||
textTheme: GoogleFonts.interTextTheme(ThemeData.dark().textTheme),
|
||||
scaffoldBackgroundColor: const Color(0xFF1F2937),
|
||||
cardTheme: CardThemeData(
|
||||
elevation: 0,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
),
|
||||
color: const Color(0xFF374151),
|
||||
),
|
||||
appBarTheme: AppBarTheme(
|
||||
elevation: 0,
|
||||
backgroundColor: const Color(0xFF1F2937),
|
||||
foregroundColor: Colors.white,
|
||||
titleTextStyle: GoogleFonts.inter(
|
||||
fontSize: 18,
|
||||
fontWeight: FontWeight.w600,
|
||||
color: Colors.white,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
// 获取分类颜色
|
||||
static Color getCategoryColor(String category) {
|
||||
switch (category.toLowerCase()) {
|
||||
case 'work':
|
||||
return workColor;
|
||||
case 'study':
|
||||
return studyColor;
|
||||
case 'entertainment':
|
||||
return entertainmentColor;
|
||||
case 'social':
|
||||
return socialColor;
|
||||
case 'tool':
|
||||
return toolColor;
|
||||
default:
|
||||
return Colors.grey;
|
||||
}
|
||||
}
|
||||
|
||||
// 获取分类中文名称
|
||||
static String getCategoryName(String category) {
|
||||
switch (category.toLowerCase()) {
|
||||
case 'work':
|
||||
return '工作';
|
||||
case 'study':
|
||||
return '学习';
|
||||
case 'entertainment':
|
||||
return '娱乐';
|
||||
case 'social':
|
||||
return '社交';
|
||||
case 'tool':
|
||||
return '工具';
|
||||
default:
|
||||
return '其他';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user