// App entry — tweaks, palette swap, mount sections const PALETTES = { champagne: { name: "Şampanya · Ivory", vars: { "--bg": "#f7f1e8", "--bg-2": "#efe6d6", "--paper": "#fbf6ec", "--ink": "#1a1410", "--ink-soft": "#3a2a20", "--muted": "#8a7560", "--line": "rgba(26,20,16,0.12)", "--line-soft": "rgba(26,20,16,0.06)", "--gold": "#c9a961", "--gold-soft": "#d8bf86", "--nude": "#e8d5b7", "--champ": "#d4a574", "--glow": "rgba(201,169,97,0.22)", "--grain": "rgba(26,20,16,0.025)", } }, blush: { name: "Blush · Nude", vars: { "--bg": "#fdfaf6", "--bg-2": "#f6e8e3", "--paper": "#fefaf6", "--ink": "#2a1a1a", "--ink-soft": "#4a2e2a", "--muted": "#a08278", "--line": "rgba(42,26,26,0.12)", "--line-soft": "rgba(42,26,26,0.06)", "--gold": "#b8956a", "--gold-soft": "#d3b48a", "--nude": "#f0d7d2", "--champ": "#d9a89e", "--glow": "rgba(184,149,106,0.2)", "--grain": "rgba(42,26,26,0.022)", } }, midnight: { name: "Matte Siyah · Altın", vars: { "--bg": "#0e0a08", "--bg-2": "#1a1410", "--paper": "#16110e", "--ink": "#f7f1e8", "--ink-soft": "#d8c9b3", "--muted": "#8a7560", "--line": "rgba(247,241,232,0.12)", "--line-soft": "rgba(247,241,232,0.06)", "--gold": "#c9a961", "--gold-soft": "#d8bf86", "--nude": "#3a2a1f", "--champ": "#5a4530", "--glow": "rgba(201,169,97,0.32)", "--grain": "rgba(247,241,232,0.018)", } }, }; const HEADLINES = { primary: "Sevgi Taşan Beauty Studio", poetic: "Güzelliğe zarif bir dokunuş", intimate: "Sessiz bir atelye Yıldırım'da", }; const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "palette": "champagne", "layout": "editorial", "headline": "primary" }/*EDITMODE-END*/; function applyPalette(key) { const p = PALETTES[key] || PALETTES.champagne; const root = document.documentElement; Object.entries(p.vars).forEach(([k, v]) => root.style.setProperty(k, v)); } function App() { const [t, setTweak] = useTweaks(TWEAK_DEFAULTS); React.useEffect(() => { applyPalette(t.palette); }, [t.palette]); React.useEffect(() => { if (window.__reveal_watch) window.__reveal_watch(); }); return ( <> setTweak('palette', v)} options={[ { value: "champagne", label: "Şampanya" }, { value: "blush", label: "Blush" }, { value: "midnight", label: "Gece" }, ]} /> setTweak('headline', v)} options={[ { value: "primary", label: "Sevgi Taşan Beauty Studio" }, { value: "poetic", label: "Güzelliğe zarif bir dokunuş" }, { value: "intimate", label: "Sessiz bir atelye Yıldırım'da" }, ]} /> setTweak('layout', v)} options={[ { value: "editorial", label: "Editorial" }, { value: "list", label: "Liste" }, { value: "stacked", label: "Stacked" }, ]} /> {/* Render the rest by mounting into other anchors */} ); } function SectionPortals({ layout }) { const [mounted, setMounted] = React.useState(false); React.useEffect(() => { setMounted(true); }, []); if (!mounted) return null; return ( <> {ReactDOM.createPortal(, document.getElementById('storytelling'))} {ReactDOM.createPortal(, document.getElementById('felsefe'))} {ReactDOM.createPortal(, document.getElementById('hizmetler'))} {ReactDOM.createPortal(, document.getElementById('randevu'))} {ReactDOM.createPortal(, document.getElementById('iletisim'))} {ReactDOM.createPortal(, document.getElementById('site-footer'))} ); } ReactDOM.createRoot(document.getElementById('hero')).render();