Files
linkding-ios/lib/config/theme.dart
2025-06-17 21:13:03 +02:00

97 lines
3.9 KiB
Dart

import 'package:flutter/material.dart';
ThemeData lightTheme(ColorScheme? dynamicColorScheme) => ThemeData(
useMaterial3: true,
colorScheme: dynamicColorScheme,
snackBarTheme: SnackBarThemeData(
behavior: SnackBarBehavior.floating,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(5)),
elevation: 4,
),
brightness: Brightness.light,
listTileTheme: ListTileThemeData(
tileColor: Colors.transparent,
textColor:
dynamicColorScheme != null ? dynamicColorScheme.onSurfaceVariant : const Color.fromRGBO(117, 117, 117, 1),
iconColor:
dynamicColorScheme != null ? dynamicColorScheme.onSurfaceVariant : const Color.fromRGBO(117, 117, 117, 1),
),
cardTheme: CardThemeData(surfaceTintColor: dynamicColorScheme?.surfaceTint),
popupMenuTheme: PopupMenuThemeData(surfaceTintColor: dynamicColorScheme?.surfaceTint),
navigationBarTheme: NavigationBarThemeData(surfaceTintColor: dynamicColorScheme?.surfaceTint),
pageTransitionsTheme: const PageTransitionsTheme(
builders: {
TargetPlatform.android: PredictiveBackPageTransitionsBuilder(),
},
),
);
ThemeData darkTheme(ColorScheme? dynamicColorScheme) => ThemeData(
useMaterial3: true,
colorScheme: dynamicColorScheme,
snackBarTheme: SnackBarThemeData(
behavior: SnackBarBehavior.floating,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(5)),
elevation: 4,
),
brightness: Brightness.dark,
listTileTheme: ListTileThemeData(
tileColor: Colors.transparent,
textColor:
dynamicColorScheme != null ? dynamicColorScheme.onSurfaceVariant : const Color.fromRGBO(187, 187, 187, 1),
iconColor:
dynamicColorScheme != null ? dynamicColorScheme.onSurfaceVariant : const Color.fromRGBO(187, 187, 187, 1),
),
cardTheme: CardThemeData(surfaceTintColor: dynamicColorScheme?.surfaceTint),
popupMenuTheme: PopupMenuThemeData(surfaceTintColor: dynamicColorScheme?.surfaceTint),
navigationBarTheme: NavigationBarThemeData(surfaceTintColor: dynamicColorScheme?.surfaceTint),
pageTransitionsTheme: const PageTransitionsTheme(
builders: {
TargetPlatform.android: PredictiveBackPageTransitionsBuilder(),
},
),
);
ThemeData lightThemeOldVersions(MaterialColor primaryColor) => ThemeData(
useMaterial3: true,
colorSchemeSeed: primaryColor,
snackBarTheme: SnackBarThemeData(
behavior: SnackBarBehavior.floating,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(5)),
elevation: 4,
),
listTileTheme: const ListTileThemeData(
tileColor: Colors.transparent,
textColor: Color.fromRGBO(117, 117, 117, 1),
iconColor: Color.fromRGBO(117, 117, 117, 1),
),
brightness: Brightness.light,
pageTransitionsTheme: const PageTransitionsTheme(
builders: {
TargetPlatform.android: PredictiveBackPageTransitionsBuilder(),
},
),
);
ThemeData darkThemeOldVersions(MaterialColor primaryColor) => ThemeData(
useMaterial3: true,
colorSchemeSeed: primaryColor,
snackBarTheme: SnackBarThemeData(
contentTextStyle: const TextStyle(color: Colors.white),
behavior: SnackBarBehavior.floating,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(5)),
elevation: 4,
),
listTileTheme: const ListTileThemeData(
tileColor: Colors.transparent,
textColor: Color.fromRGBO(187, 187, 187, 1),
iconColor: Color.fromRGBO(187, 187, 187, 1),
),
brightness: Brightness.dark,
pageTransitionsTheme: const PageTransitionsTheme(
builders: {
TargetPlatform.android: PredictiveBackPageTransitionsBuilder(),
},
),
);