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
@@ -25,6 +25,7 @@ class CalendarInviteCard extends StatelessWidget {
@override
Widget build(BuildContext context) {
final l10n = context.l10n;
final colorScheme = Theme.of(context).colorScheme;
return Container(
margin: const EdgeInsets.symmetric(
@@ -33,9 +34,9 @@ class CalendarInviteCard extends StatelessWidget {
),
padding: const EdgeInsets.all(AppSpacing.md),
decoration: BoxDecoration(
color: AppColors.white,
color: colorScheme.surface,
borderRadius: BorderRadius.circular(AppRadius.md),
border: Border.all(color: AppColors.border),
border: Border.all(color: colorScheme.outlineVariant),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
@@ -45,12 +46,12 @@ class CalendarInviteCard extends StatelessWidget {
Container(
padding: const EdgeInsets.all(8),
decoration: BoxDecoration(
color: AppColors.blue100,
color: colorScheme.primaryContainer,
borderRadius: BorderRadius.circular(AppRadius.sm),
),
child: const Icon(
child: Icon(
Icons.calendar_today,
color: AppColors.blue600,
color: colorScheme.primary,
size: 20,
),
),
@@ -71,7 +72,7 @@ class CalendarInviteCard extends StatelessWidget {
eventTitle != null
? l10n.messagesCalendarCardInviteWithTitle(eventTitle!)
: l10n.messagesCalendarCardInviteWithoutTitle,
style: const TextStyle(fontSize: 14, color: AppColors.slate700),
style: TextStyle(fontSize: 14, color: colorScheme.onSurfaceVariant),
),
const SizedBox(height: AppSpacing.md),
Row(
@@ -112,6 +113,7 @@ class CalendarUpdateCard extends StatelessWidget {
@override
Widget build(BuildContext context) {
final l10n = context.l10n;
final colorScheme = Theme.of(context).colorScheme;
return GestureDetector(
onTap: onTap,
@@ -122,21 +124,21 @@ class CalendarUpdateCard extends StatelessWidget {
),
padding: const EdgeInsets.all(AppSpacing.md),
decoration: BoxDecoration(
color: AppColors.white,
color: colorScheme.surface,
borderRadius: BorderRadius.circular(AppRadius.md),
border: Border.all(color: AppColors.border),
border: Border.all(color: colorScheme.outlineVariant),
),
child: Row(
children: [
Container(
padding: const EdgeInsets.all(8),
decoration: BoxDecoration(
color: AppColors.blue100,
color: colorScheme.primaryContainer,
borderRadius: BorderRadius.circular(AppRadius.sm),
),
child: const Icon(
child: Icon(
Icons.calendar_today,
color: AppColors.blue600,
color: colorScheme.primary,
size: 20,
),
),
@@ -157,15 +159,15 @@ class CalendarUpdateCard extends StatelessWidget {
const SizedBox(height: 2),
Text(
_formatTime(context, message.createdAt),
style: const TextStyle(
style: TextStyle(
fontSize: 12,
color: AppColors.slate500,
color: colorScheme.onSurfaceVariant,
),
),
],
),
),
const Icon(Icons.chevron_right, color: AppColors.slate400),
Icon(Icons.chevron_right, color: colorScheme.outline),
],
),
),
@@ -201,6 +203,7 @@ class CalendarDeleteCard extends StatelessWidget {
@override
Widget build(BuildContext context) {
final l10n = context.l10n;
final colorScheme = Theme.of(context).colorScheme;
return Container(
margin: const EdgeInsets.symmetric(
@@ -209,21 +212,21 @@ class CalendarDeleteCard extends StatelessWidget {
),
padding: const EdgeInsets.all(AppSpacing.md),
decoration: BoxDecoration(
color: AppColors.slate50,
color: colorScheme.surfaceContainerLowest,
borderRadius: BorderRadius.circular(AppRadius.md),
border: Border.all(color: AppColors.slate200),
border: Border.all(color: colorScheme.outlineVariant),
),
child: Row(
children: [
Container(
padding: const EdgeInsets.all(8),
decoration: BoxDecoration(
color: AppColors.slate200,
color: colorScheme.surfaceContainerHigh,
borderRadius: BorderRadius.circular(AppRadius.sm),
),
child: const Icon(
child: Icon(
Icons.calendar_today,
color: AppColors.slate500,
color: colorScheme.onSurfaceVariant,
size: 20,
),
),
@@ -233,7 +236,10 @@ class CalendarDeleteCard extends StatelessWidget {
eventTitle != null
? l10n.messagesCalendarCardDeletedWithTitle(eventTitle!)
: l10n.messagesCalendarCardDeletedWithoutTitle,
style: const TextStyle(fontSize: 14, color: AppColors.slate500),
style: TextStyle(
fontSize: 14,
color: colorScheme.onSurfaceVariant,
),
),
),
],
@@ -27,12 +27,15 @@ class MessageActionSheet extends StatelessWidget {
@override
Widget build(BuildContext context) {
final colorScheme = Theme.of(context).colorScheme;
final resolvedIconColor = iconColor ?? colorScheme.primary;
return Container(
width: double.infinity,
padding: const EdgeInsets.fromLTRB(24, 20, 24, 0),
decoration: const BoxDecoration(
color: AppColors.white,
borderRadius: BorderRadius.vertical(top: Radius.circular(24)),
decoration: BoxDecoration(
color: colorScheme.surface,
borderRadius: const BorderRadius.vertical(top: Radius.circular(24)),
),
child: Column(
mainAxisSize: MainAxisSize.min,
@@ -41,7 +44,7 @@ class MessageActionSheet extends StatelessWidget {
width: 40,
height: 4,
decoration: BoxDecoration(
color: AppColors.slate300,
color: colorScheme.outlineVariant,
borderRadius: BorderRadius.circular(2),
),
),
@@ -51,23 +54,19 @@ class MessageActionSheet extends StatelessWidget {
width: 72,
height: 72,
decoration: BoxDecoration(
color: (iconColor ?? AppColors.blue500).withValues(alpha: 0.1),
color: resolvedIconColor.withValues(alpha: 0.1),
shape: BoxShape.circle,
),
child: Icon(
icon,
size: 32,
color: iconColor ?? AppColors.blue500,
),
child: Icon(icon, size: 32, color: resolvedIconColor),
),
const SizedBox(height: 16),
],
Text(
title,
style: const TextStyle(
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.w600,
color: AppColors.slate900,
color: colorScheme.onSurface,
),
textAlign: TextAlign.center,
),
@@ -75,7 +74,10 @@ class MessageActionSheet extends StatelessWidget {
const SizedBox(height: 8),
Text(
description!,
style: const TextStyle(fontSize: 14, color: AppColors.slate500),
style: TextStyle(
fontSize: 14,
color: colorScheme.onSurfaceVariant,
),
textAlign: TextAlign.center,
),
],
@@ -84,12 +86,15 @@ class MessageActionSheet extends StatelessWidget {
Container(
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6),
decoration: BoxDecoration(
color: AppColors.slate100,
color: colorScheme.surfaceContainerHigh,
borderRadius: BorderRadius.circular(16),
),
child: Text(
statusText!,
style: const TextStyle(fontSize: 14, color: AppColors.slate600),
style: TextStyle(
fontSize: 14,
color: colorScheme.onSurfaceVariant,
),
),
),
],