0 purchases
system theme
system_theme
A flutter plugin to get the current system theme information
Supported platforms
Usage
Get system accent color
Contribution
Acknowlegments
Supported platforms #
Feature
Android 10+
iOS
Web
MacOs 10.4+
Windows 10+ and XBox
Linux GTK 3+
Get accent color
✔️
✔️
✔️
✔️
✔️
✔️
Listen to changes
✔️
Usage #
Import it:
import 'package:system_theme/system_theme.dart';
copied to clipboard
Get system accent color #
Use the getter SystemTheme.accentColor.accent to get the system accent color.
final accentColor = SystemTheme.accentColor.accent;
copied to clipboard
To reload the accent colors, use the method load():
await SystemTheme.accentColor.load();
copied to clipboard
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.accentColor.load();
runApp(MyApp());
}
copied to clipboard
Configure a fallback accent color #
To avoid unexpected outcomes at runtime, it's recommended to configure your own fallback color. The fallback color is used if the system is not able to provide the color.
void main() async {
WidgetsFlutterBinding.ensureInitialized();
SystemTheme.fallbackColor = const Color(0xFF865432);
await SystemTheme.accentColor.load();
runApp(MyApp());
}
copied to clipboard
Listen to changes on the system accent color #
To simply listen to changes on the system accent color, use the SystemTheme.onChange stream:
SystemTheme.onChange.listen((event) {
debugPrint('Accent color changed to ${event.accentColor}');
});
copied to clipboard
Alteratively, you can the SystemThemeBuilder widget to listen to changes on the system accent color:
SystemThemeBuilder(builder: (context, accent) {
return ColoredBox(color: accent.accentColor);
});
copied to clipboard
Checking if accent color is supported #
The flutter/foundation package provides a defaultTargetPlatform getter, which can be used to check what platform the current app is running on.
You can check if the current platform supports accent colors using this extension method:
import 'package:flutter/foundation.dart' show defaultTargetPlatform;
void main() {
final supported = defaultTargetPlatform.supportsAccentColor;
print('Accent color is: ${supported ? 'supported' : 'not supported'} on the current platform');
}
copied to clipboard
Contribution #
Feel free to open an issue if you find an error or make pull requests.
Acknowlegments #
@alexmercerind for the Windows implementation
@pgiacomo69 for the accent color listener
@HosamHasanRamadan for the iOS implementation
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.