// Tweaks panel — palette options + hero variant + factory stats toggle. function GLITweaks() { const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "accent": "navy", "showFactoryStats": true, "language": "en", "heroVariant": "lobby", "rhythm": "editorial" }/*EDITMODE-END*/; const [t, setTweak] = window.useTweaks(TWEAK_DEFAULTS); // Apply palette to CSS vars React.useEffect(() => { const accents = { navy: { ink: "#14213F", inkAlt: "#1F2D52", green: "#2C8746", greenDeep: "#1B6A33", greenLeaf: "#5BC547" }, forest: { ink: "#0F2418", inkAlt: "#1A3826", green: "#2C8746", greenDeep: "#1B6A33", greenLeaf: "#5BC547" }, ink: { ink: "#15171C", inkAlt: "#22252E", green: "#2C8746", greenDeep: "#1B6A33", greenLeaf: "#5BC547" }, bronze: { ink: "#231A12", inkAlt: "#3A2A1B", green: "#A8854B", greenDeep: "#8C6A36", greenLeaf: "#D4AB6A" }, }; const p = accents[t.accent] || accents.navy; const r = document.documentElement; r.style.setProperty("--ink", p.ink); r.style.setProperty("--ink-2", p.inkAlt); r.style.setProperty("--green", p.green); r.style.setProperty("--green-deep", p.greenDeep); r.style.setProperty("--green-leaf", p.greenLeaf); const rhythm = t.rhythm === "tight" ? "64px" : "96px"; r.style.setProperty("--section-pad", rhythm); }, [t.accent, t.rhythm]); // Expose tweaks to app via window React.useEffect(() => { window.__gliTweaks = t; window.dispatchEvent(new Event("gli-tweaks-change")); }, [t]); const { TweaksPanel, TweakSection, TweakRadio, TweakSelect, TweakToggle, TweakColor } = window; return ( setTweak("accent", v)} options={[ { label: "Navy", value: "navy" }, { label: "Forest", value: "forest" }, { label: "Ink", value: "ink" }, ]} />
Navy matches the literal logo wordmark. Forest emphasises the green icon. Ink reads as a neutral editorial publication.
setTweak("heroVariant", v)} options={[ { label: "Palace banquet hall", value: "lobby" }, { label: "Council chamber", value: "council" }, { label: "Residence interior", value: "palace" }, { label: "Resort suite", value: "suite" }, { label: "Hotel atrium", value: "atrium" }, ]} /> setTweak("rhythm", v)} options={[ { label: "Editorial", value: "editorial" }, { label: "Tight", value: "tight" }, ]} /> setTweak("showFactoryStats", v)} /> setTweak("language", v)} options={[ { label: "EN", value: "en" }, { label: "AR", value: "ar" }, ]} />
AR demos the RTL switch on the nav row.
); } Object.assign(window, { GLITweaks });