Carry the new palette into every remaining colour

The group chat bar drew white text on the old header token, now light;
it sits on near-black instead. Status, class, routine-kind, goal and chart
colours move from greens and navies to the reference scheme: orange for
met and held, near-black for fine and neutral, deeper orange then red as
standing worsens. Home's ring and kept-day leaves and Progress's bars use
the full accent so they read on grey.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KhQh614DMeYoQEH9SoMRUw
This commit is contained in:
alvocool
2026-11-09 08:07:31 +03:00
parent 4cd3f6c038
commit 99225c2ee2
4 changed files with 44 additions and 42 deletions

View File

@@ -145,13 +145,14 @@ class GroupChatState extends State<GroupChat> implements ConnectGroupChat {
return Container( return Container(
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: const BorderRadius.all(Radius.circular(12)), borderRadius:
const BorderRadius.vertical(bottom: Radius.circular(20)),
gradient: LinearGradient( gradient: LinearGradient(
begin: Alignment.topLeft, begin: Alignment.topLeft,
end: Alignment.bottomRight, end: Alignment.bottomRight,
colors: <Color>[ colors: <Color>[
Color.lerp(accent, colorHeaderBottom, 0.55)!, Color.lerp(accent, colorNight, 0.55)!,
colorHeaderBottom, colorNight,
], ],
), ),
), ),
@@ -178,7 +179,7 @@ class GroupChatState extends State<GroupChat> implements ConnectGroupChat {
.join(", "), .join(", "),
12, 12,
TextType.Regular, TextType.Regular,
color: colorHeaderMuted, color: colorWhite.withValues(alpha: 0.65),
maxLines: 1, maxLines: 1,
overflow: TextOverflow.ellipsis), overflow: TextOverflow.ellipsis),
], ],
@@ -187,7 +188,7 @@ class GroupChatState extends State<GroupChat> implements ConnectGroupChat {
const SizedBox(width: 10), const SizedBox(width: 10),
avatarStack( avatarStack(
widget.group.members.map((member) => member.name).toList(), 30, widget.group.members.map((member) => member.name).toList(), 30,
max: 3, border: colorHeaderBottom), max: 3, border: colorNight),
], ],
), ),
); );
@@ -257,7 +258,7 @@ class GroupChatState extends State<GroupChat> implements ConnectGroupChat {
color: colorWhite, height: 1.4), color: colorWhite, height: 1.4),
const SizedBox(height: 4), const SizedBox(height: 4),
text(_time(message.sentAt), 10, TextType.Regular, text(_time(message.sentAt), 10, TextType.Regular,
color: colorHeaderMuted), color: colorWhite.withValues(alpha: 0.65)),
], ],
), ),
), ),

View File

