/* Livers.Agency — Tweaks panel * Allows the user to swap accent color, motion intensity and hero variation. */ const NOVA_DEFAULTS = /*EDITMODE-BEGIN*/{ "accentColor": "#25F4EE", "motionLevel": "high", "heroVariant": "creators-grid" }/*EDITMODE-END*/; (function () { const TweaksPanel = window.TweaksPanel; const useTweaks = window.useTweaks; const TweakSection = window.TweakSection; const TweakRadio = window.TweakRadio; const TweakColor = window.TweakColor; if (!TweaksPanel || !useTweaks) { console.warn("[Livers] tweaks helpers missing — skipping"); return; } function applyAccent(hex) { document.documentElement.style.setProperty("--accent", hex); // recompute soft + glow const r = parseInt(hex.slice(1,3),16) || 37; const g = parseInt(hex.slice(3,5),16) || 244; const b = parseInt(hex.slice(5,7),16) || 238; document.documentElement.style.setProperty("--accent-soft", `rgba(${r},${g},${b},0.12)`); document.documentElement.style.setProperty("--accent-glow", `rgba(${r},${g},${b},0.45)`); } function applyMotion(level) { document.body.dataset.motion = level; if (level === "low") { document.querySelectorAll(".hero-tile").forEach(t => t.style.animation = "none"); document.querySelectorAll(".marquee-track, .ticker-track").forEach(t => t.style.animationPlayState = "paused"); } else { document.querySelectorAll(".hero-tile").forEach(t => t.style.animation = ""); document.querySelectorAll(".marquee-track, .ticker-track").forEach(t => t.style.animationPlayState = ""); } } function applyHero(variant) { const grid = document.querySelector(".hero-grid-bg"); const vignette = document.querySelector(".hero-vignette"); if (!grid) return; if (variant === "minimal") { grid.style.opacity = "0.15"; } else if (variant === "off") { grid.style.display = "none"; } else { grid.style.display = ""; grid.style.opacity = "0.55"; } } function App() { const [tweaks, setTweak] = useTweaks(NOVA_DEFAULTS); React.useEffect(() => applyAccent(tweaks.accentColor), [tweaks.accentColor]); React.useEffect(() => applyMotion(tweaks.motionLevel), [tweaks.motionLevel]); React.useEffect(() => applyHero(tweaks.heroVariant), [tweaks.heroVariant]); return ( setTweak("accentColor", v)} /> setTweak("accentColor", v)} options={[ { value: "#25F4EE", label: "Cyan" }, { value: "#FE2C55", label: "Kırmızı" }, { value: "#C4FF3D", label: "Lime" }, { value: "#A855F7", label: "Mor" }, ]} /> setTweak("motionLevel", v)} options={[ { value: "high", label: "Yoğun" }, { value: "medium", label: "Orta" }, { value: "low", label: "Az" }, ]} /> setTweak("heroVariant", v)} options={[ { value: "creators-grid", label: "Yayıncı grid'i" }, { value: "minimal", label: "Minimal" }, { value: "off", label: "Sade" }, ]} /> ); } document.addEventListener("DOMContentLoaded", () => { const root = document.createElement("div"); root.id = "nova-tweaks-root"; document.body.appendChild(root); ReactDOM.createRoot(root).render(); }); })();