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:
@@ -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)),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -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),
|
||||||
|
|||||||
@@ -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)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user