export const DIGITAL_VISUAL_THEME_IDS = ["theme1", "theme2"] as const; export type DigitalVisualThemeId = (typeof DIGITAL_VISUAL_THEME_IDS)[number]; export interface DigitalVisualThemeConfig { id: DigitalVisualThemeId; className: string; name: string; description: string; cssVars: Record<`--dn-${string}`, string>; } function isDigitalVisualThemeId(value: string): value is DigitalVisualThemeId { return DIGITAL_VISUAL_THEME_IDS.includes(value as DigitalVisualThemeId); } const requestedDigitalVisualTheme = process.env.NEXT_PUBLIC_DIGITAL_VISUAL_THEME || ""; export const CURRENT_DIGITAL_VISUAL_THEME: DigitalVisualThemeId = isDigitalVisualThemeId(requestedDigitalVisualTheme) ? requestedDigitalVisualTheme : "theme2"; export const DIGITAL_VISUAL_THEME_CONFIGS: Record< DigitalVisualThemeId, DigitalVisualThemeConfig > = { theme1: { id: "theme1", className: "digital-theme-theme1", name: "Original", description: "保留原始数字游民站点视觉样式。", cssVars: { "--dn-bg": "#ffffff", "--dn-bg-soft": "#f8fafc", "--dn-surface": "#ffffff", "--dn-surface-raised": "#ffffff", "--dn-text": "#0f172a", "--dn-text-muted": "#64748b", "--dn-border": "#e2e8f0", "--dn-primary": "#0ea5e9", "--dn-primary-strong": "#0284c7", "--dn-accent": "#f59e0b", "--dn-cta": "#0ea5e9", "--dn-cta-strong": "#0284c7", "--dn-radius": "1rem", "--dn-radius-sm": "0.5rem", "--dn-shadow": "0 2px 8px rgba(15, 23, 42, 0.06)", "--dn-shadow-hover": "0 12px 40px rgba(15, 23, 42, 0.1)", "--dn-font-display": "var(--font-geist-sans)", "--dn-font-body": "var(--font-geist-sans)", }, }, theme2: { id: "theme2", className: "digital-theme-theme2", name: "NomadCNA Home", description: "沿用 Nomadro 首页的品牌视觉:暖色 CTA、轻卡片、白灰背景与社区感信息层级。", cssVars: { "--dn-bg": "#fafafa", "--dn-bg-soft": "#f5f6f7", "--dn-surface": "#ffffff", "--dn-surface-raised": "#ffffff", "--dn-text": "#111827", "--dn-text-muted": "#6b7280", "--dn-border": "#f3f4f6", "--dn-primary": "#ff4d4f", "--dn-primary-strong": "#ff3333", "--dn-accent": "#ff7a45", "--dn-cta": "#ff4d4f", "--dn-cta-strong": "#ff7a45", "--dn-radius": "1rem", "--dn-radius-sm": "0.5rem", "--dn-shadow": "0 2px 8px rgba(0, 0, 0, 0.06), 0 0 0 1px rgba(0, 0, 0, 0.03)", "--dn-shadow-hover": "0 8px 24px rgba(0, 0, 0, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.04)", "--dn-font-display": "var(--font-geist-sans)", "--dn-font-body": "var(--font-geist-sans)", }, }, }; export function getDigitalVisualThemeConfig(): DigitalVisualThemeConfig { return DIGITAL_VISUAL_THEME_CONFIGS[CURRENT_DIGITAL_VISUAL_THEME]; }