Modificação nos modos, correção de textos cortados
This commit is contained in:
106
lib/core/theme/app_theme_extension.dart
Normal file
106
lib/core/theme/app_theme_extension.dart
Normal file
@@ -0,0 +1,106 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'app_colors.dart';
|
||||
|
||||
/// Theme extension for gradients and colors not covered by [ColorScheme].
|
||||
@immutable
|
||||
class AppThemeExtras extends ThemeExtension<AppThemeExtras> {
|
||||
const AppThemeExtras({
|
||||
required this.dashboardBackgroundGradient,
|
||||
required this.dashboardGradientStops,
|
||||
required this.heroProgressStart,
|
||||
required this.heroProgressEnd,
|
||||
required this.actionCardGradientStart,
|
||||
required this.actionCardGradientEnd,
|
||||
required this.authBackgroundGradient,
|
||||
required this.dashboardHeaderTextColor,
|
||||
});
|
||||
|
||||
final List<Color> dashboardBackgroundGradient;
|
||||
final List<double> dashboardGradientStops;
|
||||
final Color heroProgressStart;
|
||||
final Color heroProgressEnd;
|
||||
final Color actionCardGradientStart;
|
||||
final Color actionCardGradientEnd;
|
||||
final List<Color> authBackgroundGradient;
|
||||
final Color dashboardHeaderTextColor;
|
||||
|
||||
static final AppThemeExtras light = AppThemeExtras(
|
||||
dashboardBackgroundGradient: [
|
||||
AppColors.primaryTeal,
|
||||
AppColors.primaryTeal.withValues(alpha: 0.8),
|
||||
AppColors.primaryOrange,
|
||||
LightColors.background,
|
||||
],
|
||||
dashboardGradientStops: [0.0, 0.2, 0.6, 1.0],
|
||||
heroProgressStart: Colors.white,
|
||||
heroProgressEnd: Color(0xFFF8F9FA),
|
||||
actionCardGradientStart: AppColors.primaryTeal,
|
||||
actionCardGradientEnd: AppColors.gradientEnd,
|
||||
authBackgroundGradient: [
|
||||
const Color(0xFFD4E8E8),
|
||||
const Color(0xFFE8D4C0),
|
||||
const Color(0xFFD8E0E8),
|
||||
],
|
||||
dashboardHeaderTextColor: Colors.white,
|
||||
);
|
||||
|
||||
static final AppThemeExtras dark = AppThemeExtras(
|
||||
dashboardBackgroundGradient: [
|
||||
DarkColors.surfaceVariant,
|
||||
DarkColors.surface,
|
||||
DarkColors.background,
|
||||
DarkColors.background,
|
||||
],
|
||||
dashboardGradientStops: [0.0, 0.25, 0.55, 1.0],
|
||||
heroProgressStart: Colors.white.withValues(alpha: 0.9),
|
||||
heroProgressEnd: Colors.white.withValues(alpha: 0.55),
|
||||
actionCardGradientStart: DarkBrandColors.gradientStart,
|
||||
actionCardGradientEnd: DarkBrandColors.gradientEnd,
|
||||
authBackgroundGradient: [
|
||||
DarkColors.surfaceVariant,
|
||||
DarkColors.surface,
|
||||
DarkColors.background,
|
||||
],
|
||||
dashboardHeaderTextColor: DarkColors.textPrimary,
|
||||
);
|
||||
|
||||
static AppThemeExtras of(BuildContext context) {
|
||||
return Theme.of(context).extension<AppThemeExtras>() ?? light;
|
||||
}
|
||||
|
||||
@override
|
||||
AppThemeExtras copyWith({
|
||||
List<Color>? dashboardBackgroundGradient,
|
||||
List<double>? dashboardGradientStops,
|
||||
Color? heroProgressStart,
|
||||
Color? heroProgressEnd,
|
||||
Color? actionCardGradientStart,
|
||||
Color? actionCardGradientEnd,
|
||||
List<Color>? authBackgroundGradient,
|
||||
Color? dashboardHeaderTextColor,
|
||||
}) {
|
||||
return AppThemeExtras(
|
||||
dashboardBackgroundGradient:
|
||||
dashboardBackgroundGradient ?? this.dashboardBackgroundGradient,
|
||||
dashboardGradientStops:
|
||||
dashboardGradientStops ?? this.dashboardGradientStops,
|
||||
heroProgressStart: heroProgressStart ?? this.heroProgressStart,
|
||||
heroProgressEnd: heroProgressEnd ?? this.heroProgressEnd,
|
||||
actionCardGradientStart:
|
||||
actionCardGradientStart ?? this.actionCardGradientStart,
|
||||
actionCardGradientEnd:
|
||||
actionCardGradientEnd ?? this.actionCardGradientEnd,
|
||||
authBackgroundGradient:
|
||||
authBackgroundGradient ?? this.authBackgroundGradient,
|
||||
dashboardHeaderTextColor:
|
||||
dashboardHeaderTextColor ?? this.dashboardHeaderTextColor,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
AppThemeExtras lerp(ThemeExtension<AppThemeExtras>? other, double t) {
|
||||
if (other is! AppThemeExtras) return this;
|
||||
return t < 0.5 ? this : other;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user