import 'package:flutter/material.dart'; /// Curated accent themes. Each choice has a deep light-theme color and a bright /// dark-theme color, plus matching soft surfaces and ink for filled controls. enum AccentChoice { green( 'Green', lightAccent: Color(0xFF3E7A32), lightInk: Color(0xFFFFFFFF), lightSoft: Color(0xFFDCEAD4), darkAccent: Color(0xFF8BCB77), darkInk: Color(0xFF0A1208), darkSoft: Color(0xFF22321B), ), blue( 'Blue', lightAccent: Color(0xFF2F6FED), lightInk: Color(0xFFFFFFFF), lightSoft: Color(0xFFDCE8FF), darkAccent: Color(0xFF7FB0FF), darkInk: Color(0xFF071426), darkSoft: Color(0xFF1A2B45), ), amber( 'Amber', lightAccent: Color(0xFFA96700), lightInk: Color(0xFFFFFFFF), lightSoft: Color(0xFFF7E6C4), darkAccent: Color(0xFFEDC15A), darkInk: Color(0xFF211704), darkSoft: Color(0xFF3A2D12), ), rose( 'Rose', lightAccent: Color(0xFFB23B62), lightInk: Color(0xFFFFFFFF), lightSoft: Color(0xFFF7DCE5), darkAccent: Color(0xFFF08CA8), darkInk: Color(0xFF2A0712), darkSoft: Color(0xFF3D1C27), ), violet( 'Violet', lightAccent: Color(0xFF6A4AC8), lightInk: Color(0xFFFFFFFF), lightSoft: Color(0xFFE6DFFC), darkAccent: Color(0xFFB9A4FF), darkInk: Color(0xFF140A33), darkSoft: Color(0xFF2C224A), ), teal( 'Teal', lightAccent: Color(0xFF0D726B), lightInk: Color(0xFFFFFFFF), lightSoft: Color(0xFFD4EDEA), darkAccent: Color(0xFF68D1C5), darkInk: Color(0xFF041714), darkSoft: Color(0xFF123330), ); const AccentChoice( this.label, { required this.lightAccent, required this.lightInk, required this.lightSoft, required this.darkAccent, required this.darkInk, required this.darkSoft, }); final String label; final Color lightAccent; final Color lightInk; final Color lightSoft; final Color darkAccent; final Color darkInk; final Color darkSoft; Color accentFor(Brightness brightness) { return brightness == Brightness.dark ? darkAccent : lightAccent; } Color inkFor(Brightness brightness) { return brightness == Brightness.dark ? darkInk : lightInk; } Color softFor(Brightness brightness) { return brightness == Brightness.dark ? darkSoft : lightSoft; } String get storageValue => name; static AccentChoice fromStorage(String? value) { for (final choice in values) { if (choice.name == value) return choice; } return AccentChoice.green; } }