From 979886cb6a6ae971944a20c07361efe3de3e6b8e Mon Sep 17 00:00:00 2001 From: null Date: Thu, 28 May 2026 21:40:27 -0500 Subject: [PATCH] style: CalendarPage readability pass + DataPage fix CalendarPage.jsx: - Tightened day numbers, due-count badges, bill labels inside cells - Crisper color contrast for paid/due/missed states - Cleaner grid surfaces and borders for row/day tracking - Switched font-mono values to tracker-number style SeedDemoDataSection.jsx: - Fixed render logic for data page --- .../components/data/SeedDemoDataSection.jsx | 2 +- client/pages/CalendarPage.jsx | 110 +++++++++--------- 2 files changed, 56 insertions(+), 56 deletions(-) diff --git a/client/components/data/SeedDemoDataSection.jsx b/client/components/data/SeedDemoDataSection.jsx index 5de52de..80663f4 100644 --- a/client/components/data/SeedDemoDataSection.jsx +++ b/client/components/data/SeedDemoDataSection.jsx @@ -62,7 +62,7 @@ export default function SeedDemoDataSection({ onSeeded }) { }; return ( - +
{statusLoading ? (

Loading…

diff --git a/client/pages/CalendarPage.jsx b/client/pages/CalendarPage.jsx index c9e1e04..b63af82 100644 --- a/client/pages/CalendarPage.jsx +++ b/client/pages/CalendarPage.jsx @@ -44,15 +44,15 @@ function displayStatus(status) { } function statusTone(status) { - if (status === 'paid' || status === 'autodraft') return 'bg-emerald-500/15 text-emerald-500 border-emerald-500/25'; - if (status === 'skipped') return 'bg-muted text-muted-foreground border-border'; - if (status === 'late' || status === 'missed') return 'bg-destructive/15 text-destructive border-destructive/25'; - return 'bg-primary/10 text-primary border-primary/25'; + if (status === 'paid' || status === 'autodraft') return 'border-emerald-500/30 bg-emerald-500/15 text-emerald-700 dark:text-emerald-300'; + if (status === 'skipped') return 'border-border bg-muted/80 text-muted-foreground'; + if (status === 'late' || status === 'missed') return 'border-destructive/30 bg-destructive/15 text-destructive'; + return 'border-primary/30 bg-primary/15 text-primary'; } function LegendItem({ className, label }) { return ( - + {label} @@ -61,15 +61,15 @@ function LegendItem({ className, label }) { function MoneyMetric({ icon: Icon, label, value, hint, valueClassName }) { return ( -
+
- -

{label}

+ +

{label}

-

+

{fmt(value)}

- {hint &&

{hint}

} + {hint &&

{hint}

}
); } @@ -114,29 +114,29 @@ function MoneyMap({ summaryData, loading }) {
- 0 ? 'text-teal-500' : ''} /> + 0 ? 'text-teal-600 dark:text-teal-300' : ''} /> = 0 ? 'text-emerald-500' : 'text-destructive'} + valueClassName={remaining >= 0 ? 'text-emerald-600 dark:text-emerald-300' : 'text-destructive'} />
-
+
1st available - {fmt(starting.first_amount)} + {fmt(starting.first_amount)}
-
+
15th available - {fmt(starting.fifteenth_amount)} + {fmt(starting.fifteenth_amount)}
-
+
Monthly income - {fmt(summaryData?.income?.amount)} + {fmt(summaryData?.income?.amount)}
@@ -159,7 +159,7 @@ function SummaryProgress({ summary }) {
-

+

{fmt(summary?.paid_total)} / {fmt(summary?.expected_total)} @@ -201,7 +201,7 @@ function DayIndicators({ day, moneyMarker }) { return (

{moneyMarker && } - {hasPaid && } + {hasPaid && } {(hasDue || paymentOnly) && } {hasSkipped && } {hasMissed && } @@ -218,10 +218,10 @@ function CalendarGrid({ data, selectedDate, onSelectDay, moneyMarkers }) { const today = todayStr(); return ( - -
+ +
{WEEKDAYS.map(day => ( -
+
{day}
))} @@ -230,7 +230,7 @@ function CalendarGrid({ data, selectedDate, onSelectDay, moneyMarkers }) {
{cells.map(cell => { if (cell.type === 'blank') { - return
; + return
; } const day = cell.day; @@ -248,24 +248,24 @@ function CalendarGrid({ data, selectedDate, onSelectDay, moneyMarkers }) { type="button" onClick={() => onSelectDay(day)} className={cn( - 'flex min-h-16 flex-col border-b border-r border-border/50 p-1.5 text-left transition-colors sm:min-h-24 sm:p-2', + 'flex min-h-16 flex-col border-b border-r border-border/60 bg-card/70 p-1.5 text-left transition-colors sm:min-h-24 sm:p-2', 'focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50', - hasActivity && 'bg-primary/[0.03] hover:bg-accent/60', - isPaidDay && 'bg-emerald-500/[0.07]', - hasMissed && 'bg-destructive/[0.08]', - isSelected && 'ring-2 ring-primary ring-inset', + hasActivity && 'bg-primary/[0.06] hover:bg-accent/70', + isPaidDay && 'bg-emerald-500/[0.10]', + hasMissed && 'bg-destructive/[0.10]', + isSelected && 'ring-2 ring-primary ring-inset bg-primary/[0.09]', )} aria-label={`View ${fmtDate(day.date)}`} >
{day.day} {summary.due_count > 0 && ( - + {summary.due_count} )} @@ -273,17 +273,17 @@ function CalendarGrid({ data, selectedDate, onSelectDay, moneyMarkers }) {
{moneyMarker && ( -

+

+{fmt(moneyMarker.amount)}

)} {day.bills_due.slice(0, 2).map(bill => ( -

+

{bill.name}

))} {day.bills_due.length > 2 && ( -

+{day.bills_due.length - 2} more

+

+{day.bills_due.length - 2} more

)}
@@ -340,7 +340,7 @@ function DebtPayoffGlance({ projection }) {

Target runway

-

+

{targetMonths ? `${targetMonths} mo` : '—'}

@@ -358,7 +358,7 @@ function DebtPayoffGlance({ projection }) {

Time saved

-

+

{monthsSaved !== undefined ? `${monthsSaved} mo` : '—'}

@@ -367,7 +367,7 @@ function DebtPayoffGlance({ projection }) {

Interest

-

{fmt(snowball.total_interest_paid)}

+

{fmt(snowball.total_interest_paid)}

@@ -383,11 +383,11 @@ function DebtPayoffGlance({ projection }) {

Full plan

-

{snowball.months_to_freedom} mo

+

{snowball.months_to_freedom} mo

Interest saved

-

+

{comparison ? fmt(comparison.interest_saved) : '—'}

@@ -435,7 +435,7 @@ function DayDetailDialog({ day, open, onOpenChange, moneyMarker }) {

Available Money

-

+

+{fmt(moneyMarker.amount)}

{moneyMarker.label}

@@ -450,28 +450,28 @@ function DayDetailDialog({ day, open, onOpenChange, moneyMarker }) { ) : (
{day.bills_due.map(bill => ( -
+
-

{bill.name}

-

{bill.category_name || 'Uncategorized'}

+

{bill.name}

+

{bill.category_name || 'Uncategorized'}

{displayStatus(bill.status)}
-
+

Expected

-

{fmt(bill.effective_amount)}

+

{fmt(bill.effective_amount)}

Paid

-

{fmt(bill.paid_amount)}

+

{fmt(bill.paid_amount)}

Due

-

{fmtDate(bill.due_date)}

+

{fmtDate(bill.due_date)}

@@ -489,12 +489,12 @@ function DayDetailDialog({ day, open, onOpenChange, moneyMarker }) { ) : (
{day.payments.map(payment => ( -
+
-

{payment.bill_name}

-

{payment.method || 'Payment'}

+

{payment.bill_name}

+

{payment.method || 'Payment'}

- {fmt(payment.amount)} + {fmt(payment.amount)}
))}
@@ -640,7 +640,7 @@ export default function CalendarPage() { - + Today @@ -707,11 +707,11 @@ export default function CalendarPage() {

Due

-

{fmt(selectedDay.status_summary.total_due)}

+

{fmt(selectedDay.status_summary.total_due)}

Paid

-

{fmt(selectedDay.status_summary.total_paid)}

+

{fmt(selectedDay.status_summary.total_paid)}