style: 淡薰紫 Lavender Breeze + UI修复

- 主色改淡薰紫 #8B9CF7 + 白底 清新风格
- 每个智能体卡不同淡色调
- 删除欢迎卡底部"或直接对我说"
- 运动创建/打卡接入 API
- 全项目薄荷绿→淡紫替换
This commit is contained in:
MingNian
2026-06-03 20:46:39 +08:00
parent f46c30f8e7
commit f6c1ea7ec9
18 changed files with 306 additions and 254 deletions

View File

@@ -265,7 +265,7 @@ class _TrendPageState extends ConsumerState<TrendPage> {
final title = _labels[widget.metricType] ?? '趋势图表';
return Scaffold(
backgroundColor: const Color(0xFFF6F9FB),
backgroundColor: const Color(0xFFF8F9FC),
appBar: AppBar(
backgroundColor: Colors.white,
elevation: 0,
@@ -351,7 +351,7 @@ class _TrendPageState extends ConsumerState<TrendPage> {
padding: const EdgeInsets.all(20),
decoration: BoxDecoration(
gradient: const LinearGradient(
colors: [Color(0xFFE6FAF6), Color(0xFFF3F1FF)],
colors: [Color(0xFFF0F2FF), Color(0xFFF3F1FF)],
begin: Alignment.topLeft,
end: Alignment.bottomRight,
),
@@ -423,7 +423,7 @@ class _TrendPageState extends ConsumerState<TrendPage> {
borderRadius: BorderRadius.circular(16),
boxShadow: [
BoxShadow(
color: const Color(0xFF14B8A6).withValues(alpha: 0.06),
color: const Color(0xFF8B9CF7).withValues(alpha: 0.06),
blurRadius: 20,
offset: const Offset(0, 4),
),
@@ -435,7 +435,7 @@ class _TrendPageState extends ConsumerState<TrendPage> {
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
_buildLegendDot(const Color(0xFF14B8A6), _isDualLine ? '收缩压' : _labels[widget.metricType]?.replaceAll('趋势', '') ?? ''),
_buildLegendDot(const Color(0xFF8B9CF7), _isDualLine ? '收缩压' : _labels[widget.metricType]?.replaceAll('趋势', '') ?? ''),
if (_isDualLine) ...[
const SizedBox(width: 24),
_buildLegendDot(const Color(0xFF43A047), '舒张压'),
@@ -500,7 +500,7 @@ class _TrendPageState extends ConsumerState<TrendPage> {
_buildVerticalDivider(),
Expanded(child: _StatItem(label: '最低值', value: stats['min'].toString(), color: const Color(0xFFFF9800))),
_buildVerticalDivider(),
Expanded(child: _StatItem(label: '平均值', value: stats['avg'].toString(), color: const Color(0xFF14B8A6))),
Expanded(child: _StatItem(label: '平均值', value: stats['avg'].toString(), color: const Color(0xFF8B9CF7))),
_buildVerticalDivider(),
Expanded(child: _StatItem(label: '测量次数', value: stats['count'].toString(), color: const Color(0xFF78909C))),
]),
@@ -554,7 +554,7 @@ class _TrendPageState extends ConsumerState<TrendPage> {
),
child: Text(
_showAllRecords ? '收起' : '查看全部 (${validRecords.length} 条)',
style: const TextStyle(fontSize: 13, color: Color(0xFF14B8A6)),
style: const TextStyle(fontSize: 13, color: Color(0xFF8B9CF7)),
),
),
),
@@ -688,7 +688,7 @@ class _TrendPageState extends ConsumerState<TrendPage> {
actions: [
TextButton(
onPressed: () => Navigator.pop(ctx),
child: const Text('关闭', style: TextStyle(color: Color(0xFF14B8A6))),
child: const Text('关闭', style: TextStyle(color: Color(0xFF8B9CF7))),
),
],
),
@@ -713,10 +713,10 @@ class _TimeChip extends StatelessWidget {
duration: const Duration(milliseconds: 200),
padding: const EdgeInsets.symmetric(horizontal: 22, vertical: 8),
decoration: BoxDecoration(
color: selected ? const Color(0xFF14B8A6) : Colors.white,
color: selected ? const Color(0xFF8B9CF7) : Colors.white,
borderRadius: BorderRadius.circular(20),
border: Border.all(color: selected ? const Color(0xFF14B8A6) : const Color(0xFFE0E0E0)),
boxShadow: selected ? [BoxShadow(color: const Color(0xFF14B8A6).withValues(alpha: 0.25), blurRadius: 8, offset: const Offset(0, 3))] : null,
border: Border.all(color: selected ? const Color(0xFF8B9CF7) : const Color(0xFFE0E0E0)),
boxShadow: selected ? [BoxShadow(color: const Color(0xFF8B9CF7).withValues(alpha: 0.25), blurRadius: 8, offset: const Offset(0, 3))] : null,
),
child: Text(
label,
@@ -770,7 +770,7 @@ class _TrendChartPainter extends CustomPainter {
final String Function(DateTime) formatDateLabel;
final String Function(num) formatValue;
static const _primaryColor = Color(0xFF14B8A6);
static const _primaryColor = Color(0xFF8B9CF7);
static const _secondaryColor = Color(0xFF43A047);
static const _gridColor = Color(0xFFEEEEEE);
static const _labelColor = Color(0xFF999999);