feat(ui): 添加明暗主题切换支持

- 创建 ThemeProvider 管理主题状态
- 配置浅色和深色主题(Vercel/Linear 风格)
- 集成 Google Fonts(Inter + JetBrains Mono)
- 在我的页面添加主题切换开关
- 更新颜色系统符合 modernization-v2.md 规范
- 优化间距和圆角系统

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-23 14:12:00 +08:00
parent 6ccb29556e
commit c4cf23a4a1
11 changed files with 1052 additions and 208 deletions

View File

@@ -16,6 +16,7 @@ import 'data/services/fund_service.dart';
import 'providers/auth_provider.dart';
import 'providers/market_provider.dart';
import 'providers/asset_provider.dart';
import 'providers/theme_provider.dart';
import 'ui/pages/auth/login_page.dart';
import 'ui/pages/main/main_page.dart';
@@ -36,12 +37,17 @@ class MyApp extends StatelessWidget {
Widget build(BuildContext context) {
return MultiProvider(
providers: _buildProviders(),
child: AuthNavigator(
child: ShadApp.custom(
themeMode: ThemeMode.dark,
darkTheme: createAppShadTheme(),
appBuilder: _buildMaterialApp,
),
child: Consumer<ThemeProvider>(
builder: (context, themeProvider, _) {
return AuthNavigator(
child: ShadApp.custom(
themeMode: themeProvider.themeMode,
theme: createLightShadTheme(),
darkTheme: createDarkShadTheme(),
appBuilder: _buildMaterialApp,
),
);
},
),
);
}
@@ -50,6 +56,10 @@ class MyApp extends StatelessWidget {
final dioClient = DioClient();
return [
// Theme Provider (必须放在最前面)
ChangeNotifierProvider<ThemeProvider>(
create: (_) => ThemeProvider()..init(),
),
// Services
Provider<DioClient>.value(value: dioClient),
Provider<UserService>(create: (_) => UserService(dioClient)),