feat(ui): 优化组件样式并添加现代弹窗模板

- 更新 trade_button.dart 使用新颜色系统
- 更新 coin_card.dart 使用新颜色系统
- 更新 asset_card.dart 使用新颜色系统
- 创建 modern_dialog.dart 现代弹窗模板
- 创建 modern_bottom_sheet.dart 现代底部抽屉模板

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-23 14:18:56 +08:00
parent c4cf23a4a1
commit e58d2e4ca0
5 changed files with 530 additions and 19 deletions

View File

@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:shadcn_ui/shadcn_ui.dart';
import '../../core/theme/app_colors.dart';
import '../../core/theme/app_color_scheme.dart';
/// 资产卡片组件 - 用于显示资产总览
class AssetCard extends StatelessWidget {
@@ -13,9 +13,9 @@ class AssetCard extends StatelessWidget {
final Gradient? gradient;
final VoidCallback? onTap;
// 默认渐变色 - 使用品牌
// 默认渐变色 - 使用品牌青绿色
static const defaultGradient = LinearGradient(
colors: [Color(0xFF2563EB), Color(0xFF1D4ED8)],
colors: [AppColorScheme.primaryDark, Color(0xFF00B894)],
begin: Alignment.topLeft,
end: Alignment.bottomRight,
);
@@ -54,7 +54,7 @@ class AssetCard extends StatelessWidget {
borderRadius: BorderRadius.circular(20),
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.1),
color: Colors.black.withValues(alpha: 0.1),
blurRadius: 10,
offset: const Offset(0, 4),
),
@@ -72,7 +72,7 @@ class AssetCard extends StatelessWidget {
),
const Spacer(),
if (onTap != null)
Icon(
const Icon(
LucideIcons.chevronRight,
color: Colors.white70,
size: 18,
@@ -161,9 +161,6 @@ class AssetCardCompact extends StatelessWidget {
final bool? isUp;
final VoidCallback? onTap;
static const upColor = Color(0xFF00C853);
static const downColor = Color(0xFFFF5252);
const AssetCardCompact({
super.key,
required this.title,
@@ -176,6 +173,7 @@ class AssetCardCompact extends StatelessWidget {
@override
Widget build(BuildContext context) {
final theme = ShadTheme.of(context);
final isValueUp = isUp ?? true;
return ShadCard(
padding: const EdgeInsets.all(16),
@@ -205,13 +203,13 @@ class AssetCardCompact extends StatelessWidget {
Container(
padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 6),
decoration: BoxDecoration(
color: (isUp ?? true) ? upColor.withOpacity(0.2) : downColor.withOpacity(0.2),
color: getChangeBackgroundColor(isValueUp),
borderRadius: BorderRadius.circular(6),
),
child: Text(
change!,
style: TextStyle(
color: (isUp ?? true) ? upColor : downColor,
color: getChangeColor(isValueUp),
fontWeight: FontWeight.w600,
),
),