/* Techonymous — Tweaks panel Wired through tweaks-panel.jsx (TweaksPanel, useTweaks, TweakSection, TweakColor, TweakRadio, TweakToggle) */ const TWEAK_DEFAULS = /*EDITMODE-BEGIN*/{ "accent": ["#7B2FFF", "#00D4FF"], "effectsIntensity": 1, "density": 1, "showCursor": true, "auroraStyle": "violet-cyan" }/*EDITMODE-END*/; function TweaksRoot() { const [t, setTweak] = useTweaks(TWEAK_DEFAULS); // Apply tweaks live by writing CSS custom properties React.useEffect(() => { const r = document.documentElement; const [a1, a2] = Array.isArray(t.accent) ? t.accent : ["#7B2FFF", "#00D4FF"]; r.style.setProperty("--acc-violet", a1); r.style.setProperty("--acc-cyan", a2); r.style.setProperty("--acc-grad", `linear-gradient(135deg, ${a1} 0%, ${a2} 100%)`); r.style.setProperty("--effects-intensity", String(t.effectsIntensity ?? 1)); r.style.setProperty("--density", String(t.density ?? 1)); // Aurora style const styles = { "violet-cyan": { b1: a1, b2: a2, b3: "#4A1FB8" }, "sunset": { b1: "#FF2F87", b2: "#FFB347", b3: "#7B2FFF" }, "emerald": { b1: "#34D399", b2: "#00D4FF", b3: "#0EA5E9" }, "monochrome": { b1: "#3B3B55", b2: "#5C5C75", b3: "#8B8BA7" }, }; const s = styles[t.auroraStyle] || styles["violet-cyan"]; document.querySelectorAll(".aurora__blob--1").forEach(el => el.style.background = s.b1); document.querySelectorAll(".aurora__blob--2").forEach(el => el.style.background = s.b2); document.querySelectorAll(".aurora__blob--3").forEach(el => el.style.background = s.b3); // Cursor visibility document.documentElement.classList.toggle("no-orb", t.showCursor === false); }, [t]); return ( setTweak("accent", v)} options={[ ["#7B2FFF", "#00D4FF"], ["#FF2F87", "#FFB347"], ["#34D399", "#00D4FF"], ["#F5C947", "#EC4899"], ["#FFFFFF", "#8B8BA7"], ["#7B2FFF", "#EC4899"], ]} /> setTweak("effectsIntensity", v)} options={[ { value: 0.4, label: "Subtle" }, { value: 1, label: "Default" }, { value: 1.5, label: "Maximal" }, ]} /> setTweak("density", v)} options={[ { value: 0.7, label: "Compact" }, { value: 1, label: "Normal" }, { value: 1.3, label: "Airy" }, ]} /> setTweak("auroraStyle", v)} options={[ { value: "violet-cyan", label: "Signature" }, { value: "sunset", label: "Sunset" }, { value: "emerald", label: "Emerald" }, { value: "monochrome", label: "Mono" }, ]} /> setTweak("showCursor", v)} /> ); } // Mount tweaks panel const tweaksMount = document.createElement("div"); document.body.appendChild(tweaksMount); ReactDOM.createRoot(tweaksMount).render();