Flutter Theme Handler 🎨
A lightweight and flexible theme management package for Flutter projects.
✨ Features:
- 🌗 Supports Light & Dark Mode
- 🎨 Customizable themes (Chip, Radio, Input, Snackbar)
- 🌍 Locale-aware text styles
🔥 Usage
class App extends StatelessWidget {
final themeController = ThemeController(
colorSchemeProvider: (isDark) => NZColors.getAppColorScheme(isDark),
);
App({super.key});
@override
Widget build(BuildContext context) {
final router = locator<AppRouter>();
return ThemeProvider(
controller: themeController,
child: AnimatedBuilder(
animation: themeController,
builder: (context, _) {
themeController.updateThemeWithLocale(context);
return MaterialApp.router(
localizationsDelegates: context.localizationDelegates,
supportedLocales: context.supportedLocales,
debugShowCheckedModeBanner: false,
locale: context.locale,
title: locator<Config>().appName,
theme: themeController.value,
routerDelegate: AutoRouterDelegate(router),
routeInformationParser: router.defaultRouteParser(),
);
},
),
);
}
}
... Toggle event for theme change ...
ThemeProvider.of(context).toggleTheme();