1+ import 'package:dynamic_color/dynamic_color.dart' ;
12import 'package:flutter/foundation.dart' ;
23import 'package:flutter/material.dart' ;
4+ import 'package:material_color_utilities/material_color_utilities.dart' ;
35
46enum ThemeType {
57 simpleColor (false ),
@@ -419,10 +421,11 @@ class AppTheme {
419421 onErrorContainer: Color (0xff410002 ),
420422 surface: Color (0xfff6fff6 ),
421423 onSurface: Color (0xff151d18 ),
422- surfaceContainer: Color (0xffeef0e7 ),
423- surfaceContainerLow: Color (0xfff1f5ec ),
424- surfaceContainerHigh: Color (0xffd4e3d9 ),
425- surfaceContainerHighest: Color (0xffebeae1 ),
424+ surfaceContainer: Color (0xFFF4F1F0 ),
425+ surfaceContainerLow: Color (0xfff6f3f1 ),
426+ surfaceContainerLowest: Color (0xffffffff ),
427+ surfaceContainerHigh: Color (0xFFEEECEA ),
428+ surfaceContainerHighest: Color (0xffe5e2e0 ),
426429 onSurfaceVariant: Color (0xff3c4a41 ),
427430 outline: Color (0xff6a7a6f ),
428431 outlineVariant: Color (0xffbacbbe ),
@@ -451,12 +454,14 @@ class AppTheme {
451454 onError: Color (0xff690005 ),
452455 errorContainer: Color (0xff93000a ),
453456 onErrorContainer: Color (0xffffb4ab ),
454- surface: Color (0xff151d18 ),
455- onSurface: Color (0xffdce5dc ),
456- surfaceContainerHighest: Color (0xff3c4a41 ),
457- surfaceContainerLow: Color (0xff20241f ),
458- surfaceContainer: Color (0xff272823 ),
459- onSurfaceVariant: Color (0xffbacbbe ),
457+ surface: Color (0xff131313 ),
458+ onSurface: Color (0xffe5e2e0 ),
459+ surfaceContainerHighest: Color (0xff353534 ),
460+ surfaceContainerLow: Color (0xff1b1c1b ),
461+ surfaceContainerLowest: Color (0xff0e0e0e ),
462+ surfaceContainerHigh: Color (0xff2a2a29 ),
463+ surfaceContainer: Color (0xff1f201f ),
464+ onSurfaceVariant: Color (0xffdac1bd ),
460465 outline: Color (0xff859589 ),
461466 outlineVariant: Color (0xff3c4a41 ),
462467 inverseSurface: Color (0xffdce5dc ),
@@ -509,49 +514,41 @@ class AppTheme {
509514 AppTheme .themes.remove (ThemeName .darkDynamic);
510515 }
511516
512- static void addDynamicThemes (ColorScheme lightScheme, ColorScheme darkScheme) {
517+ static void addDynamicThemes (CorePalette palette) async {
518+ ColorScheme lightScheme = palette.toColorScheme ();
519+ ColorScheme darkScheme = palette.toColorScheme (brightness: Brightness .dark);
520+ if (AppTheme .themes.containsKey (ThemeName .lightDynamic) && AppTheme .themes[ThemeName .lightDynamic]! .colorScheme.primary == lightScheme.primary) {
521+ print ('Dynamic themes already added' );
522+ return ;
523+ }
513524 try {
514- ColorScheme otherlightScheme = ColorScheme .fromSeed (seedColor: lightScheme.primary, brightness: Brightness .light);
515- ColorScheme otherDarkScheme = ColorScheme .fromSeed (seedColor: darkScheme.primary, brightness: Brightness .dark);
516-
517- lightScheme = lightScheme.copyWith (
518- surface: otherlightScheme.surface,
519- onSurface: otherlightScheme.onSurface,
520- surfaceBright: otherlightScheme.surfaceBright,
521- surfaceDim: otherlightScheme.surfaceDim,
522- surfaceContainer: otherlightScheme.surfaceContainer,
523- surfaceContainerHigh: otherlightScheme.surfaceContainerHigh,
524- surfaceContainerLow: otherlightScheme.surfaceContainerLow,
525- surfaceContainerHighest: otherlightScheme.surfaceContainerHighest,
526- surfaceContainerLowest: otherlightScheme.surfaceContainerLowest,
527- );
528-
529- darkScheme = darkScheme.copyWith (
530- surface: otherDarkScheme.surface,
531- onSurface: otherDarkScheme.onSurface,
532- surfaceBright: otherDarkScheme.surfaceBright,
533- surfaceDim: otherDarkScheme.surfaceDim,
534- surfaceContainer: otherDarkScheme.surfaceContainer,
535- surfaceContainerHigh: otherDarkScheme.surfaceContainerHigh,
536- surfaceContainerLow: otherDarkScheme.surfaceContainerLow,
537- surfaceContainerHighest: otherDarkScheme.surfaceContainerHighest,
538- surfaceContainerLowest: otherDarkScheme.surfaceContainerLowest,
539- );
540-
541525 lightScheme = lightScheme.copyWith (
542- surfaceContainerLow: ElevationOverlay .applySurfaceTint (lightScheme.surface, lightScheme.primary, 3 ),
526+ surface: Color (palette.neutral.get (98 )),
527+ surfaceBright: Color (palette.neutral.get (98 )),
528+ surfaceDim: Color (palette.neutral.get (87 )),
529+ surfaceContainerLowest: Color (palette.neutral.get (100 )),
530+ surfaceContainerLow: Color (palette.neutral.get (96 )),
531+ surfaceContainer: Color (palette.neutral.get (94 )),
532+ surfaceContainerHigh: Color (palette.neutral.get (92 )),
533+ surfaceContainerHighest: Color (palette.neutral.get (90 )),
543534 );
544535
545536 darkScheme = darkScheme.copyWith (
546- surfaceContainerLow: ElevationOverlay .applySurfaceTint (darkScheme.surface, darkScheme.primary, 3 ),
537+ surface: Color (palette.neutral.get (6 )),
538+ surfaceBright: Color (palette.neutral.get (24 )),
539+ surfaceDim: Color (palette.neutral.get (6 )),
540+ surfaceContainerLowest: Color (palette.neutral.get (4 )),
541+ surfaceContainerLow: Color (palette.neutral.get (10 )),
542+ surfaceContainer: Color (palette.neutral.get (12 )),
543+ surfaceContainerHigh: Color (palette.neutral.get (17 )),
544+ surfaceContainerHighest: Color (palette.neutral.get (22 )),
547545 );
548546
549547 AppTheme .themes[ThemeName .lightDynamic] = ThemeData .from (
550548 colorScheme: lightScheme,
551549 useMaterial3: true ,
552550 ).copyWith (
553551 cardTheme: CardTheme (
554- color: lightScheme.surfaceContainerLow,
555552 shape: RoundedRectangleBorder (
556553 borderRadius: BorderRadius .circular (15 ),
557554 ),
@@ -573,7 +570,6 @@ class AppTheme {
573570 useMaterial3: true ,
574571 ).copyWith (
575572 cardTheme: CardTheme (
576- color: darkScheme.surfaceContainerLow,
577573 shape: RoundedRectangleBorder (
578574 borderRadius: BorderRadius .circular (15 ),
579575 ),
0 commit comments