diff --git a/lib/app_theme.dart b/lib/app_theme.dart new file mode 100644 index 0000000..306eaf4 --- /dev/null +++ b/lib/app_theme.dart @@ -0,0 +1,37 @@ +import 'package:flutter/material.dart'; + +class AppTheme { + AppTheme._(); + + static ThemeData get lightTheme => _baseTheme( + colorScheme: ColorScheme.fromSeed( + seedColor: Colors.indigo, + brightness: Brightness.light, + ), + ); + + static ThemeData get darkTheme => _baseTheme( + colorScheme: ColorScheme.fromSeed( + seedColor: Colors.indigo, + brightness: Brightness.dark, + ), + ); + + static ThemeData _baseTheme({required ColorScheme colorScheme}) { + final theme = ThemeData(useMaterial3: true, colorScheme: colorScheme); + final universalBorderRadius = BorderRadius.circular(12); + + return theme.copyWith( + inputDecorationTheme: InputDecorationTheme( + border: OutlineInputBorder(borderRadius: universalBorderRadius), + ), + + listTileTheme: ListTileThemeData( + shape: RoundedRectangleBorder( + borderRadius: universalBorderRadius, + side: BorderSide(color: colorScheme.secondaryContainer, width: 2), + ), + ), + ); + } +} diff --git a/lib/main.dart b/lib/main.dart index cf4ea08..4b87d97 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; +import 'app_theme.dart'; import 'model/repositories/local_repository.dart'; import 'pages/task_edit_page.dart'; import 'pages/task_overview_page.dart'; @@ -33,6 +34,8 @@ class MainApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( + theme: AppTheme.lightTheme, + darkTheme: AppTheme.darkTheme, routes: { TaskOverviewPage.routeName: (context) => TaskOverviewPage(), TaskEditPage.routeName: (context) => TaskEditPage(),