diff --git a/src/lib/themes.ts b/src/lib/themes.ts new file mode 100644 index 0000000..d8386ad --- /dev/null +++ b/src/lib/themes.ts @@ -0,0 +1,131 @@ +/** + * Site Theme Library + * + * Pre-built color schemes and header/footer templates for different industries. + * Use these when creating new sites via API. + */ + +export const SITE_THEMES = { + // Purple Gradient (Default) + purple_gradient: { + name: "Purple Gradient", + industry: "General / Tech", + header: ``, + footer: ``, + primary_color: "#667eea" + }, + + // Midnight Royal (Luxury) + midnight_royal: { + name: "Midnight Royal", + industry: "Luxury / High-End", + header: ``, + footer: ``, + primary_color: "#1a2a6c" + }, + + // Clean Mint (Trust/Health) + clean_mint: { + name: "Clean Mint", + industry: "Health / Wellness", + header: ``, + footer: ``, + primary_color: "#00b09b" + }, + + // Slate Modern (Corporate/Tech) + slate_modern: { + name: "Slate Modern", + industry: "Corporate / Tech", + header: ``, + footer: ``, + primary_color: "#3498db" + }, + + // Modern Estate (Real Estate) + modern_estate: { + name: "Modern Estate", + industry: "Real Estate", + header: ``, + footer: ``, + primary_color: "#1e293b" + }, + + // Impact Orange (Non-Profit) + impact_orange: { + name: "Impact Orange", + industry: "Non-Profit / Charity", + header: ``, + footer: ``, + primary_color: "#f97316" + }, + + // Solar Flux (Solar/Energy) + solar_flux: { + name: "Solar Flux", + industry: "Solar / Energy", + header: ``, + footer: ``, + primary_color: "#3b82f6" + }, + + // Arctic Flow (HVAC) + arctic_flow: { + name: "Arctic Flow", + industry: "HVAC / Mechanical", + header: ``, + footer: ``, + primary_color: "#0ea5e9" + } +}; + +/** + * Get theme config for a site + */ +export function getTheme(themeName: keyof typeof SITE_THEMES) { + return SITE_THEMES[themeName]; +} + +/** + * List all available themes + */ +export function listThemes() { + return Object.entries(SITE_THEMES).map(([key, theme]) => ({ + key, + name: theme.name, + industry: theme.industry, + primaryColor: theme.primary_color + })); +} + +/** + * Generate site config JSON for a theme + */ +export function generateSiteConfig(themeName: keyof typeof SITE_THEMES, brandName?: string) { + const theme = SITE_THEMES[themeName]; + + // Replace default brand name if provided + let header = theme.header; + let footer = theme.footer; + + if (brandName) { + // Replace common brand names in templates + const brandNames = [ + 'Aesthetic Help', 'Luxury Aesthetics', 'Health Solutions', + 'Tech Solutions', 'Elite Properties', 'United Cause', + 'SolarMax Systems', 'Hot & Cold Pros' + ]; + + brandNames.forEach(defaultName => { + header = header.replace(new RegExp(defaultName, 'g'), brandName); + footer = footer.replace(new RegExp(defaultName, 'g'), brandName); + }); + } + + return { + header, + footer, + primary_color: theme.primary_color, + custom_css: '' + }; +}