mirror of
https://github.com/immich-app/immich.git
synced 2024-11-15 18:08:48 -07:00
134 lines
3.9 KiB
Dart
134 lines
3.9 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter/services.dart';
|
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|
import 'package:immich_mobile/constants/immich_colors.dart';
|
|
import 'package:immich_mobile/modules/settings/providers/app_settings.provider.dart';
|
|
import 'package:immich_mobile/modules/settings/services/app_settings.service.dart';
|
|
|
|
final immichThemeProvider = StateProvider<ThemeMode>((ref) {
|
|
var themeMode = ref
|
|
.watch(appSettingsServiceProvider)
|
|
.getSetting(AppSettingsEnum.themeMode);
|
|
|
|
debugPrint("Current themeMode $themeMode");
|
|
|
|
if (themeMode == "light") {
|
|
return ThemeMode.light;
|
|
} else if (themeMode == "dark") {
|
|
return ThemeMode.dark;
|
|
} else {
|
|
return ThemeMode.system;
|
|
}
|
|
});
|
|
|
|
ThemeData immichDarkTheme = ThemeData(
|
|
useMaterial3: true,
|
|
brightness: Brightness.dark,
|
|
primarySwatch: Colors.indigo,
|
|
primaryColor: immichDarkThemePrimaryColor,
|
|
scaffoldBackgroundColor: immichDarkBackgroundColor,
|
|
hintColor: Colors.grey[600],
|
|
fontFamily: 'WorkSans',
|
|
snackBarTheme: const SnackBarThemeData(
|
|
contentTextStyle: TextStyle(fontFamily: 'WorkSans'),
|
|
),
|
|
appBarTheme: AppBarTheme(
|
|
titleTextStyle: TextStyle(
|
|
fontFamily: 'WorkSans',
|
|
color: immichDarkThemePrimaryColor,
|
|
),
|
|
backgroundColor: const Color.fromARGB(255, 32, 33, 35),
|
|
foregroundColor: immichDarkThemePrimaryColor,
|
|
elevation: 1,
|
|
centerTitle: true,
|
|
systemOverlayStyle: SystemUiOverlayStyle.light,
|
|
),
|
|
bottomNavigationBarTheme: BottomNavigationBarThemeData(
|
|
type: BottomNavigationBarType.fixed,
|
|
backgroundColor: const Color.fromARGB(255, 35, 36, 37),
|
|
selectedItemColor: immichDarkThemePrimaryColor,
|
|
),
|
|
drawerTheme: DrawerThemeData(
|
|
backgroundColor: immichDarkBackgroundColor,
|
|
scrimColor: Colors.white.withOpacity(0.1),
|
|
),
|
|
textTheme: TextTheme(
|
|
headline1: const TextStyle(
|
|
fontSize: 26,
|
|
fontWeight: FontWeight.bold,
|
|
color: Color.fromARGB(255, 255, 255, 255),
|
|
),
|
|
headline2: const TextStyle(
|
|
fontSize: 14,
|
|
fontWeight: FontWeight.bold,
|
|
color: Color.fromARGB(255, 148, 151, 155),
|
|
),
|
|
headline3: TextStyle(
|
|
fontSize: 12,
|
|
fontWeight: FontWeight.bold,
|
|
color: immichDarkThemePrimaryColor,
|
|
),
|
|
),
|
|
cardColor: Colors.grey[900],
|
|
elevatedButtonTheme: ElevatedButtonThemeData(
|
|
style: ElevatedButton.styleFrom(
|
|
foregroundColor: Colors.black87,
|
|
backgroundColor: immichDarkThemePrimaryColor,
|
|
),
|
|
),
|
|
);
|
|
|
|
ThemeData immichLightTheme = ThemeData(
|
|
useMaterial3: true,
|
|
brightness: Brightness.light,
|
|
primarySwatch: Colors.indigo,
|
|
hintColor: Colors.indigo,
|
|
fontFamily: 'WorkSans',
|
|
scaffoldBackgroundColor: immichBackgroundColor,
|
|
snackBarTheme: const SnackBarThemeData(
|
|
contentTextStyle: TextStyle(fontFamily: 'WorkSans'),
|
|
),
|
|
appBarTheme: AppBarTheme(
|
|
titleTextStyle: const TextStyle(
|
|
fontFamily: 'WorkSans',
|
|
color: Colors.indigo,
|
|
),
|
|
backgroundColor: immichBackgroundColor,
|
|
foregroundColor: Colors.indigo,
|
|
elevation: 1,
|
|
centerTitle: true,
|
|
systemOverlayStyle: SystemUiOverlayStyle.dark,
|
|
),
|
|
bottomNavigationBarTheme: BottomNavigationBarThemeData(
|
|
type: BottomNavigationBarType.fixed,
|
|
backgroundColor: immichBackgroundColor,
|
|
selectedItemColor: Colors.indigo,
|
|
),
|
|
drawerTheme: DrawerThemeData(
|
|
backgroundColor: immichBackgroundColor,
|
|
),
|
|
textTheme: const TextTheme(
|
|
headline1: TextStyle(
|
|
fontSize: 26,
|
|
fontWeight: FontWeight.bold,
|
|
color: Colors.indigo,
|
|
),
|
|
headline2: TextStyle(
|
|
fontSize: 14,
|
|
fontWeight: FontWeight.bold,
|
|
color: Colors.black87,
|
|
),
|
|
headline3: TextStyle(
|
|
fontSize: 12,
|
|
fontWeight: FontWeight.bold,
|
|
color: Colors.indigo,
|
|
),
|
|
),
|
|
elevatedButtonTheme: ElevatedButtonThemeData(
|
|
style: ElevatedButton.styleFrom(
|
|
backgroundColor: Colors.indigo,
|
|
foregroundColor: Colors.white,
|
|
),
|
|
),
|
|
);
|