fix(ui): 修复主题切换功能,支持明暗主题动态切换

- 替换所有硬编码颜色为动态颜色
- 所有页面使用 Theme.of(context) 获取主题颜色
- 支持深色和浅色主题切换
- 修复 GlassPanel 和 NeonGlow 组件的主题适配
- 完善 lightMaterial ColorScheme 定义
- 测试主题切换功能正常

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-24 02:50:25 +08:00
parent 7bb426b3d8
commit a65aa0fa86
94 changed files with 17889 additions and 17478 deletions

View File

@@ -61,8 +61,12 @@ class GlassPanel extends StatelessWidget {
@override
Widget build(BuildContext context) {
final bgColor = backgroundColor ?? AppColorScheme.glassPanelBackground;
final brColor = borderColor ?? AppColorScheme.glassPanelBorder;
final colorScheme = Theme.of(context).colorScheme;
final isDark = Theme.of(context).brightness == Brightness.dark;
final bgColor = backgroundColor ??
colorScheme.surfaceBright.withOpacity(isDark ? 0.4 : 0.6);
final brColor = borderColor ??
colorScheme.outlineVariant.withOpacity(0.15);
final br = borderRadius ?? BorderRadius.circular(AppRadius.xl);
Widget content = ClipRRect(
@@ -142,8 +146,11 @@ class GlassCard extends StatelessWidget {
@override
Widget build(BuildContext context) {
final colorScheme = Theme.of(context).colorScheme;
final isDark = Theme.of(context).brightness == Brightness.dark;
final br = borderRadius ?? BorderRadius.circular(AppRadius.xl);
final glowColor = neonGlowColor ?? AppColorScheme.neonGlowPrimary;
final glowColor = neonGlowColor ??
colorScheme.primary.withOpacity(isDark ? 0.15 : 0.08);
Widget card = GlassPanel(
padding: padding ?? EdgeInsets.all(AppSpacing.md),
@@ -206,14 +213,17 @@ class GlassBottomSheet extends StatelessWidget {
@override
Widget build(BuildContext context) {
final colorScheme = Theme.of(context).colorScheme;
final isDark = Theme.of(context).brightness == Brightness.dark;
return Container(
decoration: BoxDecoration(
color: AppColorScheme.glassPanelBackground,
color: colorScheme.surfaceBright.withOpacity(isDark ? 0.4 : 0.6),
borderRadius: const BorderRadius.vertical(
top: Radius.circular(AppRadius.xxl),
),
border: Border.all(
color: AppColorScheme.glassPanelBorder,
color: colorScheme.outlineVariant.withOpacity(0.15),
),
),
child: ClipRRect(
@@ -231,7 +241,7 @@ class GlassBottomSheet extends StatelessWidget {
width: 40,
height: 4,
decoration: BoxDecoration(
color: AppColorScheme.darkOutlineVariant.withValues(alpha: 0.5),
color: colorScheme.outlineVariant.withOpacity(0.5),
borderRadius: BorderRadius.circular(2),
),
),
@@ -250,10 +260,10 @@ class GlassBottomSheet extends StatelessWidget {
Expanded(
child: Text(
title!,
style: const TextStyle(
style: TextStyle(
fontSize: 18,
fontWeight: FontWeight.bold,
color: AppColorScheme.darkOnSurface,
color: colorScheme.onSurface,
),
),
),
@@ -263,14 +273,14 @@ class GlassBottomSheet extends StatelessWidget {
child: Container(
padding: EdgeInsets.all(AppSpacing.sm),
decoration: BoxDecoration(
color: AppColorScheme.darkOutlineVariant
.withValues(alpha: 0.2),
color: colorScheme.outlineVariant
.withOpacity(0.2),
shape: BoxShape.circle,
),
child: const Icon(
child: Icon(
Icons.close,
size: 18,
color: AppColorScheme.darkOnSurfaceVariant,
color: colorScheme.onSurfaceVariant,
),
),
),