From 9c72468afa1939d95df860d287d8f33a6c41b090 Mon Sep 17 00:00:00 2001 From: Maximilian Kaske Date: Mon, 26 Oct 2026 07:40:59 +0100 Subject: [PATCH] fix(dashboard): fill upcoming calendar cells, stronger light-mode low step - upcoming days get the planned-1 fill under the dashed info border, so they differ from bare future days by more than hue - light-mode activity-1 goes from 40% to 50% warning to even out the None to Low step --- .../dashboard/src/components/content/activity-calendar.tsx | 7 ++++--- packages/ui/src/globals.css | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/apps/dashboard/src/components/content/activity-calendar.tsx b/apps/dashboard/src/components/content/activity-calendar.tsx index 2e3e6af31..196ce1318 100644 --- a/apps/dashboard/src/components/content/activity-calendar.tsx +++ b/apps/dashboard/src/components/content/activity-calendar.tsx @@ -26,7 +26,7 @@ import { export type ActivityDay = Partial & { date: Date; - /** Scheduled, not recorded: a dashed ring instead of a fill. */ + /** Scheduled, not recorded: a dashed ring over the lightest planned fill. */ upcoming?: boolean; /** Tooltip lines under the date; with the date they make the aria-label. */ lines?: string[]; @@ -60,7 +60,8 @@ const cellVariants = cva( { variants: { upcoming: { - true: "border-info border border-dashed bg-transparent", + // filled, so it differs from a bare future day by more than hue + true: "border-info bg-activity-planned-1 border border-dashed", }, }, }, @@ -240,7 +241,7 @@ function ActivityCalendarDay({ if (!hydrated) { return ; } - // after today: empty days are a faint outline, scheduled ones dashed blue + // after today: empty days are a bare outline, scheduled ones filled and dashed blue const future = day.date > today; // not a button, so arrow keys hop over it if (future && !day.upcoming && day.scale === undefined) { diff --git a/packages/ui/src/globals.css b/packages/ui/src/globals.css index 4c7671a5f..4b2b42c24 100644 --- a/packages/ui/src/globals.css +++ b/packages/ui/src/globals.css @@ -109,7 +109,7 @@ /* activity calendar: lightness is severity, hue only failure vs planned */ --activity-0: var(--muted); - --activity-1: color-mix(in oklab, var(--warning) 40%, var(--muted)); + --activity-1: color-mix(in oklab, var(--warning) 50%, var(--muted)); --activity-2: var(--warning); --activity-3: var(--destructive); --activity-planned-1: color-mix(in oklab, var(--info) 30%, var(--muted)); -- 2.54.0