77 lines
2.7 KiB
Dart
77 lines
2.7 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:google_fonts/google_fonts.dart';
|
|
|
|
class AppTheme {
|
|
static const _primaryColor = Color(0xFF9D6711); // #9D6711
|
|
static const _secondaryColor = Color(0xFF8B0000); // Dark Red
|
|
static const _tertiaryColor = Color(0xFF000000); // Black
|
|
static const _backgroundColor = Color(0xFFFFFBFE);
|
|
static const _surfaceColor = Color(0xFFFFFBFE);
|
|
static const _errorColor = Color(0xFFB3261E);
|
|
|
|
static final ThemeData lightTheme = ThemeData(
|
|
textTheme: GoogleFonts.assistantTextTheme(),
|
|
useMaterial3: true,
|
|
colorScheme: ColorScheme.light(
|
|
primary: _primaryColor,
|
|
secondary: _secondaryColor,
|
|
tertiary: _tertiaryColor,
|
|
background: _backgroundColor,
|
|
surface: _surfaceColor,
|
|
error: _errorColor,
|
|
),
|
|
appBarTheme: const AppBarTheme(
|
|
backgroundColor: _backgroundColor,
|
|
elevation: 0,
|
|
centerTitle: true,
|
|
iconTheme: IconThemeData(color: _primaryColor),
|
|
titleTextStyle: TextStyle(
|
|
color: _primaryColor,
|
|
fontSize: 20,
|
|
fontWeight: FontWeight.w600,
|
|
),
|
|
),
|
|
navigationBarTheme: NavigationBarThemeData(
|
|
backgroundColor: _surfaceColor,
|
|
indicatorColor: _primaryColor.withOpacity(0.1),
|
|
labelTextStyle: MaterialStateProperty.all(
|
|
const TextStyle(fontSize: 12, fontWeight: FontWeight.w500),
|
|
),
|
|
),
|
|
cardTheme: CardThemeData(
|
|
elevation: 0,
|
|
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)),
|
|
),
|
|
elevatedButtonTheme: ElevatedButtonThemeData(
|
|
style: ElevatedButton.styleFrom(
|
|
elevation: 0,
|
|
padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12),
|
|
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)),
|
|
backgroundColor: _primaryColor,
|
|
foregroundColor: Colors.white,
|
|
),
|
|
),
|
|
inputDecorationTheme: InputDecorationTheme(
|
|
filled: true,
|
|
fillColor: _surfaceColor,
|
|
border: OutlineInputBorder(
|
|
borderRadius: BorderRadius.circular(12),
|
|
borderSide: BorderSide(color: Colors.grey.shade300, width: 1),
|
|
),
|
|
enabledBorder: OutlineInputBorder(
|
|
borderRadius: BorderRadius.circular(12),
|
|
borderSide: BorderSide(color: Colors.grey.shade300, width: 1),
|
|
),
|
|
focusedBorder: OutlineInputBorder(
|
|
borderRadius: BorderRadius.circular(12),
|
|
borderSide: const BorderSide(color: _primaryColor, width: 2),
|
|
),
|
|
errorBorder: OutlineInputBorder(
|
|
borderRadius: BorderRadius.circular(12),
|
|
borderSide: const BorderSide(color: _errorColor, width: 1),
|
|
),
|
|
contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 16),
|
|
),
|
|
);
|
|
}
|