hondavert-dev/lib/core/providers/theme_provider.dart
2026-10-13 00:34:11 +00:00

33 lines
965 B
Dart

import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
enum AppThemeVariant { redDark, redLight, greenDark, greenLight }
class ThemeNotifier extends StateNotifier<AppThemeVariant> {
ThemeNotifier() : super(AppThemeVariant.redDark);
void set(AppThemeVariant v) => state = v;
}
final themeProvider =
StateNotifierProvider<ThemeNotifier, AppThemeVariant>(
(ref) => ThemeNotifier(),
);
/// Returns the accent color for the current theme variant.
extension AppThemeVariantX on AppThemeVariant {
Color get accentColor {
switch (this) {
case AppThemeVariant.redDark:
case AppThemeVariant.redLight:
return const Color(0xFFFF4444);
case AppThemeVariant.greenDark:
case AppThemeVariant.greenLight:
return const Color(0xFF00E676);
}
}
bool get isDark =>
this == AppThemeVariant.redDark || this == AppThemeVariant.greenDark;
}