style: 优化为黑金/白金配色方案

- 暗色主题: 黑金传奇 (深黑 + 真金)
- 亮色主题: 白金殿堂 (纯白 + 金色)
- 统一品牌色: 金色强调
- 提升专业金融感
This commit is contained in:
2026-03-30 03:14:00 +08:00
parent 81d6cdb1af
commit f32c48900b
87 changed files with 23415 additions and 23459 deletions

View File

@@ -259,31 +259,8 @@ class _NeonButtonState extends State<NeonButton>
}
LinearGradient? get _gradient {
if (widget.type == NeonButtonType.outline) return null;
final isDark = Theme.of(context).brightness == Brightness.dark;
final colorScheme = Theme.of(context).colorScheme;
switch (widget.type) {
case NeonButtonType.primary:
return LinearGradient(
colors: [colorScheme.primary, colorScheme.primaryContainer],
begin: const Alignment(-0.7, -0.7),
end: const Alignment(0.7, 0.7),
);
case NeonButtonType.secondary:
return LinearGradient(
colors: [colorScheme.secondary, colorScheme.secondaryContainer ?? colorScheme.secondary],
begin: const Alignment(-0.7, -0.7),
end: const Alignment(0.7, 0.7),
);
case NeonButtonType.tertiary:
return AppColorScheme.getBuyGradient(isDark);
case NeonButtonType.error:
return AppColorScheme.sellGradient;
default:
return null;
}
// 【优化】移除所有渐变效果,改为纯色背景,提升专业金融感
return null;
}
@override

View File

@@ -129,24 +129,19 @@ class _BottomNavBar extends StatelessWidget {
),
],
),
child: ClipRRect(
borderRadius: BorderRadius.vertical(top: Radius.circular(AppRadius.xxl + AppSpacing.sm)),
child: BackdropFilter(
filter: ImageFilter.blur(sigmaX: AppSpacing.md, sigmaY: AppSpacing.md),
child: SafeArea(
child: Padding(
padding: EdgeInsets.fromLTRB(AppSpacing.md, AppSpacing.sm, AppSpacing.md, AppSpacing.lg),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: items.asMap().entries.map((entry) {
return _NavItemWidget(
item: entry.value,
isSelected: entry.key == currentIndex,
onTap: () => onTap(entry.key),
);
}).toList(),
),
),
// 【优化】移除毛玻璃效果,保持简洁的半透明背景
child: SafeArea(
child: Padding(
padding: EdgeInsets.fromLTRB(AppSpacing.md, AppSpacing.sm, AppSpacing.md, AppSpacing.lg),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: items.asMap().entries.map((entry) {
return _NavItemWidget(
item: entry.value,
isSelected: entry.key == currentIndex,
onTap: () => onTap(entry.key),
);
}).toList(),
),
),
),