// App shell — composes all sections + Tweaks
const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{
"accentColor": "#a8345f",
"titleFont": "serif-it",
"heroPhoto": "green",
"animations": "on"
}/*EDITMODE-END*/;
const ACCENT_PRESETS = [
{ value: '#a8345f', label: 'Rosa magenta (logo)' },
{ value: '#9b5a47', label: 'Terracota' },
{ value: '#6e8a5a', label: 'Verde salvia' },
{ value: '#d97a5c', label: 'Coral' },
];
function App(){
const [tweaks, setTweak] = useTweaks(TWEAK_DEFAULTS);
// Apply accent color to CSS var + animations toggle
React.useEffect(() => {
document.documentElement.style.setProperty('--accent', tweaks.accentColor);
if (tweaks.animations === 'off') {
document.body.classList.add('reveal-off');
} else {
document.body.classList.remove('reveal-off');
}
}, [tweaks.accentColor, tweaks.animations]);
return (
<>
setTweak('accentColor', v)}
options={ACCENT_PRESETS}
/>
setTweak('titleFont', v)}
options={[
{ value:'serif-it', label:'Serif italic (editorial)' },
{ value:'script', label:'Script (manuscrita)' },
{ value:'sans-caps',label:'Sans mayúsculas (bold)' },
]}
/>
setTweak('heroPhoto', v)}
options={[
{ value:'green', label:'Vestido verde (fondo terracota)' },
{ value:'blazer', label:'Blazer crema (ambiente)' },
]}
/>
setTweak('animations', v)}
options={[
{ value:'on', label:'Activadas (reveal on scroll)' },
{ value:'off', label:'Desactivadas' },
]}
/>
>
);
}
ReactDOM.createRoot(document.getElementById('root')).render();