From 0a7201d754f3f440ade1971a4daf6754c410215c Mon Sep 17 00:00:00 2001 From: Jared Vititoe Date: Fri, 7 Aug 2026 22:54:51 -0400 Subject: [PATCH] Light mode: ticket-ID hover preview follows the theme (#23) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit .ticket-preview-popup used var(--lt-surface), which is not defined anywhere, so the background always fell through to the hardcoded #0a0e14. In light mode that left a near-black panel — and since the rule set no `color`, the inherited near-black body text was effectively invisible on it. The border was hardcoded neon green and the shadow a heavy rgba(0,0,0,0.5). Now uses --bg-card / --text-primary / --accent-green-border / --shadow-color, and .preview-id uses --accent-cyan instead of the undefined --lt-cyan. base.css gains the two tokens the light theme was missing (--accent-green-border and --shadow-color), synced from web_template 0d633bd. Verified with computed styles in headless chromium: light body-text contrast on the panel goes from invisible to 17.7:1, dark stays at 13.2:1, and the ID accent clears 3:1 in both themes. --- assets/css/base.css | 3 +++ assets/css/dashboard.css | 13 +++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/assets/css/base.css b/assets/css/base.css index d238799..5482d1c 100644 --- a/assets/css/base.css +++ b/assets/css/base.css @@ -66,6 +66,7 @@ --accent-green-bright: #33FFAA; --accent-green-dim: rgba(0,255,136,0.10); --accent-green-border: rgba(0,255,136,0.22); + --shadow-color: rgba(0,0,0,0.5); /* --- Error / Critical --- */ --accent-red: #FF2D55; @@ -3640,6 +3641,8 @@ html[data-theme="light"] { --accent-red-dim: rgba(181,0,31,0.10); --accent-amber-dim: rgba(138,90,0,0.10); --accent-cyan-border: rgba(0,98,184,0.28); + --accent-green-border: rgba(0,109,53,0.28); + --shadow-color: rgba(50,80,130,0.18); /* — Glows become subtle drop shadows in light mode — */ --glow-orange: 0 0 0 1px rgba(196,78,0,0.25), 0 1px 6px rgba(196,78,0,0.18); diff --git a/assets/css/dashboard.css b/assets/css/dashboard.css index 6c788d7..0e04c22 100644 --- a/assets/css/dashboard.css +++ b/assets/css/dashboard.css @@ -338,17 +338,22 @@ kbd { } /* ── Ticket preview popup ────────────────────────────────────── */ +/* --lt-surface is not defined anywhere, so the background always fell through to + the hardcoded #0a0e14 — a near-black panel in light mode, with no colour set at + all, so the inherited near-black body text was invisible on it. These tokens + are redefined for light mode in base.css. */ .ticket-preview-popup { position: fixed; z-index: 9999; - background: var(--lt-surface, #0a0e14); - border: 1px solid rgba(0, 255, 65, 0.4); + background: var(--bg-card); + color: var(--text-primary); + border: 1px solid var(--accent-green-border); padding: 0.75rem; min-width: 280px; max-width: 360px; font-size: 0.75rem; pointer-events: auto; - box-shadow: 0 4px 20px rgba(0,0,0,0.5); + box-shadow: 0 4px 20px var(--shadow-color); } .ticket-preview-popup .preview-header { display: flex; @@ -356,7 +361,7 @@ kbd { align-items: center; margin-bottom: 0.4rem; } -.ticket-preview-popup .preview-id { color: var(--lt-cyan, #00ffff); font-weight: 700; } +.ticket-preview-popup .preview-id { color: var(--accent-cyan); font-weight: 700; } .ticket-preview-popup .preview-title { font-weight: 600; margin-bottom: 0.4rem; } .ticket-preview-popup .preview-meta { opacity: 0.7; display: flex; flex-direction: column; gap: 0.1rem; } .ticket-preview-popup .preview-footer { margin-top: 0.4rem; opacity: 0.5; font-size: 0.65rem; }