perf(lyrics): fix CPU spikes during lyric transitions; fix release workflow

CSS: remove `font-weight` from transition list on `.fs-lyric-line` — it
triggers layout reflow on every animation frame when the active line changes.
Replaced with `transform: scaleX(1.015)` on `.fsl-active` (compositor-only).
Added `contain: layout style` to `.fs-lyrics-overlay` to isolate reflows.

Cargo.lock: update for thread-priority crate (added in previous audio commit).

CI: replace delete-asset workaround with `updaterJsonKeepUniversal: false`
to prevent tauri-action from uploading a latest.json with wrong signature.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Psychotoxical
2026-04-07 12:30:32 +02:00
parent 44287a7ceb
commit 8add62a502
3 changed files with 26 additions and 13 deletions
+6 -2
View File
@@ -3260,6 +3260,7 @@
z-index: 3;
overflow: hidden;
pointer-events: none;
contain: layout style; /* isolate reflows from rest of page */
/* Fade first and last slot (each 3.6/18 = 20% of container) */
-webkit-mask-image: linear-gradient(
@@ -3300,7 +3301,9 @@
font-weight: 400;
cursor: pointer;
pointer-events: auto;
transition: color 280ms ease, font-weight 280ms ease, text-shadow 280ms ease;
/* font-weight intentionally NOT transitioned — triggers layout reflow on every frame */
transition: color 280ms ease, text-shadow 280ms ease, transform 280ms ease;
transform-origin: left center;
user-select: none;
}
@@ -3312,11 +3315,12 @@
color: rgba(255, 255, 255, 0.1);
}
/* Active: emphasis via weight + glow only, height stays 44px */
/* Active: emphasis via scale + glow; font-weight snaps instantly (no layout-reflow transition) */
.fs-lyric-line.fsl-active {
font-weight: 600;
color: rgba(255, 255, 255, 0.95);
text-shadow: 0 0 28px var(--accent-glow, var(--accent)), 0 1px 8px rgba(0, 0, 0, 0.6);
transform: scaleX(1.015); /* subtle compositor-only emphasis, no layout cost */
}