system_accent_color
A Flutter plugin to retrieve the current system accent color.
Supported platforms
Works best on desktop platforms. iOS is unsupported. Web support is not guaranteed and typically works more reliably when the Flutter web app is installed as a browser app (PWA).
| Platform | Source / API | Notes |
|---|---|---|
| Linux | org.freedesktop.appearance/accent-color via XDG Desktop Portal (org.freedesktop.portal.Settings) |
Independent of GTK theme values such as @theme_selected_bg_color |
| macOS | NSColor.controlAccentColor |
|
| Windows | DwmGetColorizationColor |
|
| Android | android.R.attr.colorAccent |
Version/OEM dependent. Android 12+ typically reflects user-selected system accent color |
| iOS | Not supported | Always returns null |
| Web | CSS AccentColor via temporary DOM element + computed style |
Better support in PWA mode. Behavior varies by browser |
Usage
import 'package:system_accent_color/system_accent_color.dart';
final Color? accentColor = await SystemAccentColor().getAccentColor();
Example
void main() async {
WidgetsFlutterBinding.ensureInitialized();
final accentColor = await SystemAccentColor().getAccentColor();
runApp(MainApp(accentColor: accentColor));
}
class MainApp(final Color? _accentColor) extends StatelessWidget {
static const Color _fallbackColor = Colors.redAccent;
@override
Widget build(BuildContext context) {
final seed = accentColor ?? _fallbackColor;
return MaterialApp(
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(
seedColor: seed,
brightness: Brightness.light,
),
),
home: ...,
);
}
}