fix(theme): scope dark media override to auto mode only
Some checks failed
CI / Backend (Python) (push) Failing after 1m32s
CI / Frontend (Vue) (push) Failing after 25s
Mirror / mirror (push) Failing after 7s
Release / release (push) Failing after 6s

peregrine.css used :root:not([data-theme="hacker"]) in the
prefers-color-scheme:dark block, causing --app-primary-light and
--app-accent-light to resolve to dark navy/brown in every explicit
light theme (light, solarized-light, colorblind) on dark-OS machines.

Changed to :root:not([data-theme]) to match theme.css's pattern,
so the media query only fires in auto mode. Explicit [data-theme="dark"]
block handles the dark-theme-on-light-OS case unchanged.

Also fixed incorrect fallback values in HintChip.vue (#0d1829 → #eaeff8)
and App.vue global toast (#2a3650/#eaeff8 → light-mode values).

Closes: dark elements in light themes on dark-OS machines
This commit is contained in:
pyr0ball 2026-05-05 14:22:59 -07:00
parent 312631a5d9
commit 5d8018ef40
4 changed files with 29 additions and 5 deletions

View file

@ -9,6 +9,30 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
--- ---
## [0.9.3] — 2026-05-05
### Added
- **Editable resume review** — proposed summary and experience bullets in the review modal
are now editable text areas. Edits flow through `apply_review_decisions()` and override
the LLM output in the final resume struct. Preview textarea in Apply Workspace is also
editable, with manual changes preserved through the approve step via `preview_text_override`.
### Fixed
- **Double bullets in resume optimizer**`_section_text_for_prompt` now strips existing
bullet characters before prefixing with `•`, and `_reparse_experience_bullets` uses a
greedy strip regex so `• •` patterns can no longer survive parsing.
- **Asterisk markup in summary** — added `_clean_summary_markup()` to strip LLM-generated
markdown bullet chars (`*`, `-`, etc.) from career summary output; injected no-markdown
rule into the LLM prompt's CRITICAL RULES list.
- **Light theme dark CSS bleed**`peregrine.css` media dark override now scoped to
`:root:not([data-theme])` (auto mode only) instead of `:root:not([data-theme="hacker"])`.
Fixes dark navy `--app-primary-light`/`--app-accent-light` bleeding into light themes
(light, solarized-light, colorblind) on dark-OS machines.
---
## [0.9.2] — 2026-05-02 ## [0.9.2] — 2026-05-02
### Added ### Added

View file

@ -135,8 +135,8 @@ body {
bottom: calc(72px + env(safe-area-inset-bottom)); bottom: calc(72px + env(safe-area-inset-bottom));
left: 50%; left: 50%;
transform: translateX(-50%); transform: translateX(-50%);
background: var(--color-surface-raised, #2a3650); background: var(--color-surface-raised, #f5f7fc);
color: var(--color-text, #eaeff8); color: var(--color-text, #1a2338);
padding: 10px 20px; padding: 10px 20px;
border-radius: var(--radius-md, 8px); border-radius: var(--radius-md, 8px);
font-size: 0.9rem; font-size: 0.9rem;

View file

@ -79,7 +79,7 @@ body {
/* ── Dark mode ─────────────────────────────────────── */ /* ── Dark mode ─────────────────────────────────────── */
/* Covers both: OS-level dark preference AND explicit dark theme selection in UI */ /* Covers both: OS-level dark preference AND explicit dark theme selection in UI */
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
:root:not([data-theme="hacker"]) { :root:not([data-theme]) {
--app-primary: #68A8D8; /* Falcon Blue (dark) — 6.54:1 on #16202e ✅ AA */ --app-primary: #68A8D8; /* Falcon Blue (dark) — 6.54:1 on #16202e ✅ AA */
--app-primary-hover: #7BBDE6; --app-primary-hover: #7BBDE6;
--app-primary-light: #0D1F35; --app-primary-light: #0D1F35;

View file

@ -32,7 +32,7 @@ function dismiss(): void {
display: flex; display: flex;
align-items: flex-start; align-items: flex-start;
gap: var(--space-2, 8px); gap: var(--space-2, 8px);
background: var(--color-surface, #0d1829); background: var(--color-surface, #eaeff8);
border: 1px solid var(--app-primary, #2B6CB0); border: 1px solid var(--app-primary, #2B6CB0);
border-radius: var(--radius-md, 8px); border-radius: var(--radius-md, 8px);
padding: var(--space-2, 8px) var(--space-3, 12px); padding: var(--space-2, 8px) var(--space-3, 12px);
@ -59,5 +59,5 @@ function dismiss(): void {
line-height: 1; line-height: 1;
} }
.hint-chip__dismiss:hover { color: var(--color-text, #eaeff8); } .hint-chip__dismiss:hover { color: var(--color-text, #1a2338); }
</style> </style>