UNPKG

zyros

Version:

A developer-friendly static site generator built with Next.js and Tailwind CSS. Transform a simple JSON file into a beautiful, fast static website.

193 lines (190 loc) 6.78 kB
export interface Theme { name: string; background: string; text: string; accent: string; secondary: string; border: string; card: string; code: string; link: string; linkHover: string; gradient?: string; shadow?: string; } export const themes: Record<string, Theme> = { light: { name: 'light', background: 'bg-white', text: 'text-gray-900', accent: 'text-blue-600', secondary: 'text-gray-600', border: 'border-gray-200', card: 'bg-gray-50/50', code: 'bg-gray-100 text-gray-800 border-gray-200', link: 'text-blue-600 hover:text-blue-700', linkHover: 'hover:text-blue-700', gradient: 'bg-gradient-to-br from-blue-50 to-indigo-100', shadow: 'shadow-lg shadow-gray-200/50', }, dark: { name: 'dark', background: 'bg-slate-900', text: 'text-slate-100', accent: 'text-blue-400', secondary: 'text-slate-400', border: 'border-slate-700', card: 'bg-slate-800/50', code: 'bg-slate-800 text-slate-200 border-slate-700', link: 'text-blue-400 hover:text-blue-300', linkHover: 'hover:text-blue-300', gradient: 'bg-gradient-to-br from-slate-900 to-slate-800', shadow: 'shadow-lg shadow-black/25', }, minimal: { name: 'minimal', background: 'bg-stone-50', text: 'text-stone-800', accent: 'text-stone-900', secondary: 'text-stone-500', border: 'border-stone-300', card: 'bg-white/80', code: 'bg-stone-100 text-stone-700 border-stone-200', link: 'text-stone-900 hover:text-stone-700', linkHover: 'hover:text-stone-700', gradient: 'bg-gradient-to-br from-stone-50 to-stone-100', shadow: 'shadow-lg shadow-stone-200/50', }, ocean: { name: 'ocean', background: 'bg-gradient-to-br from-cyan-50 to-blue-100', text: 'text-slate-800', accent: 'text-cyan-600', secondary: 'text-slate-600', border: 'border-cyan-200', card: 'bg-white/70 backdrop-blur-sm', code: 'bg-cyan-50 text-cyan-800 border-cyan-200', link: 'text-cyan-600 hover:text-cyan-700', linkHover: 'hover:text-cyan-700', gradient: 'bg-gradient-to-br from-cyan-100 to-blue-200', shadow: 'shadow-lg shadow-cyan-200/50', }, sunset: { name: 'sunset', background: 'bg-gradient-to-br from-orange-50 to-pink-100', text: 'text-slate-800', accent: 'text-orange-600', secondary: 'text-slate-600', border: 'border-orange-200', card: 'bg-white/70 backdrop-blur-sm', code: 'bg-orange-50 text-orange-800 border-orange-200', link: 'text-orange-600 hover:text-orange-700', linkHover: 'hover:text-orange-700', gradient: 'bg-gradient-to-br from-orange-100 to-pink-200', shadow: 'shadow-lg shadow-orange-200/50', }, forest: { name: 'forest', background: 'bg-gradient-to-br from-green-50 to-emerald-100', text: 'text-slate-800', accent: 'text-emerald-600', secondary: 'text-slate-600', border: 'border-emerald-200', card: 'bg-white/70 backdrop-blur-sm', code: 'bg-emerald-50 text-emerald-800 border-emerald-200', link: 'text-emerald-600 hover:text-emerald-700', linkHover: 'hover:text-emerald-700', gradient: 'bg-gradient-to-br from-emerald-100 to-green-200', shadow: 'shadow-lg shadow-emerald-200/50', }, midnight: { name: 'midnight', background: 'bg-gradient-to-br from-slate-900 via-purple-900 to-slate-900', text: 'text-slate-100', accent: 'text-purple-400', secondary: 'text-slate-400', border: 'border-purple-800', card: 'bg-slate-800/50 backdrop-blur-sm', code: 'bg-slate-800 text-purple-200 border-purple-700', link: 'text-purple-400 hover:text-purple-300', linkHover: 'hover:text-purple-300', gradient: 'bg-gradient-to-br from-purple-900 to-slate-900', shadow: 'shadow-lg shadow-purple-900/25', }, neon: { name: 'neon', background: 'bg-black', text: 'text-green-400', accent: 'text-cyan-400', secondary: 'text-green-300', border: 'border-green-500', card: 'bg-gray-900/80 backdrop-blur-sm border border-green-500/30', code: 'bg-gray-900 text-green-400 border-green-500', link: 'text-cyan-400 hover:text-cyan-300', linkHover: 'hover:text-cyan-300', gradient: 'bg-gradient-to-br from-gray-900 to-black', shadow: 'shadow-lg shadow-green-500/25', }, aurora: { name: 'aurora', background: 'bg-gradient-to-br from-indigo-900 via-purple-900 to-pink-900', text: 'text-white', accent: 'text-pink-300', secondary: 'text-purple-200', border: 'border-purple-500', card: 'bg-white/10 backdrop-blur-lg border border-white/20', code: 'bg-purple-900/50 text-purple-100 border-purple-400', link: 'text-pink-300 hover:text-pink-200', linkHover: 'hover:text-pink-200', gradient: 'bg-gradient-to-br from-purple-800 to-pink-800', shadow: 'shadow-lg shadow-purple-500/25', }, autumn: { name: 'autumn', background: 'bg-gradient-to-br from-amber-50 to-orange-100', text: 'text-amber-900', accent: 'text-red-700', secondary: 'text-amber-700', border: 'border-amber-300', card: 'bg-white/70 backdrop-blur-sm', code: 'bg-amber-100 text-amber-800 border-amber-300', link: 'text-red-700 hover:text-red-800', linkHover: 'hover:text-red-800', gradient: 'bg-gradient-to-br from-amber-200 to-orange-300', shadow: 'shadow-lg shadow-amber-200/50', }, cyberpunk: { name: 'cyberpunk', background: 'bg-black', text: 'text-cyan-300', accent: 'text-magenta-400', secondary: 'text-cyan-400', border: 'border-cyan-500', card: 'bg-gray-900/90 backdrop-blur-sm border border-cyan-500/30', code: 'bg-gray-800 text-cyan-300 border-cyan-500', link: 'text-magenta-400 hover:text-magenta-300', linkHover: 'hover:text-magenta-300', gradient: 'bg-gradient-to-br from-gray-900 to-black', shadow: 'shadow-lg shadow-cyan-500/25', }, sakura: { name: 'sakura', background: 'bg-gradient-to-br from-pink-50 to-rose-100', text: 'text-rose-900', accent: 'text-pink-700', secondary: 'text-rose-600', border: 'border-pink-200', card: 'bg-white/80 backdrop-blur-sm', code: 'bg-pink-50 text-pink-800 border-pink-200', link: 'text-pink-700 hover:text-pink-800', linkHover: 'hover:text-pink-800', gradient: 'bg-gradient-to-br from-pink-100 to-rose-200', shadow: 'shadow-lg shadow-pink-200/50', }, }; export function getTheme(themeName: string): Theme { return themes[themeName] || themes.light; } export function getThemeNames(): string[] { return Object.keys(themes); }