style: 全项目紫色→薄荷绿 Fresh Air 清新风

- 主色 #635BFF→#14B8A6 (薄荷绿)
- 浅紫 #EDEBFF→#E6FAF6 (极浅薄荷)
- 深紫 #4B44D6→#0F9D8E (深薄荷)
- 渐变紫→薄荷渐变
- 全局13种紫色映射替换
This commit is contained in:
MingNian
2026-06-03 20:30:28 +08:00
parent f484c6b66a
commit 8dcf99cac5
18 changed files with 221 additions and 249 deletions

View File

@@ -265,7 +265,7 @@ class _TrendPageState extends ConsumerState<TrendPage> {
final title = _labels[widget.metricType] ?? '趋势图表';
return Scaffold(
backgroundColor: const Color(0xFFF8F7FF),
backgroundColor: const Color(0xFFF6F9FB),
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(0xFFEDEBFF), Color(0xFFF3F1FF)],
colors: [Color(0xFFE6FAF6), 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(0xFF635BFF).withValues(alpha: 0.06),
color: const Color(0xFF14B8A6).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(0xFF635BFF), _isDualLine ? '收缩压' : _labels[widget.metricType]?.replaceAll('趋势', '') ?? ''),
_buildLegendDot(const Color(0xFF14B8A6), _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(0xFF635BFF))),
Expanded(child: _StatItem(label: '平均值', value: stats['avg'].toString(), color: const Color(0xFF14B8A6))),
_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(0xFF635BFF)),
style: const TextStyle(fontSize: 13, color: Color(0xFF14B8A6)),
),
),
),
@@ -688,7 +688,7 @@ class _TrendPageState extends ConsumerState<TrendPage> {
actions: [
TextButton(
onPressed: () => Navigator.pop(ctx),
child: const Text('关闭', style: TextStyle(color: Color(0xFF635BFF))),
child: const Text('关闭', style: TextStyle(color: Color(0xFF14B8A6))),
),
],
),
@@ -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(0xFF635BFF) : Colors.white,
color: selected ? const Color(0xFF14B8A6) : Colors.white,
borderRadius: BorderRadius.circular(20),
border: Border.all(color: selected ? const Color(0xFF635BFF) : const Color(0xFFE0E0E0)),
boxShadow: selected ? [BoxShadow(color: const Color(0xFF635BFF).withValues(alpha: 0.25), blurRadius: 8, offset: const Offset(0, 3))] : null,
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,
),
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(0xFF635BFF);
static const _primaryColor = Color(0xFF14B8A6);
static const _secondaryColor = Color(0xFF43A047);
static const _gridColor = Color(0xFFEEEEEE);
static const _labelColor = Color(0xFF999999);