/* app.jsx — root */
const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{
"accent": "#d4b878",
"density": "spacious",
"grain": true
}/*EDITMODE-END*/;
const ACCENT_OPTIONS = [
'#d4b878', // champagne
'#3a5cf0', // royal
'#4f9d7a', // emerald
'#b5544a', // garnet
];
function hexToSoft(hex, alpha = 0.6) {
const h = hex.replace('#','');
const r = parseInt(h.substring(0,2),16);
const g = parseInt(h.substring(2,4),16);
const b = parseInt(h.substring(4,6),16);
return `rgba(${r}, ${g}, ${b}, ${alpha})`;
}
function App() {
const [t, setTweak] = useTweaks(TWEAK_DEFAULTS);
React.useEffect(() => {
const root = document.documentElement;
root.style.setProperty('--champagne', t.accent);
root.style.setProperty('--champagne-soft', hexToSoft(t.accent, 0.6));
}, [t.accent]);
return (
{!t.grain && }
setTweak('accent', v)}
options={ACCENT_OPTIONS}
/>
setTweak('density', v)}
/>
setTweak('grain', v)}
/>
);
}
ReactDOM.createRoot(document.getElementById('root')).render();