Skip to content

Commit

Permalink
Merge pull request #211 from dherediat97/feature/redesign-views
Browse files Browse the repository at this point in the history
feature: light mode and upgrade all logic of app bloc
  • Loading branch information
dherediat97 authored Jul 21, 2024
2 parents 48416f8 + 75c9e2d commit 9d85297
Show file tree
Hide file tree
Showing 19 changed files with 847 additions and 277 deletions.
3 changes: 3 additions & 0 deletions lib/app/constants/app_constants.dart
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,7 @@ class AppConstants {
static int mediaTypeId = 0;
static int personId = 0;
static const bool debugRequest = false;

static const languageKey = 'languageCode';
static const themeModeKey = 'themeMode';
}
13 changes: 13 additions & 0 deletions lib/app/constants/app_fonts.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import 'package:film_flu/gen/fonts.gen.dart';

class AppFonts {
static String primaryFont = FontFamily.ysabeauInfant;
static String secondaryFont = FontFamily.lilitaOne;
static String tertiaryFont = FontFamily.shadowsIntoLight;

const AppFonts(
primaryFont,
secondaryFont,
tertiaryFont,
);
}
352 changes: 352 additions & 0 deletions lib/app/constants/app_theme.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,352 @@
import 'package:film_flu/app/constants/app_fonts.dart';
import 'package:flutter/material.dart';

