system_theme

Creator: coderz1093

Last updated:

Add to Cart

Description:

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

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.