refactor(theme): 移除硬编码颜色并统一使用主题系统

- 从多个页面移除对 `app_colors.dart` 的直接引用
- 在资产卡片和主页概览卡片中使用 `AppColorScheme.assetCardGradient` 替代硬编码渐变
- 在注册页面使用 `AppColorScheme` 和 `AppSpacing` 主题常量
- 移除未使用的导入以清理代码
This commit is contained in:
2026-03-23 22:15:47 +08:00
parent 6751948932
commit 6d7c4b0e93
6 changed files with 19 additions and 30 deletions

View File

@@ -2,7 +2,6 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:shadcn_ui/shadcn_ui.dart'; import 'package:shadcn_ui/shadcn_ui.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../../../core/constants/app_colors.dart';
import '../../../core/theme/app_color_scheme.dart'; import '../../../core/theme/app_color_scheme.dart';
import '../../../core/theme/app_spacing.dart'; import '../../../core/theme/app_spacing.dart';
import '../../../providers/asset_provider.dart'; import '../../../providers/asset_provider.dart';
@@ -85,11 +84,7 @@ class _AssetCard extends StatelessWidget {
width: double.infinity, width: double.infinity,
padding: EdgeInsets.all(AppSpacing.lg), padding: EdgeInsets.all(AppSpacing.lg),
decoration: BoxDecoration( decoration: BoxDecoration(
gradient: const LinearGradient( gradient: AppColorScheme.assetCardGradient,
colors: AppColors.gradientColors,
begin: Alignment.topLeft,
end: Alignment.bottomRight,
),
borderRadius: BorderRadius.circular(AppRadius.xl), borderRadius: BorderRadius.circular(AppRadius.xl),
), ),
child: Column( child: Column(

View File

@@ -1,6 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../../../core/constants/app_colors.dart'; import '../../../core/theme/app_color_scheme.dart';
import '../../../core/theme/app_spacing.dart';
import '../../../providers/auth_provider.dart'; import '../../../providers/auth_provider.dart';
import '../main/main_page.dart'; import '../main/main_page.dart';
@@ -31,18 +32,18 @@ class _RegisterPageState extends State<RegisterPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
backgroundColor: AppColors.background, backgroundColor: AppColorScheme.darkBackground,
appBar: AppBar( appBar: AppBar(
backgroundColor: Colors.transparent, backgroundColor: Colors.transparent,
elevation: 0, elevation: 0,
leading: IconButton( leading: IconButton(
icon: const Icon(Icons.arrow_back, color: AppColors.textPrimary), icon: const Icon(Icons.arrow_back, color: AppColorScheme.darkOnSurface),
onPressed: () => Navigator.pop(context), onPressed: () => Navigator.pop(context),
), ),
), ),
body: SafeArea( body: SafeArea(
child: SingleChildScrollView( child: SingleChildScrollView(
padding: const EdgeInsets.all(24), padding: const EdgeInsets.all(AppSpacing.lg),
child: Form( child: Form(
key: _formKey, key: _formKey,
child: Column( child: Column(
@@ -54,7 +55,7 @@ class _RegisterPageState extends State<RegisterPage> {
'\u20BF', '\u20BF',
style: TextStyle( style: TextStyle(
fontSize: 48, fontSize: 48,
color: AppColors.primary, color: AppColorScheme.darkPrimary,
), ),
), ),
), ),
@@ -65,7 +66,7 @@ class _RegisterPageState extends State<RegisterPage> {
style: TextStyle( style: TextStyle(
fontSize: 24, fontSize: 24,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
color: AppColors.textPrimary, color: AppColorScheme.darkOnSurface,
), ),
), ),
), ),
@@ -73,10 +74,10 @@ class _RegisterPageState extends State<RegisterPage> {
// 用户名 // 用户名
TextFormField( TextFormField(
controller: _usernameController, controller: _usernameController,
style: const TextStyle(color: AppColors.textPrimary), style: const TextStyle(color: AppColorScheme.darkOnSurface),
decoration: const InputDecoration( decoration: const InputDecoration(
hintText: '请输入账号(4-20位字母数字)', hintText: '请输入账号(4-20位字母数字)',
prefixIcon: Icon(Icons.person_outline, color: AppColors.textSecondary), prefixIcon: Icon(Icons.person_outline, color: AppColorScheme.darkOnSurfaceVariant),
), ),
validator: (value) { validator: (value) {
if (value == null || value.isEmpty) { if (value == null || value.isEmpty) {
@@ -96,14 +97,14 @@ class _RegisterPageState extends State<RegisterPage> {
TextFormField( TextFormField(
controller: _passwordController, controller: _passwordController,
obscureText: _obscurePassword, obscureText: _obscurePassword,
style: const TextStyle(color: AppColors.textPrimary), style: const TextStyle(color: AppColorScheme.darkOnSurface),
decoration: InputDecoration( decoration: InputDecoration(
hintText: '请输入密码(至少6位)', hintText: '请输入密码(至少6位)',
prefixIcon: const Icon(Icons.lock_outline, color: AppColors.textSecondary), prefixIcon: const Icon(Icons.lock_outline, color: AppColorScheme.darkOnSurfaceVariant),
suffixIcon: IconButton( suffixIcon: IconButton(
icon: Icon( icon: Icon(
_obscurePassword ? Icons.visibility_off : Icons.visibility, _obscurePassword ? Icons.visibility_off : Icons.visibility,
color: AppColors.textSecondary, color: AppColorScheme.darkOnSurfaceVariant,
), ),
onPressed: () { onPressed: () {
setState(() { setState(() {
@@ -127,14 +128,14 @@ class _RegisterPageState extends State<RegisterPage> {
TextFormField( TextFormField(
controller: _confirmPasswordController, controller: _confirmPasswordController,
obscureText: _obscureConfirmPassword, obscureText: _obscureConfirmPassword,
style: const TextStyle(color: AppColors.textPrimary), style: const TextStyle(color: AppColorScheme.darkOnSurface),
decoration: InputDecoration( decoration: InputDecoration(
hintText: '请再次输入密码', hintText: '请再次输入密码',
prefixIcon: const Icon(Icons.lock_outline, color: AppColors.textSecondary), prefixIcon: const Icon(Icons.lock_outline, color: AppColorScheme.darkOnSurfaceVariant),
suffixIcon: IconButton( suffixIcon: IconButton(
icon: Icon( icon: Icon(
_obscureConfirmPassword ? Icons.visibility_off : Icons.visibility, _obscureConfirmPassword ? Icons.visibility_off : Icons.visibility,
color: AppColors.textSecondary, color: AppColorScheme.darkOnSurfaceVariant,
), ),
onPressed: () { onPressed: () {
setState(() { setState(() {
@@ -162,7 +163,7 @@ class _RegisterPageState extends State<RegisterPage> {
style: ElevatedButton.styleFrom( style: ElevatedButton.styleFrom(
padding: const EdgeInsets.symmetric(vertical: 16), padding: const EdgeInsets.symmetric(vertical: 16),
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(12), borderRadius: BorderRadius.circular(AppRadius.xxl),
), ),
), ),
child: auth.isLoading child: auth.isLoading

View File

@@ -1,7 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:shadcn_ui/shadcn_ui.dart'; import 'package:shadcn_ui/shadcn_ui.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../../../core/constants/app_colors.dart'; import 'package:flutter_animate/flutter_animate.dart';
import '../../../core/theme/app_color_scheme.dart'; import '../../../core/theme/app_color_scheme.dart';
import '../../../core/theme/app_spacing.dart'; import '../../../core/theme/app_spacing.dart';
import '../../../providers/asset_provider.dart'; import '../../../providers/asset_provider.dart';
@@ -245,11 +245,7 @@ class _AssetOverviewCard extends StatelessWidget {
width: double.infinity, width: double.infinity,
padding: EdgeInsets.all(AppSpacing.lg + AppSpacing.sm), padding: EdgeInsets.all(AppSpacing.lg + AppSpacing.sm),
decoration: BoxDecoration( decoration: BoxDecoration(
gradient: const LinearGradient( gradient: AppColorScheme.assetCardGradient,
colors: AppColors.gradientColors,
begin: Alignment.topLeft,
end: Alignment.bottomRight,
),
borderRadius: BorderRadius.circular(AppRadius.xl), borderRadius: BorderRadius.circular(AppRadius.xl),
), ),
child: Column( child: Column(

View File

@@ -1,7 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:shadcn_ui/shadcn_ui.dart'; import 'package:shadcn_ui/shadcn_ui.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../../../core/constants/app_colors.dart';
import '../../../core/theme/app_spacing.dart'; import '../../../core/theme/app_spacing.dart';
import '../../../providers/asset_provider.dart'; import '../../../providers/asset_provider.dart';
import '../../../data/models/order_models.dart'; import '../../../data/models/order_models.dart';

View File

@@ -1,7 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:shadcn_ui/shadcn_ui.dart'; import 'package:shadcn_ui/shadcn_ui.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../../../core/constants/app_colors.dart';
import '../../../core/theme/app_color_scheme.dart'; import '../../../core/theme/app_color_scheme.dart';
import '../../../core/theme/app_spacing.dart'; import '../../../core/theme/app_spacing.dart';
import '../../../providers/asset_provider.dart'; import '../../../providers/asset_provider.dart';

View File

@@ -1,7 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:shadcn_ui/shadcn_ui.dart'; import 'package:shadcn_ui/shadcn_ui.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../../../core/constants/app_colors.dart';
import '../../../core/theme/app_color_scheme.dart'; import '../../../core/theme/app_color_scheme.dart';
import '../../../core/theme/app_spacing.dart'; import '../../../core/theme/app_spacing.dart';
import '../../../data/models/coin.dart'; import '../../../data/models/coin.dart';