mirror of
https://github.com/meowarex/TidaLuna-Plugins.git
synced 2026-06-18 03:43:10 +10:00
Fixed Disabling Lyrics Glow
This commit is contained in:
@@ -156,7 +156,7 @@ export const Settings = () => {
|
||||
<LunaSettings>
|
||||
<AnySwitch
|
||||
title="Lyrics Glow Effect"
|
||||
desc="Enable glowing effect for lyrics & Font Styling Changes"
|
||||
desc="Enable glowing effect on lyrics"
|
||||
checked={lyricsGlowEnabled}
|
||||
onChange={(_: unknown, checked: boolean) => {
|
||||
settings.lyricsGlowEnabled = checked;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// MARKER: Core Setup
|
||||
import { type LunaUnload, Tracer } from "@luna/core";
|
||||
import { StyleTag, PlayState, MediaItem, observePromise, observe, safeInterval, safeTimeout } from "@luna/lib";
|
||||
import { StyleTag, PlayState, MediaItem, observe, safeInterval, safeTimeout } from "@luna/lib";
|
||||
import { settings, Settings } from "./Settings";
|
||||
// Interpret integer backgroundScale (e.g., 10=1.0x, 20=2.0x)
|
||||
const getScaledMultiplier = (): number => {
|
||||
@@ -28,10 +28,8 @@ const playerBarStyleTag = new StyleTag("RadiantLyrics-player-bar", unloads);
|
||||
const lyricsGlowStyleTag = new StyleTag("RadiantLyrics-lyrics-glow", unloads);
|
||||
const floatingPlayerBarStyleTag = new StyleTag("RadiantLyrics-floating-player-bar", unloads);
|
||||
|
||||
// Apply lyrics glow styles if enabled
|
||||
if (settings.lyricsGlowEnabled) {
|
||||
// Always load lyrics CSS (glow is toggled via .lyrics-glow-disabled class)
|
||||
lyricsGlowStyleTag.css = lyricsGlow;
|
||||
}
|
||||
|
||||
// MARKER: Floating Player Bar
|
||||
|
||||
@@ -138,10 +136,20 @@ baseStyleTag.css = baseStyles;
|
||||
// Update CSS variables for lyrics text glow based on settings
|
||||
const updateRadiantLyricsTextGlow = function (): void {
|
||||
const root = document.documentElement;
|
||||
if (settings.lyricsGlowEnabled) {
|
||||
root.style.setProperty("--rl-glow-outer", `${settings.textGlow}px`);
|
||||
root.style.setProperty("--rl-glow-inner", "2px");
|
||||
root.classList.remove("lyrics-glow-disabled");
|
||||
} else {
|
||||
root.style.setProperty("--rl-glow-outer", "0px");
|
||||
root.style.setProperty("--rl-glow-inner", "0px");
|
||||
root.classList.add("lyrics-glow-disabled");
|
||||
}
|
||||
};
|
||||
|
||||
// Apply glow state immediately at startup
|
||||
updateRadiantLyricsTextGlow();
|
||||
|
||||
// Function to update styles when settings change
|
||||
const updateRadiantLyricsStyles = function (): void {
|
||||
// Handle Player Bar Visibility
|
||||
@@ -158,32 +166,8 @@ const updateRadiantLyricsStyles = function (): void {
|
||||
// Handle Floating Player Bar
|
||||
applyFloatingPlayerBar();
|
||||
|
||||
// Update lyrics glow based on setting (Always apply if enabled, even when UI is hidden)
|
||||
const lyricsContainer = document.querySelector('[class^="_lyricsContainer"]');
|
||||
if (lyricsContainer) {
|
||||
if (settings.lyricsGlowEnabled) {
|
||||
(lyricsContainer as HTMLElement).classList.remove("lyrics-glow-disabled");
|
||||
lyricsGlowStyleTag.css = lyricsGlow;
|
||||
// Toggle glow via CSS vars + class on :root (always available, no timing issues)
|
||||
updateRadiantLyricsTextGlow();
|
||||
} else {
|
||||
(lyricsContainer as HTMLElement).classList.add("lyrics-glow-disabled");
|
||||
lyricsGlowStyleTag.remove();
|
||||
}
|
||||
} else {
|
||||
observePromise<HTMLElement>(unloads, '[class^="_lyricsContainer"]')
|
||||
.then((el) => {
|
||||
if (!el) return;
|
||||
if (settings.lyricsGlowEnabled) {
|
||||
el.classList.remove("lyrics-glow-disabled");
|
||||
lyricsGlowStyleTag.css = lyricsGlow;
|
||||
updateRadiantLyricsTextGlow();
|
||||
} else {
|
||||
el.classList.add("lyrics-glow-disabled");
|
||||
lyricsGlowStyleTag.remove();
|
||||
}
|
||||
})
|
||||
.catch(() => {});
|
||||
}
|
||||
|
||||
// Track title glow toggle based on settings
|
||||
const trackTitleEl = document.querySelector(
|
||||
|
||||
@@ -383,30 +383,24 @@
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
/* Reset lyrics styling when disabled */
|
||||
/* Reset glow when disabled */
|
||||
.lyrics-glow-disabled [class*="_lyricsText"] > div > span[data-current="true"],
|
||||
.lyrics-glow-disabled [class*="_lyricsText"] > div > span,
|
||||
.lyrics-glow-disabled [class*="_lyricsText"] > div > span:hover,
|
||||
.lyrics-glow-disabled [data-test="now-playing-track-title"],
|
||||
.lyrics-glow-disabled [class^="_lyricsContainer"] > div > div > span {
|
||||
/* biome-ignore lint: Hard reset when disabled */
|
||||
.lyrics-glow-disabled [class*="_lyricsText"] > div > span:hover {
|
||||
/* biome-ignore lint: Kill glow on active/hover lines */
|
||||
text-shadow: none !important;
|
||||
/* biome-ignore lint: Hard reset when disabled */
|
||||
padding-left: 0 !important;
|
||||
/* biome-ignore lint: Hard reset when disabled */
|
||||
transition: none !important;
|
||||
/* biome-ignore lint: Hard reset when disabled */
|
||||
font-size: inherit !important;
|
||||
/* biome-ignore lint: Hard reset when disabled */
|
||||
color: inherit !important;
|
||||
/* biome-ignore lint: Hard reset when disabled */
|
||||
font-family: inherit !important;
|
||||
/* biome-ignore lint: Hard reset when disabled */
|
||||
font-weight: inherit !important;
|
||||
/* biome-ignore lint: Hard reset when disabled */
|
||||
margin-bottom: inherit !important;
|
||||
/* biome-ignore lint: Hard reset when disabled */
|
||||
opacity: inherit !important;
|
||||
}
|
||||
|
||||
/* thats right biome.. shut upp */
|
||||
/* kill glow on active word */
|
||||
.lyrics-glow-disabled .rl-wbw-word.rl-wbw-active {
|
||||
/* biome-ignore lint: Kill glow on active word */
|
||||
text-shadow: none !important;
|
||||
}
|
||||
|
||||
/* kill glow on hovered word */
|
||||
.lyrics-glow-disabled .rl-wbw-line:not(.rl-wbw-line-active) > .rl-wbw-word:hover,
|
||||
.lyrics-glow-disabled .rl-wbw-line:not(.rl-wbw-line-active) > .rl-wbw-word.rl-wbw-word-hover,
|
||||
.lyrics-glow-disabled .rl-wbw-line:not(.rl-wbw-line-active) .rl-wbw-main .rl-wbw-word:hover,
|
||||
.lyrics-glow-disabled .rl-wbw-line:not(.rl-wbw-line-active) .rl-wbw-main .rl-wbw-word.rl-wbw-word-hover {
|
||||
/* biome-ignore lint: Kill glow on hovered word */
|
||||
text-shadow: none !important;
|
||||
}
|
||||
Reference in New Issue
Block a user