import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; enum AppThemeVariant { redDark, redLight, greenDark, greenLight } class ThemeNotifier extends StateNotifier { ThemeNotifier() : super(AppThemeVariant.redDark); void set(AppThemeVariant v) => state = v; } final themeProvider = StateNotifierProvider( (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; }