class AppTheme {
final TextTheme textTheme;

const AppTheme(this.textTheme);

static ColorScheme lightScheme() {
return const ColorScheme(
brightness: Brightness.light,
primary: Color(0xff970013),
surfaceTint: Color(0xffbe071d),
onPrimary: Color(0xffffffff),
primaryContainer: Color(0xffd42029),
onPrimaryContainer: Color(0xffffffff),
secondary: Color(0xff970013),
onSecondary: Color(0xffffffff),
secondaryContainer: Color(0xffd42029),
onSecondaryContainer: Color(0xffffffff),
tertiary: Color(0xff970013),
onTertiary: Color(0xffffffff),
tertiaryContainer: Color(0xffd42029),
onTertiaryContainer: Color(0xffffffff),
error: Color(0xff320004),
onError: Color(0xffffffff),
errorContainer: Color(0xff670f17),
onErrorContainer: Color(0xffffacaa),
surface: Color(0xfff9f9f9),
onSurface: Color(0xff1b1b1b),
onSurfaceVariant: Color(0xff444748),
outline: Color(0xff747878),
outlineVariant: Color(0xffc4c7c8),
shadow: Color(0x00010f0f),
scrim: Color(0x00010f0f),
inverseSurface: Color(0xff303030),
inversePrimary: Color(0xffffb3ad),
primaryFixed: Color(0xffffdad7),
onPrimaryFixed: Color(0xff410004),
primaryFixedDim: Color(0xffffb3ad),
onPrimaryFixedVariant: Color(0xff930012),
secondaryFixed: Color(0xffffdad7),
onSecondaryFixed: Color(0xff410004),
secondaryFixedDim: Color(0xffffb3ad),
onSecondaryFixedVariant: Color(0xff930012),
tertiaryFixed: Color(0xffffdad7),
onTertiaryFixed: Color(0xff410004),
tertiaryFixedDim: Color(0xffffb3ad),
onTertiaryFixedVariant: Color(0xff930012),
surfaceDim: Color(0xffdadada),
surfaceBright: Color(0xfff9f9f9),
surfaceContainerLowest: Color(0xffffffff),
surfaceContainerLow: Color(0xfff3f3f3),
surfaceContainer: Color(0xffeeeeee),
surfaceContainerHigh: Color(0xffe8e8e8),
surfaceContainerHighest: Color(0xffe2e2e2),
);
}

ThemeData light() {
return theme(lightScheme());
}

static ColorScheme lightMediumContrastScheme() {
return const ColorScheme(
brightness: Brightness.light,
primary: Color(0xff8b0010),
surfaceTint: Color(0xffbe071d),
onPrimary: Color(0xffffffff),
primaryContainer: Color(0xffd42029),
onPrimaryContainer: Color(0xffffffff),
secondary: Color(0xff8b0010),
onSecondary: Color(0xffffffff),
secondaryContainer: Color(0xffd42029),
onSecondaryContainer: Color(0xffffffff),
tertiary: Color(0xff8b0010),
onTertiary: Color(0xffffffff),
tertiaryContainer: Color(0xffd42029),
onTertiaryContainer: Color(0xffffffff),
error: Color(0xff320004),
onError: Color(0xffffffff),
errorContainer: Color(0xff670f17),
onErrorContainer: Color(0xffffeceb),
surface: Color(0xfff9f9f9),
onSurface: Color(0xff1b1b1b),
onSurfaceVariant: Color(0xff404344),
outline: Color(0xff5c6060),
outlineVariant: Color(0xff787b7c),
shadow: Color(0x00010f0f),
scrim: Color(0x00010f0f),
inverseSurface: Color(0xff303030),
inversePrimary: Color(0xffffb3ad),
primaryFixed: Color(0xffdf2a30),
onPrimaryFixed: Color(0xffffffff),
primaryFixedDim: Color(0xffbb021a),
onPrimaryFixedVariant: Color(0xffffffff),
secondaryFixed: Color(0xffdf2a30),
onSecondaryFixed: Color(0xffffffff),
secondaryFixedDim: Color(0xffbb021a),
onSecondaryFixedVariant: Color(0xffffffff),
tertiaryFixed: Color(0xffdf2a30),
onTertiaryFixed: Color(0xffffffff),
tertiaryFixedDim: Color(0xffbb021a),
onTertiaryFixedVariant: Color(0xffffffff),
surfaceDim: Color(0xffdadada),
surfaceBright: Color(0xfff9f9f9),
surfaceContainerLowest: Color(0xffffffff),
surfaceContainerLow: Color(0xfff3f3f3),
surfaceContainer: Color(0xffeeeeee),
surfaceContainerHigh: Color(0xffe8e8e8),
surfaceContainerHighest: Color(0xffe2e2e2),
);
}

ThemeData lightMediumContrast() {
return theme(lightMediumContrastScheme());
}

static ColorScheme lightHighContrastScheme() {
return const ColorScheme(
brightness: Brightness.light,
primary: Color(0xff4d0005),
surfaceTint: Color(0xffbe071d),
onPrimary: Color(0xffffffff),
primaryContainer: Color(0xff8b0010),
onPrimaryContainer: Color(0xffffffff),
secondary: Color(0xff4d0005),
onSecondary: Color(0xffffffff),
secondaryContainer: Color(0xff8b0010),
onSecondaryContainer: Color(0xffffffff),
tertiary: Color(0xff4d0005),
onTertiary: Color(0xffffffff),
tertiaryContainer: Color(0xff8b0010),
onTertiaryContainer: Color(0xffffffff),
error: Color(0xff320004),
onError: Color(0xffffffff),
errorContainer: Color(0xff670f17),
onErrorContainer: Color(0xffffffff),
surface: Color(0xfff9f9f9),
onSurface: Color(0x00010f0f),
onSurfaceVariant: Color(0xff212525),
outline: Color(0xff404344),
outlineVariant: Color(0xff404344),
shadow: Color(0x00010f0f),
scrim: Color(0x00010f0f),
inverseSurface: Color(0xff303030),
inversePrimary: Color(0xffffe7e4),
primaryFixed: Color(0xff8b0010),
onPrimaryFixed: Color(0xffffffff),
primaryFixedDim: Color(0xff610008),
onPrimaryFixedVariant: Color(0xffffffff),
secondaryFixed: Color(0xff8b0010),
onSecondaryFixed: Color(0xffffffff),
secondaryFixedDim: Color(0xff610008),
onSecondaryFixedVariant: Color(0xffffffff),
tertiaryFixed: Color(0xff8b0010),
onTertiaryFixed: Color(0xffffffff),
tertiaryFixedDim: Color(0xff610008),
onTertiaryFixedVariant: Color(0xffffffff),
surfaceDim: Color(0xffdadada),
surfaceBright: Color(0xfff9f9f9),
surfaceContainerLowest: Color(0xffffffff),
surfaceContainerLow: Color(0xfff3f3f3),
surfaceContainer: Color(0xffeeeeee),
surfaceContainerHigh: Color(0xffe8e8e8),
surfaceContainerHighest: Color(0xffe2e2e2),
);
}

ThemeData lightHighContrast() {
return theme(lightHighContrastScheme());
}

static ColorScheme darkScheme() {
return const ColorScheme(
brightness: Brightness.dark,
primary: Color(0xff680009),
surfaceTint: Color(0xff680009),
onPrimary: Color(0xff680009),
primaryContainer: Color(0xffc81422),
onPrimaryContainer: Color(0xffffffff),
secondary: Color(0xff680009),
onSecondary: Color(0xff680009),
secondaryContainer: Color(0xffc81422),
onSecondaryContainer: Color(0xffffffff),
tertiary: Color(0xff680009),
onTertiary: Color(0xff680009),
tertiaryContainer: Color(0xffc81422),
onTertiaryContainer: Color(0xffffffff),
error: Color(0xff680009),
onError: Color(0xff640c14),
errorContainer: Color(0xff460008),
onErrorContainer: Color(0xffff8584),
surface: Color(0xff131313),
onSurface: Color(0xffe2e2e2),
onSurfaceVariant: Color(0xffc4c7c8),
outline: Color(0xff8e9192),
outlineVariant: Color(0xff444748),
shadow: Color(0x00010f0f),
scrim: Color(0x00010f0f),
inverseSurface: Color(0xffe2e2e2),
inversePrimary: Color(0xffbe071d),
primaryFixed: Color(0xffffdad7),
onPrimaryFixed: Color(0xff410004),
primaryFixedDim: Color(0xffffb3ad),
onPrimaryFixedVariant: Color(0xff930012),
secondaryFixed: Color(0xffffdad7),
onSecondaryFixed: Color(0xff410004),
secondaryFixedDim: Color(0xffffb3ad),
onSecondaryFixedVariant: Color(0xff930012),
tertiaryFixed: Color(0xffffdad7),
onTertiaryFixed: Color(0xff410004),
tertiaryFixedDim: Color(0xffffb3ad),
onTertiaryFixedVariant: Color(0xff930012),
surfaceDim: Color(0xff131313),
surfaceBright: Color(0xff393939),
surfaceContainerLowest: Color(0xff0e0e0e),
surfaceContainerLow: Color(0xff1b1b1b),
surfaceContainer: Color(0xff1f1f1f),
surfaceContainerHigh: Color(0xff2a2a2a),
surfaceContainerHighest: Color(0xff353535),
);
}

ThemeData dark() {
return theme(darkScheme());
}

static ColorScheme darkMediumContrastScheme() {
return const ColorScheme(
brightness: Brightness.dark,
primary: Color(0xffffb9b3),
surfaceTint: Color(0xffffb3ad),
onPrimary: Color(0xff370003),
primaryContainer: Color(0xffff5450),
onPrimaryContainer: Color(0x00010f0f),
secondary: Color(0xffffb9b3),
onSecondary: Color(0xff370003),
secondaryContainer: Color(0xffff5450),
onSecondaryContainer: Color(0x00010f0f),
tertiary: Color(0xffffb9b3),
onTertiary: Color(0xff370003),
tertiaryContainer: Color(0xffff5450),
onTertiaryContainer: Color(0x00010f0f),
error: Color(0xffffb9b6),
onError: Color(0xff370005),
errorContainer: Color(0xffe36c6c),
onErrorContainer: Color(0x00010f0f),
surface: Color(0xff131313),
onSurface: Color(0xfffbfbfb),
onSurfaceVariant: Color(0xffc8cbcc),
outline: Color(0xffa0a3a4),
outlineVariant: Color(0xff808484),
shadow: Color(0x00010f0f),
scrim: Color(0x00010f0f),
inverseSurface: Color(0xffe2e2e2),
inversePrimary: Color(0xff950012),
primaryFixed: Color(0xffffdad7),
onPrimaryFixed: Color(0xff2d0002),
primaryFixedDim: Color(0xffffb3ad),
onPrimaryFixedVariant: Color(0xff73000c),
secondaryFixed: Color(0xffffdad7),
onSecondaryFixed: Color(0xff2d0002),
secondaryFixedDim: Color(0xffffb3ad),
onSecondaryFixedVariant: Color(0xff73000c),
tertiaryFixed: Color(0xffffdad7),
onTertiaryFixed: Color(0xff2d0002),
tertiaryFixedDim: Color(0xffffb3ad),
onTertiaryFixedVariant: Color(0xff73000c),
surfaceDim: Color(0xff131313),
surfaceBright: Color(0xff393939),
surfaceContainerLowest: Color(0xff0e0e0e),
surfaceContainerLow: Color(0xff1b1b1b),
surfaceContainer: Color(0xff1f1f1f),
surfaceContainerHigh: Color(0xff2a2a2a),
surfaceContainerHighest: Color(0xff353535),
);
}

ThemeData darkMediumContrast() {
return theme(darkMediumContrastScheme());
}

static ColorScheme darkHighContrastScheme() {
return const ColorScheme(
brightness: Brightness.dark,
primary: Color(0xfffff9f9),
surfaceTint: Color(0xffffb3ad),
onPrimary: Color(0x00010f0f),
primaryContainer: Color(0xffffb9b3),
onPrimaryContainer: Color(0x00010f0f),
secondary: Color(0xfffff9f9),
onSecondary: Color(0x00010f0f),
secondaryContainer: Color(0xffffb9b3),
onSecondaryContainer: Color(0x00010f0f),
tertiary: Color(0xfffff9f9),
onTertiary: Color(0x00010f0f),
tertiaryContainer: Color(0xffffb9b3),
onTertiaryContainer: Color(0x00010f0f),
error: Color(0xfffff9f9),
onError: Color(0x00010f0f),
errorContainer: Color(0xffffb9b6),
onErrorContainer: Color(0x00010f0f),
surface: Color(0xff131313),
onSurface: Color(0xffffffff),
onSurfaceVariant: Color(0xfff8fbfc),
outline: Color(0xffc8cbcc),
outlineVariant: Color(0xffc8cbcc),
shadow: Color(0x00010f0f),
scrim: Color(0x00010f0f),
inverseSurface: Color(0xffe2e2e2),
inversePrimary: Color(0xff5c0007),
primaryFixed: Color(0xffffe0dd),
onPrimaryFixed: Color(0x00010f0f),
primaryFixedDim: Color(0xffffb9b3),
onPrimaryFixedVariant: Color(0xff370003),
secondaryFixed: Color(0xffffe0dd),
onSecondaryFixed: Color(0x00010f0f),
secondaryFixedDim: Color(0xffffb9b3),
onSecondaryFixedVariant: Color(0xff370003),
tertiaryFixed: Color(0xffffe0dd),
onTertiaryFixed: Color(0x00010f0f),
tertiaryFixedDim: Color(0xffffb9b3),
onTertiaryFixedVariant: Color(0xff370003),
surfaceDim: Color(0xff131313),
surfaceBright: Color(0xff393939),
surfaceContainerLowest: Color(0xff0e0e0e),
surfaceContainerLow: Color(0xff1b1b1b),
surfaceContainer: Color(0xff1f1f1f),
surfaceContainerHigh: Color(0xff2a2a2a),
surfaceContainerHighest: Color(0xff353535),
);
}

ThemeData darkHighContrast() {
return theme(darkHighContrastScheme());
}

ThemeData theme(ColorScheme colorScheme) => ThemeData(
useMaterial3: true,
brightness: colorScheme.brightness,
colorScheme: colorScheme,
fontFamily: AppFonts.primaryFont,
textTheme: textTheme.apply(
bodyColor: colorScheme.onSurface,
displayColor: colorScheme.onSurface,
fontFamily: AppFonts.primaryFont,
),
scaffoldBackgroundColor: colorScheme.surface,
canvasColor: colorScheme.surface,
);
}
1 change: 0 additions & 1 deletion lib/app/di/di.dart
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import 'package:film_flu/presentation/features/media_details/bloc/media_detail_b
import 'package:film_flu/presentation/features/media_list/bloc/media_list_bloc.dart';
import 'package:film_flu/presentation/features/person_details/bloc/person_details_bloc.dart';
import 'package:film_flu/presentation/features/splash/bloc/splash_bloc.dart';
import 'package:film_flu/presentation/top_blocs/language_cubit.dart';
import 'package:get_it/get_it.dart';
import 'package:shared_preferences/shared_preferences.dart';

Expand Down
6 changes: 0 additions & 6 deletions lib/app/di/modules/ui_modules.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,6 @@ part of '../di.dart';
final uiModulesDi = GetIt.instance;

void _uiModulesInit() {
uiModulesDi.registerFactory(
() => LanguageCubit(
appLocalDataSourceContract: uiModulesDi(),
),
);

uiModulesDi.registerFactory(
() => SplashBloc(),
);
Expand Down
Loading

0 comments on commit 9d85297

Please sign in to comment.