Skip to content

fix(theme): remap the hover states light mode left dark, and bump majors - #6

Merged
lr00429 merged 1 commit into
mainfrom
fix/light-theme-and-action-majors
Aug 24, 2026
Merged

lr00429 merged 1 commit into
mainfrom
fix/light-theme-and-action-majors

Conversation

@lr00429

@lr00429 lr00429 commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Light theme — the reported bug

The theme remaps dark-palette utility classes under html.theme-light, so any class nobody remapped keeps its literal dark value. Tailwind compiles hover:bg-zinc-800 as its own class, so remapping bg-zinc-800 never reached it. A hovered cell context-menu item painted itself near-black under text already inverted to near-black — 1.19:1 contrast, the label vanishing under the cursor.

Now 13.96:1. Verified against the running dev server: rules confirmed in the compiled stylesheet, contrast computed, and rendered side by side.

Four more instances of the same trap:

class was why it matters
hover:text-zinc-200 / -300 literal light grey labels went near-invisible on white when hovered
bg-amber-900/25 dark amber wash staged batch-edit cells; only /20 and /30 were remapped
border-zinc-600, hover:border-zinc-400 stayed dark cosmetic, remapped for consistency

The border pair maps darker than border-zinc-700, since a higher zinc number is a more prominent border and prominence inverts to darker on white.

tauri-action v0 → v1

Every input this workflow passes survives the major. The renamed/removed ones — assetNamePattern, includeUpdaterJson, includeRelease/includeDebug, updaterJsonKeepUniversal — are all unused here.

Two behaviors do change:

latest.json now points at GitHub API asset URLs, not browser download URLs, with no opt-out input. This was my one real hesitation, since a broken auto-updater fails silently — existing installs just stop updating. It's safe here: tauri-plugin-updater 2.10.1, the version we ship, sets Accept: application/octet-stream on the download request, which is exactly what those URLs require. Verified in the vendored crate source, not just the docs.

The action now rewrites an existing release's name and body rather than leaving them alone. All three matrix jobs pass identical values, so this is inert — but the comment claiming otherwise is now corrected.

Also worth knowing: .app.tar.gz filenames gain the version in v1. latest.json is regenerated with matching URLs, so the updater is unaffected.

Node 20 → 22

Node 20 went EOL in April 2026. 22 is LTS and clears Vite 7's 20.19+/22.12+ floor.

Verification

CI covers the theme change and the Node bump. The tauri-action bump only truly executes on a tag push, so it gets its real test at the next release — with the updater question settled above, the remaining risk is a release that fails loudly rather than one that ships broken.

🤖 Generated with Claude Code

Light theme. The theme works by remapping dark-palette utility classes
under `html.theme-light`, which means a class nobody remapped keeps its
literal dark value. Tailwind compiles `hover:bg-zinc-800` as its own
class, so remapping `bg-zinc-800` never reached it — a hovered cell
context-menu item painted itself near-black under text already inverted
to near-black. 1.19:1 contrast; the label vanished under the cursor.

Same trap, four more places:
  - `hover:text-zinc-200` / `hover:text-zinc-300` kept their literal light
    grey, so hovering turned those labels near-invisible on white.
  - `bg-amber-900/25`, the staged batch-edit cell wash, arrived with batch
    edit while only the /20 and /30 variants were remapped — staged cells
    sat under a dark amber wash in light mode.
  - `border-zinc-600` and `hover:border-zinc-400` stayed dark. Cosmetic
    rather than unreadable, but remapped for consistency. They map DARKER
    than border-zinc-700 does, since a higher zinc number is a more
    prominent border and prominence inverts to darker on white.

Menu hover now runs 13.96:1.

tauri-action v0 → v1. Every input this workflow passes survives the
major; the renamed and removed ones (assetNamePattern, includeUpdaterJson,
includeRelease/Debug, updaterJsonKeepUniversal) are all unused here. Two
behaviors do change. `latest.json` now points at GitHub API asset URLs
instead of browser download URLs, with no opt-out input — safe here
because tauri-plugin-updater 2.10.1, the version we ship, sets
`Accept: application/octet-stream` on the download request, which is
exactly what those URLs require. And the action now rewrites an existing
release's name and body instead of leaving them alone, so the comment
claiming otherwise is corrected.

Node 20 → 22 in both workflows. Node 20 went EOL in April 2026; 22 is LTS
and clears Vite 7's 20.19+/22.12+ floor.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@lr00429
lr00429 merged commit 6a66a45 into main Aug 24, 2026
3 checks passed
@lr00429
lr00429 deleted the fix/light-theme-and-action-majors branch August 24, 2026 11:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant