Skip to content

Commit 451ccdb

Browse files
committed
monochrome theme
1 parent 472d3c1 commit 451ccdb

1 file changed

Lines changed: 30 additions & 13 deletions

File tree

lib/main.dart

Lines changed: 30 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)