68 lines
2.1 KiB
Dart
68 lines
2.1 KiB
Dart
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,
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|