/* Pentai landing — Tweaks. Controls the static HTML via CSS vars + body classes. */ const HERO_SUB_DEFAULT = "Pentai brings homework tracking, activity scheduling, shopping lists, and household management into one elegant app — built for busy families who need smart, effortless coordination."; const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "palette": ["#2495A0", "#5BA886", "#FA8E52"], "headlineFont": "DM Serif", "surface": ["#FAF7F2", "#F2EDE4", "#EDE5D8"], "cardRadius": 24, "gradientHeadlines": false, "floatPhone": true, "grain": true, "badgeStyle": "light", "heroSub": HERO_SUB_DEFAULT }/*EDITMODE-END*/; const FONT_MAP = { "Cormorant": "'Cormorant Garamond', serif", "DM Serif": "'DM Serif Display', serif", "Nunito": "'Nunito', sans-serif" }; function PentaiTweaks() { const [t, setTweak] = useTweaks(TWEAK_DEFAULTS); // Accent palette → cool / mid / warm families + the signature gradient React.useEffect(() => { const r = document.documentElement.style; const [cool, mid, warm] = t.palette; r.setProperty('--teal', cool); r.setProperty('--teal-light', cool); r.setProperty('--brand-teal', cool); r.setProperty('--amber', warm); r.setProperty('--amber-light', warm); r.setProperty('--brand-amber', warm); r.setProperty('--brand-grad', `linear-gradient(115deg, ${cool} 0%, ${mid} 48%, ${warm} 100%)`); }, [t.palette]); // Surface tone React.useEffect(() => { const r = document.documentElement.style; const [c1, c2, c3] = t.surface; r.setProperty('--cream', c1); r.setProperty('--cream-2', c2); r.setProperty('--cream-3', c3); }, [t.surface]); React.useEffect(() => { document.documentElement.style.setProperty('--display-font', FONT_MAP[t.headlineFont] || FONT_MAP.Cormorant); }, [t.headlineFont]); React.useEffect(() => { document.documentElement.style.setProperty('--card-radius', t.cardRadius + 'px'); }, [t.cardRadius]); React.useEffect(() => { document.body.classList.toggle('solid-headlines', !t.gradientHeadlines); }, [t.gradientHeadlines]); React.useEffect(() => { document.body.classList.toggle('no-float', !t.floatPhone); }, [t.floatPhone]); React.useEffect(() => { document.body.classList.toggle('no-grain', !t.grain); }, [t.grain]); React.useEffect(() => { document.body.classList.toggle('badges-light', t.badgeStyle === 'light'); }, [t.badgeStyle]); React.useEffect(() => { const el = document.querySelector('.hero-sub'); if (el) el.textContent = t.heroSub; }, [t.heroSub]); return ( setTweak('palette', v)} /> setTweak('gradientHeadlines', v)} /> setTweak('headlineFont', v)} /> setTweak('surface', v)} /> setTweak('cardRadius', v)} /> setTweak('floatPhone', v)} /> setTweak('grain', v)} /> setTweak('badgeStyle', v)} /> setTweak('heroSub', v)} /> ); } ReactDOM.createRoot(document.getElementById('tweaks-root')).render();