/* global React, TweaksPanel, TweakSection, TweakRadio, TweakColor, useTweaks */
const { useEffect } = React;
const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{
"hero_variant": "terminal",
"headline": "robots",
"accent": "violet"
}/*EDITMODE-END*/;
const ACCENTS = {
violet: { violet: "oklch(0.72 0.19 285)", violet2: "oklch(0.62 0.22 290)", blue: "oklch(0.78 0.16 230)" },
cyan: { violet: "oklch(0.78 0.16 200)", violet2: "oklch(0.68 0.19 210)", blue: "oklch(0.82 0.14 180)" },
amber: { violet: "oklch(0.78 0.16 65)", violet2: "oklch(0.70 0.18 50)", blue: "oklch(0.82 0.14 90)" },
pink: { violet: "oklch(0.74 0.20 340)", violet2: "oklch(0.64 0.22 340)", blue: "oklch(0.78 0.16 290)" },
};
function App() {
const [t, setTweak] = useTweaks(TWEAK_DEFAULTS);
useEffect(() => {
if (window.__site) window.__site.setHeroVariant(t.hero_variant);
}, [t.hero_variant]);
useEffect(() => {
if (window.__site) window.__site.setHeadline(t.headline);
}, [t.headline]);
useEffect(() => {
const a = ACCENTS[t.accent] || ACCENTS.violet;
const root = document.documentElement;
root.style.setProperty("--violet", a.violet);
root.style.setProperty("--violet-2", a.violet2);
root.style.setProperty("--blue", a.blue);
root.style.setProperty("--accent-glow", `color-mix(in oklch, ${a.violet} 40%, transparent)`);
}, [t.accent]);
return (
setTweak("hero_variant", v)}
options={[
{ value: "terminal", label: "Terminál" },
{ value: "network", label: "AI síť" },
{ value: "code", label: "Kód" },
]}
/>
setTweak("headline", v)}
options={[
{ value: "pillars", label: "Pod jednou střechou" },
{ value: "robots", label: "Roboti" },
{ value: "idea", label: "Z nápadu" },
]}
/>
setTweak("accent", v)}
options={[
{ value: "violet", label: "Violet · Blue" },
{ value: "cyan", label: "Cyan · Mint" },
{ value: "amber", label: "Amber · Gold" },
{ value: "pink", label: "Pink · Magenta" },
]}
/>
);
}
ReactDOM.createRoot(document.getElementById("tweaks-root")).render();