refactor: add shared StoplightColors for consistent status colors

- Add StoplightColors class with green/orange/red pastel colors
- Update dashboard gauges to use StoplightColors.forPercent()
- Update air quality levels to use shared stoplight colors
- Provides consistent color scheme for all threshold-based indicators

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Jeroen Schweitzer
2026-01-03 18:33:42 +01:00
co-authored by Claude Opus 4.5
parent 67fed18cb0
commit 6c271489a9
3 changed files with 47 additions and 20 deletions
+37
View File
@@ -0,0 +1,37 @@
import 'package:flutter/material.dart';
/// Pastel stoplight colors for consistent status indication across the app.
///
/// Use these colors for any green/yellow/red status flows:
/// - System stats (CPU, RAM, disk usage)
/// - Air quality levels
/// - Container health status
/// - Any other threshold-based indicators
abstract final class StoplightColors {
/// Good/healthy/low usage (0-50%)
static const green = Color(0xFF81C784);
/// Warning/moderate/medium usage (51-75%)
static const orange = Color(0xFFFFB74D);
/// Critical/unhealthy/high usage (76-100%)
static const red = Color(0xFFE57373);
/// Returns appropriate color based on percentage (0-100).
///
/// - ≤50%: green
/// - 51-75%: orange
/// - >75%: red
static Color forPercent(double percent) {
if (percent <= 50) return green;
if (percent <= 75) return orange;
return red;
}
/// Returns appropriate color based on value (0.0-1.0).
///
/// - ≤0.5: green
/// - 0.51-0.75: orange
/// - >0.75: red
static Color forValue(double value) => forPercent(value * 100);
}