@@ -741,7 +741,7 @@ class HomeState extends State<Home> implements ConnectHome {
height: 26, height: 26,
child: Center( child: Center(
child: kept child: kept
? Icon(Icons.eco, size: 24, color: colorBarElective) ? Icon(Icons.eco, size: 24, color: colorAccent)
: text("${date.day}", 16, : text("${date.day}", 16,
today ? TextType.Medium : TextType.Regular, today ? TextType.Medium : TextType.Regular,
color: today ? colorHeaderText : colorHeaderMuted), color: today ? colorHeaderText : colorHeaderMuted),
@@ -782,7 +782,7 @@ class HomeState extends State<Home> implements ConnectHome {
fraction: fraction, fraction: fraction,
size: 70, size: 70,
stroke: 4, stroke: 4,
fill: colorBarElective, fill: colorAccent,
track: colorHeaderLine, track: colorHeaderLine,
child: child:
Icon(CupertinoIcons.add, size: 30, color: colorHeaderText), Icon(CupertinoIcons.add, size: 30, color: colorHeaderText),

View File

@@ -331,8 +331,8 @@ class ProgressState extends State<Progress> implements ConnectProgress {
height: future ? 4 : 6 + 84 * fraction, height: future ? 4 : 6 + 84 * fraction,
decoration: BoxDecoration( decoration: BoxDecoration(
color: isCurrent color: isCurrent
? colorNight ? colorAccent
: (future ? colorMuted : colorChartGrid), : (future ? colorMuted : colorAccentSoft),
borderRadius: const BorderRadius.all(Radius.circular(4)), borderRadius: const BorderRadius.all(Radius.circular(4)),
), ),
), ),

View File

@@ -44,7 +44,8 @@ var colorMilkWhite = const Color(0xFFDADADA);
var colorMuted = const Color(0xFFE2E2E2); var colorMuted = const Color(0xFFE2E2E2);
var colorSecondary = const Color(0xFFF1F1F1); var colorSecondary = const Color(0xFFF1F1F1);
var colorPositive = const Color(0xFF2F6F4E); /// Met, held, done: the accent, as the reference's met bars are.
var colorPositive = const Color(0xFFEC6A36);
var colorNegative = const Color(0xFFB3261E); var colorNegative = const Color(0xFFB3261E);
var colorGrey = const Color(0xFFA8A8A8); var colorGrey = const Color(0xFFA8A8A8);
var colorGrey2 = const Color(0xFF6E6E6E); var colorGrey2 = const Color(0xFF6E6E6E);
@@ -55,8 +56,8 @@ var colorReddish = const Color(0xFFC0392B);
var colorDarkBlue = const Color(0xFF10161F); var colorDarkBlue = const Color(0xFF10161F);
// ── Semantic ────────────────────────────────────────────────────────────────── // ── Semantic ──────────────────────────────────────────────────────────────────
const Color colorSuccess = Color(0xFF2E7D4F); const Color colorSuccess = Color(0xFFEC6A36);
const Color colorWarning = Color(0xFFC98A04); const Color colorWarning = Color(0xFFB8741A);
const Color colorDestructive = Color(0xFFA32C1C); const Color colorDestructive = Color(0xFFA32C1C);
const Color colorBlack = Color(0xFF000000); const Color colorBlack = Color(0xFF000000);
const Color colorBorder = Color(0x14000000); const Color colorBorder = Color(0x14000000);
@@ -65,48 +66,48 @@ const Color colorDivider = Color(0x12000000);
// ── Standing tiers ──────────────────────────────────────────────────────────── // ── Standing tiers ────────────────────────────────────────────────────────────
// Each standing has one colour used consistently everywhere it appears, so the // Each standing has one colour used consistently everywhere it appears, so the
// tier is legible at a glance without reading the label. // tier is legible at a glance without reading the label.
const Color colorStandingGood = Color(0xFF2F6F4E); const Color colorStandingGood = Color(0xFF1C1C1C);
const Color colorStandingGoodBg = Color(0xFFE4EFE8); const Color colorStandingGoodBg = Color(0xFFFBE4D9);
const Color colorStandingWarned = Color(0xFFC98A04); const Color colorStandingWarned = Color(0xFFEC6A36);
const Color colorStandingWarnedBg = Color(0xFFFAF0D8); const Color colorStandingWarnedBg = Color(0xFFFBE4D9);
const Color colorStandingGrounded = Color(0xFFB5442F); const Color colorStandingGrounded = Color(0xFFC2410C);
const Color colorStandingGroundedBg = Color(0xFFF7E3DE); const Color colorStandingGroundedBg = Color(0xFFF7D9CC);
const Color colorStandingLockdown = Color(0xFF7A1F14); const Color colorStandingLockdown = Color(0xFF7A1F14);
const Color colorStandingLockdownBg = Color(0xFFEFD6D2); const Color colorStandingLockdownBg = Color(0xFFEFD6D2);
// ── Commitment classes ──────────────────────────────────────────────────────── // ── Commitment classes ────────────────────────────────────────────────────────
const Color colorClassNonNegotiable = Color(0xFF7A1F14); const Color colorClassNonNegotiable = Color(0xFFC2410C);
const Color colorClassNonNegotiableBg = Color(0xFFF3DFDB); const Color colorClassNonNegotiableBg = Color(0xFFF7D9CC);
const Color colorClassStandard = Color(0xFF2C4A63); const Color colorClassStandard = Color(0xFF1C1C1C);
const Color colorClassStandardBg = Color(0xFFE0E8EF); const Color colorClassStandardBg = Color(0xFFE6E6E6);
const Color colorClassElective = Color(0xFF6E6E6E); const Color colorClassElective = Color(0xFF8A8A8A);
const Color colorClassElectiveBg = Color(0xFFEDEDED); const Color colorClassElectiveBg = Color(0xFFF1F1F1);
// ── Routine kinds ───────────────────────────────────────────────────────────── // ── Routine kinds ─────────────────────────────────────────────────────────────
// Kind colours tint the routine library and the runner stage. They are kept // Kind colours tint the routine library and the runner stage. They are kept
// clear of the standing palette so a workout never reads as a warning. // clear of the standing palette so a workout never reads as a warning.
const Color colorKindWorkout = Color(0xFF2F6F4E); const Color colorKindWorkout = Color(0xFFEC6A36);
const Color colorKindWorkoutBg = Color(0xFFE4EFE8); const Color colorKindWorkoutBg = Color(0xFFFBE4D9);
const Color colorKindWorkoutDeep = Color(0xFF173D2A); const Color colorKindWorkoutDeep = Color(0xFF5A2410);
const Color colorKindMeditation = Color(0xFF4F5D86); const Color colorKindMeditation = Color(0xFF5F6472);
const Color colorKindMeditationBg = Color(0xFFE5E8F2); const Color colorKindMeditationBg = Color(0xFFE8E9EC);
const Color colorKindMeditationDeep = Color(0xFF232A45); const Color colorKindMeditationDeep = Color(0xFF262A33);
const Color colorKindMustDo = Color(0xFF3A3A3A); const Color colorKindMustDo = Color(0xFF1C1C1C);
const Color colorKindMustDoBg = Color(0xFFEAEAE6); const Color colorKindMustDoBg = Color(0xFFE6E6E6);
const Color colorKindMustDoDeep = Color(0xFF1E1E1E); const Color colorKindMustDoDeep = Color(0xFF1E1E1E);
// ── Goal accents ────────────────────────────────────────────────────────────── // ── Goal accents ──────────────────────────────────────────────────────────────
// The swatches a goal can wear. Muted on purpose — a goal is an ambition, not // The swatches a goal can wear. Muted on purpose — a goal is an ambition, not
// an alarm, so none of these collide with the standing tiers. // an alarm, so none of these collide with the standing tiers.
const List<Color> goalAccents = <Color>[ const List<Color> goalAccents = <Color>[
Color(0xFF141414), Color(0xFF1C1C1C),
Color(0xFF2F6F4E), Color(0xFFEC6A36),
Color(0xFF2C4A63), Color(0xFF5F6472),
Color(0xFF4F5D86), Color(0xFFC2410C),
Color(0xFF6B4F86),
Color(0xFF8A5A2B), Color(0xFF8A5A2B),
Color(0xFF5E6B3A), Color(0xFFB8741A),
Color(0xFF3F6E73), Color(0xFF3A3A3A),
Color(0xFF9A3A14),
]; ];
// ── Ambient ─────────────────────────────────────────────────────────────────── // ── Ambient ───────────────────────────────────────────────────────────────────
@@ -167,8 +168,8 @@ const List<Color> sceneMustDo = <Color>[
]; ];
// ── Debt / charting ─────────────────────────────────────────────────────────── // ── Debt / charting ───────────────────────────────────────────────────────────
const Color colorDebtLine = Color(0xFFB5442F); const Color colorDebtLine = Color(0xFFEC6A36);
const Color colorDebtFill = Color(0x1AB5442F); const Color colorDebtFill = Color(0x1AEC6A36);
const Color colorChartGrid = Color(0x0F000000); const Color colorChartGrid = Color(0x0F000000);
const Color colorChartAxis = Color(0xFF8A8A8A); const Color colorChartAxis = Color(0xFF8A8A8A);