This commit is contained in:
2026-08-08 10:57:54 +08:00
parent d0d48c1ffc
commit 604af909b0
184 changed files with 12521 additions and 12722 deletions
+18
View File
@@ -0,0 +1,18 @@
import 'package:flutter/material.dart';
import '../features/home/presentation/point_book_home_screen.dart';
import 'app_theme.dart';
class ArcxApp extends StatelessWidget {
const ArcxApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: '记分本',
debugShowCheckedModeBanner: false,
theme: AppTheme.light(),
home: const PointBookHomeScreen(),
);
}
}
+67
View File
@@ -0,0 +1,67 @@
import 'package:flutter/material.dart';
class AppTheme {
const AppTheme._();
static const Color primary = Color(0xFF1F7A4D);
static const Color primaryDark = Color(0xFF13533A);
static const Color accent = Color(0xFFE8A33D);
static const Color scoreRing = Color(0xFFE0B350);
static const Color hitPoint = Color(0xFFE5484D);
static const Color surfaceMuted = Color(0xFFF4F6F5);
static const Color textSecondary = Color(0xFF6B7280);
static ThemeData light() {
final base = ThemeData.light(useMaterial3: true);
return base.copyWith(
colorScheme: const ColorScheme.light(
primary: primary,
secondary: accent,
surface: Colors.white,
onPrimary: Colors.white,
onSecondary: Colors.black,
),
scaffoldBackgroundColor: surfaceMuted,
appBarTheme: const AppBarTheme(
backgroundColor: primary,
foregroundColor: Colors.white,
elevation: 0,
centerTitle: true,
),
cardTheme: CardThemeData(
color: Colors.white,
elevation: 0,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)),
margin: EdgeInsets.zero,
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: primary,
foregroundColor: Colors.white,
minimumSize: const Size.fromHeight(48),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(12),
),
),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: primary,
minimumSize: const Size.fromHeight(48),
side: const BorderSide(color: primary),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(12),
),
),
),
inputDecorationTheme: InputDecorationTheme(
border: OutlineInputBorder(borderRadius: BorderRadius.circular(12)),
contentPadding: const EdgeInsets.symmetric(
horizontal: 16,
vertical: 14,
),
),
);
}
}