const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{
"accent": "#c9a96e",
"layout": "split"
}/*EDITMODE-END*/;
function App() {
const [t, setTweak] = useTweaks(TWEAK_DEFAULTS);
React.useEffect(() => {
const tm = setTimeout(() => {
document.getElementById('loader')?.classList.add('lift');
}, 2200);
const tm2 = setTimeout(() => {
const el = document.getElementById('loader');
if (el) el.style.display = 'none';
}, 3400);
return () => { clearTimeout(tm); clearTimeout(tm2); };
}, []);
// Apply accent to CSS var
React.useEffect(() => {
document.documentElement.style.setProperty('--accent', t.accent);
// Compute lighter accent
document.documentElement.style.setProperty('--accent-2', lighten(t.accent, 0.08));
}, [t.accent]);
const accentOptions = ['#c9a96e', '#b8956a', '#d4af37', '#8b6f47', '#a89070'];
return (
setTweak('accent', v)} />
setTweak('layout', v)} />
);
}
function lighten(hex, amount) {
// Simple hex lighten
const c = hex.replace('#','');
const r = Math.min(255, parseInt(c.substr(0,2),16) + Math.round(255*amount));
const g = Math.min(255, parseInt(c.substr(2,2),16) + Math.round(255*amount));
const b = Math.min(255, parseInt(c.substr(4,2),16) + Math.round(255*amount));
return '#' + [r,g,b].map(x => x.toString(16).padStart(2,'0')).join('');
}
ReactDOM.createRoot(document.getElementById('root')).render();