Feature | Android 10+ | iOS | Web | MacOs 10.4+ | Windows 10+ and XBox | Linux GTK 3+ |
---|---|---|---|---|---|---|
Get accent color | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
Get dark mode | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Import it:
import 'package:system_theme/system_theme.dart';
Use the getter SystemTheme.accentInstance.accent
to get the system accent color.
final accentColor = SystemTheme.accentInstance.accent;
To reload the accent colors, use the method load()
:
await SystemTheme.accentInstance.load();
You can load the colors before running the app, so the colors can't be wrong at runtime:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await SystemTheme.accentInstance.load();
runApp(MyApp());
}
To avoid unexpected effects at runtime, it's good to configure a fallback color. A fallback color is used if the system was not able to provide the color
void main() async {
WidgetsFlutterBinding.ensureInitialized();
SystemTheme.fallbackColor = const Color(0xFF865432);
await SystemTheme.accentInstance.load();
runApp(MyApp());
}
Use the getter SystemTheme.isDarkMode
to check if the device is in dark mode.
final darkMode = SystemTheme.darkMode;
Feel free to open an issue if you find an error or make pull requests.
- @alexmercerind for the Windows implementation