@@ -246,16 +246,22 @@ class MyApp extends StatelessWidget {
246246 return child! ;
247247 },
248248 theme: ThemeData .from (
249- colorScheme: useExpressiveVariant
249+ colorScheme: isMonochrome (themeController.seedColor)
250250 ? ColorScheme .fromSeed (
251- seedColor: themeController.seedColor ?? Colors .blue ,
251+ seedColor: themeController.seedColor,
252252 brightness: Brightness .light,
253- dynamicSchemeVariant: DynamicSchemeVariant .expressive ,
253+ dynamicSchemeVariant: DynamicSchemeVariant .monochrome ,
254254 )
255- : ColorScheme .fromSeed (
256- seedColor: themeController.seedColor ?? Colors .blue,
257- brightness: Brightness .light,
258- ),
255+ : useExpressiveVariant
256+ ? ColorScheme .fromSeed (
257+ seedColor: themeController.seedColor ?? Colors .blue,
258+ brightness: Brightness .light,
259+ dynamicSchemeVariant: DynamicSchemeVariant .expressive,
260+ )
261+ : ColorScheme .fromSeed (
262+ seedColor: themeController.seedColor ?? Colors .blue,
263+ brightness: Brightness .light,
264+ ),
259265 useMaterial3: true ,
260266 ).copyWith (
261267 textTheme: ThemeData .light ()
@@ -294,16 +300,22 @@ class MyApp extends StatelessWidget {
294300 ),
295301 ),
296302 darkTheme: ThemeData .from (
297- colorScheme: useExpressiveVariant
303+ colorScheme: isMonochrome (themeController.seedColor)
298304 ? ColorScheme .fromSeed (
299305 seedColor: themeController.seedColor ?? Colors .blue,
300306 brightness: Brightness .dark,
301- dynamicSchemeVariant: DynamicSchemeVariant .expressive ,
307+ dynamicSchemeVariant: DynamicSchemeVariant .monochrome ,
302308 )
303- : ColorScheme .fromSeed (
304- seedColor: themeController.seedColor ?? Colors .blue,
305- brightness: Brightness .dark,
306- ),
309+ : useExpressiveVariant
310+ ? ColorScheme .fromSeed (
311+ seedColor: themeController.seedColor ?? Colors .blue,
312+ brightness: Brightness .dark,
313+ dynamicSchemeVariant: DynamicSchemeVariant .expressive,
314+ )
315+ : ColorScheme .fromSeed (
316+ seedColor: themeController.seedColor ?? Colors .blue,
317+ brightness: Brightness .dark,
318+ ),
307319 useMaterial3: true ,
308320 ).copyWith (
309321 textTheme: ThemeData .dark ()
@@ -754,3 +766,8 @@ Future<Map<String, String>> getGeoData(double lat, double lon) async {
754766 'country' : geoData? ['country' ] ?? 'Unknown Country' ,
755767 };
756768}
769+
770+ bool isMonochrome (Color c, {double tol = 1.0 / 255.0 }) {
771+ final r = c.r, g = c.g, b = c.b;
772+ return (r - g).abs () <= tol && (g - b).abs () <= tol && (r - b).abs () <= tol;
773+ }
0 commit comments