From 55e758a42a7c34d97bf7d33951a36ab6fd2ca54c Mon Sep 17 00:00:00 2001 From: AJ Isaacs Date: Fri, 5 Dec 2025 21:51:23 -0500 Subject: [PATCH] UI: Add dark theme using Bootstrap 5 dark mode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Enable data-bs-theme="dark" on html element - Update navbar to dark variant - Replace text-dark links with text-body (theme-aware) - Replace bg-white/bg-light with bg-body/bg-body-secondary - Update sticky table headers to dark theme - Fix Chart.js legend and axis colors for dark backgrounds - Adjust focus ring color for better visibility on dark 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- MoneyMap/Pages/EditTransaction.cshtml | 2 +- MoneyMap/Pages/Index.cshtml | 16 +++++++++------- MoneyMap/Pages/Receipts.cshtml | 6 +++--- MoneyMap/Pages/Shared/_Layout.cshtml | 25 +++++++++++-------------- MoneyMap/Pages/Transactions.cshtml | 4 ++-- MoneyMap/Pages/Upload.cshtml | 2 +- MoneyMap/wwwroot/css/site.css | 2 +- 7 files changed, 28 insertions(+), 29 deletions(-) diff --git a/MoneyMap/Pages/EditTransaction.cshtml b/MoneyMap/Pages/EditTransaction.cshtml index defed2f..1f60348 100644 --- a/MoneyMap/Pages/EditTransaction.cshtml +++ b/MoneyMap/Pages/EditTransaction.cshtml @@ -181,7 +181,7 @@ @if (item.LineItems.Any()) { -
+
Line Items (@item.LineItems.Count)
@foreach (var lineItem in item.LineItems) diff --git a/MoneyMap/Pages/Index.cshtml b/MoneyMap/Pages/Index.cshtml index c7a0e60..c9d7888 100644 --- a/MoneyMap/Pages/Index.cshtml +++ b/MoneyMap/Pages/Index.cshtml @@ -10,7 +10,7 @@
Transactions
@Model.Stats.TotalTransactions
-
Credits: @Model.Stats.Credits · Debits: @Model.Stats.Debits
+
Credits: @Model.Stats.Credits � Debits: @Model.Stats.Debits
@@ -81,7 +81,7 @@
Top expense categories (last 90 days) - · excludes transfers + � excludes transfers
@@ -99,7 +99,7 @@ { @@ -139,7 +139,7 @@ @@ -196,7 +196,7 @@ }] }, options: { - plugins: { legend: { position: 'bottom' } }, + plugins: { legend: { position: 'bottom', labels: { color: '#adb5bd' } } }, maintainAspectRatio: false } }); @@ -215,8 +215,10 @@ }, options: { scales: { - y: { beginAtZero: true } + y: { beginAtZero: true, ticks: { color: '#adb5bd' }, grid: { color: 'rgba(255,255,255,0.1)' } }, + x: { ticks: { color: '#adb5bd' }, grid: { color: 'rgba(255,255,255,0.1)' } } }, + plugins: { legend: { labels: { color: '#adb5bd' } } }, maintainAspectRatio: false } }); diff --git a/MoneyMap/Pages/Receipts.cshtml b/MoneyMap/Pages/Receipts.cshtml index 57dbfa4..6e4f88f 100644 --- a/MoneyMap/Pages/Receipts.cshtml +++ b/MoneyMap/Pages/Receipts.cshtml @@ -36,7 +36,7 @@

The file "@Model.PendingUploadFileName" may be a duplicate of existing receipt(s):

- + @(string.IsNullOrWhiteSpace(c.Category) ? "(uncategorized)" : c.Category) @t.Date.ToString("yyyy-MM-dd")
- @t.Name + @t.Name @if (t.ReceiptCount > 0) { @@ -157,7 +157,7 @@ } else { - @t.Category + @t.Category }
@t.CardLabel
- + @@ -340,7 +340,7 @@ @if (!string.IsNullOrWhiteSpace(r.Merchant) || r.ReceiptDate.HasValue || r.DueDate.HasValue || r.Total.HasValue) { -
+
@if (!string.IsNullOrWhiteSpace(r.Merchant)) {
Merchant: @r.Merchant
@@ -387,7 +387,7 @@
Receipt Uploaded
- + diff --git a/MoneyMap/Pages/Shared/_Layout.cshtml b/MoneyMap/Pages/Shared/_Layout.cshtml index a4e2278..d6611ef 100644 --- a/MoneyMap/Pages/Shared/_Layout.cshtml +++ b/MoneyMap/Pages/Shared/_Layout.cshtml @@ -1,5 +1,5 @@  - + @@ -10,7 +10,7 @@
-
Select Date @t.Date.ToString("yyyy-MM-dd")
- @t.Name + @t.Name @if (t.ReceiptCount > 0) { @@ -334,7 +334,7 @@ else }] }, options: { - plugins: { legend: { position: 'bottom' } }, + plugins: { legend: { position: 'bottom', labels: { color: '#adb5bd' } } }, maintainAspectRatio: false } }); diff --git a/MoneyMap/Pages/Upload.cshtml b/MoneyMap/Pages/Upload.cshtml index 64c9199..5a3b9bc 100644 --- a/MoneyMap/Pages/Upload.cshtml +++ b/MoneyMap/Pages/Upload.cshtml @@ -56,7 +56,7 @@
- +
diff --git a/MoneyMap/wwwroot/css/site.css b/MoneyMap/wwwroot/css/site.css index f8d98fc..df3bbf5 100644 --- a/MoneyMap/wwwroot/css/site.css +++ b/MoneyMap/wwwroot/css/site.css @@ -9,7 +9,7 @@ html { } .btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus { - box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb; + box-shadow: 0 0 0 0.25rem rgba(37, 140, 251, 0.5); } html {