// Config Page — visual design settings for site owners
const CONFIG_ACCENT_PRESETS = [
{ label: 'Gold', hex: '#C8A86B' },
{ label: 'Amber', hex: '#D4A020' },
{ label: 'Brass', hex: '#B8942A' },
{ label: 'Rose Gold', hex: '#C0826A' },
{ label: 'Sage', hex: '#7A9B76' },
{ label: 'Sky', hex: '#5B8CB7' },
{ label: 'Plum', hex: '#8B5E8C' },
{ label: 'Silver', hex: '#9B9EA6' },
{ label: 'Crimson', hex: '#B04A5A' },
{ label: 'Teal', hex: '#4A9B8C' },
];
const CONFIG_THEMES = [
{ value: 'midnight', label: 'Midnight', sub: 'Deepest black', base: '#0A0A0B', elev: '#141416', fg: '#FAF8F4' },
{ value: 'obsidian', label: 'Obsidian', sub: 'Warm near-black', base: '#13130F', elev: '#1C1B16', fg: '#F5EFE1' },
{ value: 'graphite', label: 'Graphite', sub: 'Soft dark grey', base: '#1A1A1D', elev: '#23232A', fg: '#F5F2EB' },
{ value: 'pewter', label: 'Pewter', sub: 'Lifted dark', base: '#262428', elev: '#312E33', fg: '#F7F2E8' },
{ value: 'champagne', label: 'Champagne', sub: 'Warm bronze', base: '#1F1A14', elev: '#2A241B', fg: '#F5E4C1' },
{ value: 'porcelain', label: 'Porcelain', sub: 'Light cream', base: '#F4EFE4', elev: '#EAE3D2', fg: '#1C1812' },
];
const CONFIG_DISPLAY_FONTS = [
{ value: 'Italiana', sample: 'Building Ludhiana.' },
{ value: 'Bodoni Moda', sample: 'Building Ludhiana.' },
{ value: 'Playfair Display', sample: 'Building Ludhiana.' },
{ value: 'Cormorant Garamond', sample: 'Building Ludhiana.' },
{ value: 'Cinzel', sample: 'BUILDING LUDHIANA' },
{ value: 'Marcellus', sample: 'Building Ludhiana.' },
{ value: 'Libre Caslon Text', sample: 'Building Ludhiana.' },
{ value: 'Instrument Serif', sample: 'Building Ludhiana.' },
];
const CONFIG_BODY_FONTS = [
{ value: 'Jost', sample: 'Premium real estate for investors and families in Punjab.' },
{ value: 'Outfit', sample: 'Premium real estate for investors and families in Punjab.' },
{ value: 'Manrope', sample: 'Premium real estate for investors and families in Punjab.' },
{ value: 'Tenor Sans', sample: 'Premium real estate for investors and families in Punjab.' },
{ value: 'Cormorant', sample: 'Premium real estate for investors and families in Punjab.' },
{ value: 'Geist', sample: 'Premium real estate for investors and families in Punjab.' },
];
function CfgSection({ title, icon, children }) {
const Ic = (Icon && Icon[icon]) || null;
return (
);
}
function ConfigPage({ t, setTweak, onReset }) {
const [copied, setCopied] = React.useState(false);
const copyConfig = () => {
try {
const text = JSON.stringify(t, null, 2);
if (navigator.clipboard) {
navigator.clipboard.writeText(text).catch(() => {});
}
setCopied(true);
setTimeout(() => setCopied(false), 2000);
} catch(e) {}
};
const trackingLabel = t.displayTracking > 0
? `+${t.displayTracking}`
: `${t.displayTracking}`;
return (
{/* ── Header ── */}
Site Settings · Changes save automatically
Design Configuration.
All changes apply instantly across the site and are saved to your browser. Reload the page — they persist.
{/* ── Left column ── */}
{/* Background Theme */}
{CONFIG_THEMES.map(th => (
))}
{/* Accent Color */}
{/* Presets */}
{CONFIG_ACCENT_PRESETS.map(p => (
{/* Custom picker */}
{/* Display Font */}
{CONFIG_DISPLAY_FONTS.map(f => (
))}
{/* Body Font */}
{CONFIG_BODY_FONTS.map(f => (
))}
{/* ── Right column ── */}
{/* Typography fine-tuning */}
{/* Letter spacing */}
Letter Spacing
{trackingLabel}
setTweak('displayTracking', Number(e.target.value))}
className="w-full"
style={{ accentColor: t.accent }}
/>
TightNormalWide
{/* Font weight */}
Heading Weight
{t.displayWeight}
{[300, 400, 500, 600, 700].map(w => (
))}
{/* Live Preview */}
Live Preview
Building Ludhiana.
Premium real estate across commercial and residential formats — designed for the long view.
Explore Projects
Learn More
{/* Current config readout */}
Current Config
{[
['Theme', t.theme],
['Accent', t.accent.toUpperCase()],
['Display Font', t.displayFont],
['Body Font', t.bodyFont],
['Tracking', trackingLabel],
['Weight', String(t.displayWeight)],
].map(([k, v]) => (
{k}
{v}
))}
{/* Actions */}
);
}
window.ConfigPage = ConfigPage;