refactor(apps): 主题系统迁移至 ColorScheme + 扩展架构并支持 Dark Mode

This commit is contained in:
qzl
2026-03-27 19:07:39 +08:00
parent ecc1ec6ce4
commit ae29a8209b
146 changed files with 4301 additions and 3200 deletions
+2 -1
View File
@@ -92,6 +92,7 @@ class _ToastWidgetState extends State<_ToastWidget>
@override
Widget build(BuildContext context) {
final config = ToastTypeConfig.fromType(context, widget.type);
final colorScheme = Theme.of(context).colorScheme;
return Positioned(
top: MediaQuery.of(context).padding.top + 12,
@@ -115,7 +116,7 @@ class _ToastWidgetState extends State<_ToastWidget>
border: Border.all(color: config.borderColor),
boxShadow: [
BoxShadow(
color: AppColors.slate900.withValues(alpha: 0.08),
color: colorScheme.shadow.withValues(alpha: 0.08),
blurRadius: 24,
offset: const Offset(0, 10),
),
@@ -1,7 +1,6 @@
import 'package:flutter/material.dart';
import '../../../core/l10n/l10n.dart';
import 'toast_type.dart';
import '../../../core/theme/design_tokens.dart';
class ToastTypeConfig {
final Color surfaceColor;
@@ -22,36 +21,38 @@ class ToastTypeConfig {
static ToastTypeConfig fromType(BuildContext context, ToastType type) {
final l10n = context.l10n;
final colorScheme = Theme.of(context).colorScheme;
return switch (type) {
ToastType.success => ToastTypeConfig(
surfaceColor: AppColors.feedbackSuccessSurface,
borderColor: AppColors.feedbackSuccessBorder,
iconColor: AppColors.feedbackSuccessIcon,
textColor: AppColors.feedbackSuccessText,
surfaceColor: colorScheme.tertiaryContainer,
borderColor: colorScheme.tertiary,
iconColor: colorScheme.tertiary,
textColor: colorScheme.onTertiaryContainer,
label: l10n.toastLabelSuccess,
icon: Icons.check_circle_outline,
),
ToastType.warning => ToastTypeConfig(
surfaceColor: AppColors.feedbackWarningSurface,
borderColor: AppColors.feedbackWarningBorder,
iconColor: AppColors.feedbackWarningIcon,
textColor: AppColors.feedbackWarningText,
surfaceColor: colorScheme.secondaryContainer,
borderColor: colorScheme.secondary,
iconColor: colorScheme.secondary,
textColor: colorScheme.onSecondaryContainer,
label: l10n.toastLabelWarning,
icon: Icons.warning_amber_rounded,
),
ToastType.error => ToastTypeConfig(
surfaceColor: AppColors.feedbackErrorSurface,
borderColor: AppColors.feedbackErrorBorder,
iconColor: AppColors.feedbackErrorIcon,
textColor: AppColors.feedbackErrorText,
surfaceColor: colorScheme.errorContainer,
borderColor: colorScheme.error,
iconColor: colorScheme.error,
textColor: colorScheme.onErrorContainer,
label: l10n.toastLabelError,
icon: Icons.error_outline,
),
ToastType.info => ToastTypeConfig(
surfaceColor: AppColors.feedbackInfoSurface,
borderColor: AppColors.feedbackInfoBorder,
iconColor: AppColors.feedbackInfoIcon,
textColor: AppColors.feedbackInfoText,
surfaceColor: colorScheme.primaryContainer,
borderColor: colorScheme.primary,
iconColor: colorScheme.primary,
textColor: colorScheme.onPrimaryContainer,
label: l10n.toastLabelInfo,
icon: Icons.info_outline,
),