From c0af3b85bb5aa81502b007eea1ec1d2c4ae20797 Mon Sep 17 00:00:00 2001 From: Frog Date: Fri, 21 Nov 2025 02:19:18 -0800 Subject: [PATCH] Dark Mode / Hyperlink Color Fix - Fixes hard to read hyperlinks in Dark Mode --- CreamInstaller/Utility/ThemeManager.cs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/CreamInstaller/Utility/ThemeManager.cs b/CreamInstaller/Utility/ThemeManager.cs index 63d4bf8..383e339 100644 --- a/CreamInstaller/Utility/ThemeManager.cs +++ b/CreamInstaller/Utility/ThemeManager.cs @@ -5,6 +5,9 @@ using System.Windows.Forms; namespace CreamInstaller.Utility; +// To Do: +// - Change the darkmode button to a checkbox +// - Default to dark mode internal static class ThemeManager { // VS-like dark colors @@ -14,6 +17,7 @@ internal static class ThemeManager private static readonly Color DarkFore = ColorTranslator.FromHtml("#D4D4D4"); private static readonly Color DarkForeDim = ColorTranslator.FromHtml("#9CA3AF"); private static readonly Color Accent = ColorTranslator.FromHtml("#0E639C"); + private static readonly Color DarkLink = ColorTranslator.FromHtml("#64B5F6"); // Pastel light blue for hyperlinks (improved readability) private static readonly Color LightBack = SystemColors.Control; private static readonly Color LightBackAlt = SystemColors.ControlLightLight; private static readonly Color LightFore = SystemColors.ControlText; @@ -66,6 +70,13 @@ internal static class ThemeManager cb.BackColor = DarkBack; cb.ForeColor = DarkFore; break; + case LinkLabel ll: + ll.BackColor = DarkBack; + ll.ForeColor = DarkFore; // normal text + ll.LinkColor = DarkLink; + ll.ActiveLinkColor = Color.White; // high contrast when pressed + ll.VisitedLinkColor = DarkLink; // keep consistent + break; case Label lbl: lbl.BackColor = DarkBack; lbl.ForeColor = DarkFore; @@ -110,6 +121,14 @@ internal static class ThemeManager cb.BackColor = LightBack; cb.ForeColor = LightFore; break; + case LinkLabel ll: + ll.BackColor = LightBack; + ll.ForeColor = LightFore; + // allow system defaults for link colors + ll.LinkColor = SystemColors.HotTrack; + ll.ActiveLinkColor = SystemColors.Highlight; + ll.VisitedLinkColor = SystemColors.HotTrack; + break; case Label lbl: lbl.BackColor = LightBack; lbl.ForeColor = LightFore;