diff --git a/lib/assets/logo/logo-t-d.png b/lib/assets/logo/logo-t-d.png new file mode 100644 index 0000000..0be1b86 Binary files /dev/null and b/lib/assets/logo/logo-t-d.png differ diff --git a/lib/config/design_config.dart b/lib/config/design_config.dart index ebfbcd1..d79f281 100644 --- a/lib/config/design_config.dart +++ b/lib/config/design_config.dart @@ -1 +1,26 @@ -class DesignConfig {} +import 'package:flutter/material.dart'; + +class DesignConfig { + static const Color primaryColor = Color(0XFF007EA7); + + static final ThemeData lightTheme = ThemeData( + primaryColor: primaryColor, + colorScheme: lightColorScheme, + ); + + static const ColorScheme lightColorScheme = ColorScheme( + primary: primaryColor, + primaryVariant: Color(0XFF1B3C59), + secondary: Color(0XFFD61515), + secondaryVariant: Color(0XFFA30001), + surface: Colors.white, + background: Color(0XFFF8F8FA), + error: Color(0XFFF00505), + onPrimary: Colors.white, + onSecondary: Colors.white, + onSurface: Color(0XFF1F1F1F), + onBackground: Color(0XFF1F1F1F), + onError: Colors.white, + brightness: Brightness.light, + ); +} diff --git a/lib/constants/assets.dart b/lib/constants/assets.dart new file mode 100644 index 0000000..e28d363 --- /dev/null +++ b/lib/constants/assets.dart @@ -0,0 +1,4 @@ +class Assets { + static const String _basePath = 'lib/assets'; + static const String logoWithTitleAndDesc = _basePath + '/logo/logo-t-d.png'; +} diff --git a/lib/main.dart b/lib/main.dart index 8c93413..41f4be9 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,4 +1,9 @@ +import 'package:didvan/config/design_config.dart'; +import 'package:didvan/providers/user_provider.dart'; +import 'package:didvan/routes/route_generator.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_localizations/flutter_localizations.dart'; +import 'package:provider/provider.dart'; void main() { runApp(const MyApp()); @@ -6,14 +11,25 @@ void main() { class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); - - // This widget is the root of your application. @override Widget build(BuildContext context) { - return MaterialApp( - title: 'Didvan', - theme: ThemeData( - primarySwatch: Colors.blue, + return ChangeNotifierProvider( + create: (context) => UserProvider(), + child: MaterialApp( + debugShowCheckedModeBanner: false, + title: 'Didvan', + theme: DesignConfig.lightTheme, + onGenerateRoute: (settings) => RouteGenerator.generateRoute(settings), + initialRoute: '/', + localizationsDelegates: const [ + GlobalCupertinoLocalizations.delegate, + GlobalMaterialLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + ], + supportedLocales: const [ + Locale("fa", "IR"), + ], + locale: const Locale("fa", "IR"), ), ); } diff --git a/lib/pages/splash/splash.dart b/lib/pages/splash/splash.dart new file mode 100644 index 0000000..3b99cfe --- /dev/null +++ b/lib/pages/splash/splash.dart @@ -0,0 +1,21 @@ +import 'package:didvan/config/design_config.dart'; +import 'package:didvan/constants/assets.dart'; +import 'package:flutter/material.dart'; + +class Splash extends StatefulWidget { + const Splash({Key? key}) : super(key: key); + + @override + _SplashState createState() => _SplashState(); +} + +class _SplashState extends State { + @override + Widget build(BuildContext context) { + return Container( + padding: const EdgeInsets.all(60), + color: DesignConfig.lightColorScheme.background, + child: Image.asset(Assets.logoWithTitleAndDesc), + ); + } +} diff --git a/lib/pages/splash/splash_state.dart b/lib/pages/splash/splash_state.dart new file mode 100644 index 0000000..4dfdbbe --- /dev/null +++ b/lib/pages/splash/splash_state.dart @@ -0,0 +1,3 @@ +import 'package:didvan/providers/core_provider.dart'; + +class SplashState extends CoreProvier {} diff --git a/lib/routes/route_generator.dart b/lib/routes/route_generator.dart index 18b2839..0324deb 100644 --- a/lib/routes/route_generator.dart +++ b/lib/routes/route_generator.dart @@ -1,8 +1,19 @@ +import 'package:didvan/pages/splash/splash.dart'; +import 'package:didvan/pages/splash/splash_state.dart'; +import 'package:didvan/routes/routes.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; class RouteGenerator { static Route generateRoute(RouteSettings settings) { switch (settings.name) { + case Routes.splash: + return _materialPageRouteGenerator( + ChangeNotifierProvider( + create: (context) => SplashState(), + child: const Splash(), + ), + ); default: return _errorRoute(); } @@ -21,7 +32,7 @@ class RouteGenerator { }); } - static materialPageRouteGenerator(pageWidget) => MaterialPageRoute( + static _materialPageRouteGenerator(pageWidget) => MaterialPageRoute( builder: (context) => pageWidget, ); } diff --git a/pubspec.yaml b/pubspec.yaml index 407c7b7..e132f26 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -61,9 +61,10 @@ flutter: uses-material-design: true # To add assets to your application, add an assets section, like this: - # assets: - # - images/a_dot_burr.jpeg - # - images/a_dot_ham.jpeg + assets: + - lib/assets/logo/logo-t-d.png + + # An image asset can refer to one or more resolution-specific "variants", see # https://flutter.dev/assets-and-images/#resolution-aware.