Repository navigation
fix(theme): remap the hover states light mode left dark, and bump majors - #6
Merged
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 compileshover:bg-zinc-800as its own class, so remappingbg-zinc-800never 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:
hover:text-zinc-200/-300bg-amber-900/25/20and/30were remappedborder-zinc-600,hover:border-zinc-400The 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.jsonnow 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-updater2.10.1, the version we ship, setsAccept: application/octet-streamon 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.gzfilenames gain the version in v1.latest.jsonis 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