more refactors and logs page handling

This commit is contained in:
shenlong-tanwen
2024-10-23 02:30:46 +05:30
parent 8f47645cdb
commit a0afea04d8
90 changed files with 2386 additions and 584 deletions
@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
@immutable
abstract class AppColors {
abstract final class AppColors {
const AppColors();
/// Blue color
@@ -25,9 +25,9 @@ abstract class AppColors {
onErrorContainer: Color(0xff410002),
surface: Color(0xFFF0EFF4),
onSurface: Color(0xff1a1b21),
onSurfaceVariant: Color(0xff444651),
surfaceContainer: Color(0xfffefbff),
surfaceContainerHighest: Color(0xffe0e2ef),
onSurfaceVariant: Color(0xff444651),
outline: Color(0xff747782),
outlineVariant: Color(0xffc4c6d3),
shadow: Color(0xff000000),
@@ -58,9 +58,9 @@ abstract class AppColors {
onErrorContainer: Color(0xffffb4ab),
surface: Color(0xFF15181C),
onSurface: Color(0xffe2e2e9),
onSurfaceVariant: Color(0xffc2c6d2),
surfaceContainer: Color(0xff1a1e22),
surfaceContainerHighest: Color(0xff424852),
onSurfaceVariant: Color(0xffc2c6d2),
outline: Color(0xff8c919c),
outlineVariant: Color(0xff424751),
shadow: Color(0xff000000),
+61 -51
View File
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:immich_mobile/presentation/theme/app_colors.dart';
import 'package:immich_mobile/presentation/theme/app_typography.dart';
import 'package:immich_mobile/utils/extensions/material_state.extension.dart';
import 'package:material_symbols_icons/symbols.dart';
enum AppTheme {
blue._(AppColors.blueLight, AppColors.blueDark),
@@ -15,9 +16,58 @@ enum AppTheme {
static ThemeData generateThemeData(ColorScheme color) {
return ThemeData(
inputDecorationTheme: InputDecorationTheme(
hintStyle: const TextStyle(
fontSize: 16.0,
fontWeight: FontWeight.normal,
),
errorBorder: OutlineInputBorder(
borderSide: BorderSide(color: color.error),
borderRadius: const BorderRadius.all(Radius.circular(15)),
),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: color.primary),
borderRadius: const BorderRadius.all(Radius.circular(15)),
),
focusedErrorBorder: OutlineInputBorder(
borderSide: BorderSide(color: color.error),
borderRadius: const BorderRadius.all(Radius.circular(15)),
),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: color.outlineVariant),
borderRadius: const BorderRadius.all(Radius.circular(15)),
),
),
colorScheme: color,
primaryColor: color.primary,
iconTheme: const IconThemeData(weight: 500, opticalSize: 24),
scaffoldBackgroundColor: color.surface,
iconTheme: const IconThemeData(size: 24, weight: 500, opticalSize: 24),
textTheme: TextTheme(
displayLarge: AppTypography.displayLarge,
displayMedium: AppTypography.displayMedium,
displaySmall: AppTypography.displaySmall,
headlineLarge: AppTypography.headlineLarge,
headlineMedium: AppTypography.headlineMedium,
headlineSmall: AppTypography.headlineSmall,
titleLarge: AppTypography.titleLarge,
titleMedium: AppTypography.titleMedium,
titleSmall: AppTypography.titleSmall,
bodyLarge: AppTypography.bodyLarge,
bodyMedium: AppTypography.bodyMedium,
bodySmall: AppTypography.bodySmall,
labelLarge: AppTypography.labelLarge,
labelMedium: AppTypography.labelMedium,
labelSmall: AppTypography.labelSmall,
),
actionIconTheme: ActionIconThemeData(
backButtonIconBuilder: (_) => Icon(Symbols.arrow_back_rounded),
closeButtonIconBuilder: (_) => Icon(Symbols.close_rounded),
),
appBarTheme: AppBarTheme(
iconTheme: IconThemeData(size: 22, color: color.onSurface),
titleTextStyle:
AppTypography.titleLarge.copyWith(color: color.onSurface),
),
navigationBarTheme: NavigationBarThemeData(
backgroundColor: color.surfaceContainer,
indicatorColor: color.primary,
@@ -30,78 +80,38 @@ enum AppTheme {
},
),
),
scaffoldBackgroundColor: color.surface,
navigationRailTheme: NavigationRailThemeData(
backgroundColor: color.surfaceContainer,
elevation: 3,
indicatorColor: color.primary,
selectedIconTheme:
IconThemeData(weight: 500, opticalSize: 24, color: color.onPrimary),
unselectedIconTheme: IconThemeData(
weight: 500,
opticalSize: 24,
color: color.onSurface.withAlpha(175),
),
selectedIconTheme:
IconThemeData(weight: 500, opticalSize: 24, color: color.onPrimary),
indicatorColor: color.primary,
),
inputDecorationTheme: InputDecorationTheme(
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: color.primary),
borderRadius: const BorderRadius.all(Radius.circular(15)),
),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: color.outlineVariant),
borderRadius: const BorderRadius.all(Radius.circular(15)),
),
errorBorder: OutlineInputBorder(
borderRadius: const BorderRadius.all(Radius.circular(15)),
borderSide: BorderSide(color: color.error),
),
focusedErrorBorder: OutlineInputBorder(
borderRadius: const BorderRadius.all(Radius.circular(15)),
borderSide: BorderSide(color: color.error),
),
hintStyle: const TextStyle(
fontSize: 16.0,
fontWeight: FontWeight.normal,
),
),
textSelectionTheme: TextSelectionThemeData(cursorColor: color.primary),
sliderTheme: SliderThemeData(
valueIndicatorColor:
Color.alphaBlend(color.primary.withAlpha(80), color.onSurface)
.withAlpha(240),
),
textTheme: TextTheme(
titleLarge: AppTypography.titleLarge,
titleMedium: AppTypography.titleMedium,
titleSmall: AppTypography.titleSmall,
displayLarge: AppTypography.displayLarge,
displayMedium: AppTypography.displayMedium,
displaySmall: AppTypography.displaySmall,
headlineLarge: AppTypography.headlineLarge,
headlineMedium: AppTypography.headlineMedium,
headlineSmall: AppTypography.headlineSmall,
bodyLarge: AppTypography.bodyLarge,
bodyMedium: AppTypography.bodyMedium,
bodySmall: AppTypography.bodySmall,
labelLarge: AppTypography.labelLarge,
labelMedium: AppTypography.labelMedium,
labelSmall: AppTypography.labelSmall,
),
snackBarTheme: SnackBarThemeData(
elevation: 4,
behavior: SnackBarBehavior.floating,
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(4.0)),
),
insetPadding: const EdgeInsets.fromLTRB(20.0, 5.0, 20.0, 25.0),
backgroundColor:
Color.alphaBlend(color.primary.withAlpha(80), color.onSurface)
.withAlpha(240),
actionTextColor: color.inversePrimary,
contentTextStyle: TextStyle(color: color.onInverseSurface),
elevation: 4,
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(4.0)),
),
behavior: SnackBarBehavior.floating,
insetPadding: const EdgeInsets.fromLTRB(20.0, 5.0, 20.0, 25.0),
closeIconColor: color.onInverseSurface,
),
textSelectionTheme: TextSelectionThemeData(cursorColor: color.primary),
);
}
}
@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
class AppTypography {
abstract final class AppTypography {
const AppTypography();
static const TextStyle displayLarge = TextStyle(
@@ -30,16 +30,16 @@ class AppTypography {
);
static const TextStyle titleLarge = TextStyle(
fontSize: 22,
fontWeight: FontWeight.bold,
fontSize: 20,
fontWeight: FontWeight.normal,
);
static const TextStyle titleMedium = TextStyle(
fontSize: 16,
fontWeight: FontWeight.bold,
fontWeight: FontWeight.normal,
);
static const TextStyle titleSmall = TextStyle(
fontSize: 14,
fontWeight: FontWeight.bold,
fontWeight: FontWeight.normal,
);
static const TextStyle bodyLarge = TextStyle(