appColorTemplate function
Implementation
String appColorTemplate() => '''
${ProjectUtils.fileGenerationString}
import 'package:flutter/material.dart';
extension AppThemeContext on BuildContext {
AppColors get appColors => AppColors(this);
}
class AppColors {
final BuildContext context;
const AppColors(this.context);
ThemeData get _theme => Theme.of(context);
ColorScheme get _scheme => _theme.colorScheme;
TextTheme get _text => _theme.textTheme;
bool get _isDark => _theme.brightness == Brightness.dark;
// ---------------- BRAND ----------------
Color get primary => _scheme.primary;
Color get secondary => _scheme.secondary;
// ---------------- CONTAINERS ----------------
Color get primaryContainer => _scheme.primaryContainer;
Color get secondaryContainer => _scheme.secondaryContainer;
Color get errorContainer => _scheme.errorContainer;
// ---------------- SURFACES ----------------
Color get surface => _scheme.surface;
Color get background => _theme.scaffoldBackgroundColor;
// ---------------- TEXT ----------------
Color get textPrimary => _text.bodyMedium?.color ?? (_isDark ? Colors.white : Colors.black);
Color get textSecondary => _text.bodySmall?.color?.withValues(alpha: 0.7) ?? (_isDark ? Colors.white70 : Colors.black54);
Color get textDisabled => _theme.disabledColor;
Color get textInverse => _scheme.onPrimary;
// ---------------- INPUT / UI ----------------
Color get hintColor => _theme.hintColor;
Color get dividerColor => _theme.dividerColor;
Color get border => _scheme.outline;
// ---------------- STATUS ----------------
Color get error => _scheme.error;
Color get success => _isDark ? const Color(0xFF27AE60) : const Color(0xFF2ECC71);
Color get warning => _isDark ? const Color(0xFFFFB300) : const Color(0xFFFFC107);
Color get info => _isDark ? const Color(0xFF2980B9) : const Color(0xFF3498DB);
Color get successContainer => _isDark ? const Color(0xFF1E3A2B) : const Color(0xFFDFF5EA);
Color get warningContainer => _isDark ? const Color(0xFF4A3B1A) : const Color(0xFFFFF3CD);
Color get infoContainer => _isDark ? const Color(0xFF1E3A4D) : const Color(0xFFE3F2FD);
// ---------------- BUTTONS ----------------
Color get buttonDisable => _isDark ? const Color(0xFF5A5E9E) : const Color(0xFFCBCCEF);
Color get buttonPressed => _isDark ? const Color(0xFF3E46C8) : const Color(0xFF4C56E0);
// ---------------- MISC ----------------
Color get overlay => _isDark ? const Color(0x80000000) : const Color(0x33000000);
Color get transparent => Colors.transparent;
Color get shimmerBase => _isDark ? Colors.grey.shade800 : Colors.grey.shade300;
Color get shimmerHighlight => _isDark ? Colors.grey.shade700 : Colors.grey.shade100;
Color get white => Colors.white;
Color get black => Colors.black;
/// Context-aware foreground/background swap
Color get whiteBlack => _isDark ? Colors.white : Colors.black;
}
''';