diff --git a/src/themes/claude/Home.jsx b/src/themes/claude/Home.jsx index ae2de0f..de51f3a 100644 --- a/src/themes/claude/Home.jsx +++ b/src/themes/claude/Home.jsx @@ -6,11 +6,6 @@ import { useSite } from '../../context/SiteContext'; import { getSiteModels, getSitePackages } from '../../api'; import CountUp from '../../components/bits/CountUp'; import FadeContent from '../../components/bits/FadeContent'; -import GradientText from '../../components/bits/GradientText'; -import BlurText from '../../components/bits/BlurText'; -import ShinyText from '../../components/bits/ShinyText'; -import SpotlightCard from '../../components/bits/SpotlightCard'; -import StarBorder from '../../components/bits/StarBorder'; export default function ClaudeHome() { const { t } = useTranslation(); @@ -27,143 +22,83 @@ export default function ClaudeHome() { const enabledModels = models.filter(m => m.enabled !== false); return ( -
- {/* Hero */} -
- {/* Warm gradient background */} -
-
-
+
+ {/* Hero — warm, editorial */} +
+ +
+

+ {site?.name || t('home.defaultHeroTitle')} +

+

+ {t('home.heroSubtitle')} +

-
- -
- {/* Badge */} -
- - -
- - {/* Title */} -

- - {site?.name || t('home.defaultHeroTitle')} - -

- - {/* Subtitle */} -
- -
- - {/* CTA Buttons */} -
- {user ? ( - - - {t('home.goToDashboard')} → - +
+ {user ? ( + + {t('home.goToDashboard')} → + + ) : ( + <> + + {t('home.getStarted')} - ) : ( - <> - - {t('home.getStarted')} → - - - {t('home.viewPricing')} - - - )} -
+ + {t('home.viewPricing')} → + + + )}
- +
+
- {/* Stats */} - -
-
-
- + -
-

{t('home.aiModels')}

-
-
-
- % -
-

{t('home.uptime')}

-
-
-
- <ms -
-

{t('home.latency')}

+ {/* Stats */} + +
+
+
+ +
+

{t('home.aiModels')}

- -
+
+
+ % +
+

{t('home.uptime')}

+
+
+
+ <ms +
+

{t('home.latency')}

+
+
+
{/* Features */} -
-
- -
-

{t('home.whyChooseUs')}

-

{t('home.whyChooseUsDesc')}

-
+
+
+ +

{t('home.whyChooseUs')}

+

{t('home.whyChooseUsDesc')}

-
- -
-
- - - +
+ {[ + { title: t('home.lightningFast'), desc: t('home.lightningFastDesc') }, + { title: t('home.securePrivate'), desc: t('home.securePrivateDesc') }, + { title: t('home.payAsYouGo'), desc: t('home.payAsYouGoDesc') }, + ].map((f, i) => ( +
+ 0{i + 1} +
+

{f.title}

+

{f.desc}

-

{t('home.lightningFast')}

-

{t('home.lightningFastDesc')}

- - - -
-
- - - -
-

{t('home.securePrivate')}

-

{t('home.securePrivateDesc')}

-
-
- - -
-
- - - -
-

{t('home.payAsYouGo')}

-

{t('home.payAsYouGoDesc')}

-
-
+ ))}
@@ -171,115 +106,88 @@ export default function ClaudeHome() { {/* Models */} {enabledModels.length > 0 && ( -
- -
-

{t('home.availableModels')}

-

{t('home.availableModelsDesc', { count: enabledModels.length })}

+
+ +
+
+

{t('home.availableModels')}

+

{t('home.availableModelsDesc', { count: enabledModels.length })}

+
+ {enabledModels.length > 8 && ( + + {t('home.viewAllModels', { count: enabledModels.length })} → + + )}
-
- {enabledModels.slice(0, 12).map((m, i) => ( -
-
- - {m.display_name || m.model_name} - +
+ {enabledModels.slice(0, 8).map((m, i) => ( +
+ {m.display_name || m.model_name}
))}
- - {enabledModels.length > 12 && ( -
- - {t('home.viewAllModels', { count: enabledModels.length })} → - -
- )}
)} {/* Packages */} {packages.length > 0 && ( -
-
- -
-

{t('home.plansPackages')}

-

{t('home.choosePlan')}

-
+
+ +

{t('home.plansPackages')}

+

{t('home.choosePlan')}

-
- {packages.filter(p => p.enabled).slice(0, 3).map((pkg, i) => ( - -
- {i === 1 && ( - - - Popular - - )} -

{pkg.name}

- {pkg.description &&

{pkg.description}

} -
-
- ${pkg.price} - {pkg.original_price > pkg.price && ( - ${pkg.original_price} - )} -
- {pkg.duration > 0 &&

{t('home.days', { count: pkg.duration })}

} -
- - {user ? t('home.subscribe') : t('home.getStarted')} - -
-
- ))} -
-
-
+
+ {packages.filter(p => p.enabled).slice(0, 3).map((pkg, i) => ( +
+ {i === 1 && {t('home.popular') || 'Popular'}} +

{pkg.name}

+ {pkg.description &&

{pkg.description}

} +
+ ${pkg.price} + {pkg.original_price > pkg.price && ( + ${pkg.original_price} + )} + {pkg.duration > 0 &&

{t('home.days', { count: pkg.duration })}

} +
+ + {user ? t('home.subscribe') : t('home.getStarted')} + +
+ ))} +
+
)} {/* CTA */} -
- -
- {/* Decorative elements */} -
-
- -
-

{t('home.readyToStart')}

-

{t('home.readyToStartDesc')}

-
- {user ? ( - - {t('home.goToDashboard')} +
+ +
+

{t('home.readyToStart')}

+

{t('home.readyToStartDesc')}

+
+ {user ? ( + + {t('home.goToDashboard')} → + + ) : ( + <> + + {t('home.createFreeAccount')} → - ) : ( - <> - - {t('home.createFreeAccount')} - - - {t('home.signIn')} - - - )} -
+ + {t('home.signIn')} + + + )}
diff --git a/src/themes/clean/Home.jsx b/src/themes/clean/Home.jsx index b4e965c..fc01131 100644 --- a/src/themes/clean/Home.jsx +++ b/src/themes/clean/Home.jsx @@ -6,10 +6,6 @@ import { useSite } from '../../context/SiteContext'; import { getSiteModels, getSitePackages } from '../../api'; import CountUp from '../../components/bits/CountUp'; import FadeContent from '../../components/bits/FadeContent'; -import ShinyText from '../../components/bits/ShinyText'; -import BlurText from '../../components/bits/BlurText'; -import SpotlightCard from '../../components/bits/SpotlightCard'; -import StarBorder from '../../components/bits/StarBorder'; export default function CleanHome() { const { t } = useTranslation(); @@ -26,49 +22,31 @@ export default function CleanHome() { const enabledModels = models.filter(m => m.enabled !== false); return ( -
+
{/* Hero */} -
- +
+
-
- - -
- -

- +

{t('home.heroTagline') || 'AI API Platform'}

+

+ {site?.name || t('home.defaultHeroTitle')}

- -

+

{t('home.heroSubtitle')}

-
+
{user ? ( - - - {t('home.goToDashboard')} → - + + {t('home.goToDashboard')} → ) : ( <> - {t('home.getStarted')} → + {t('home.getStarted')} - - {t('home.viewPricing')} + + {t('home.viewPricing')} → )} @@ -77,176 +55,148 @@ export default function CleanHome() { {/* Stats */} - -
+ +
-
+
+
-

{t('home.aiModels')}

+

{t('home.aiModels')}

-
+
%
-

{t('home.uptime')}

+

{t('home.uptime')}

-
+
<ms
-

{t('home.latency')}

+

{t('home.latency')}

{/* Features */} -
-
- -
-

{t('home.whyChooseUs')}

-

{t('home.whyChooseUsDesc')}

-
+
+ +
+

{t('home.whyChooseUs')}

+

{t('home.whyChooseUsDesc')}

+
-
- -
-
- - - -
-

{t('home.lightningFast')}

-

{t('home.lightningFastDesc')}

+
+ {[ + { title: t('home.lightningFast'), desc: t('home.lightningFastDesc'), color: 'blue', icon: ( + + + + )}, + { title: t('home.securePrivate'), desc: t('home.securePrivateDesc'), color: 'indigo', icon: ( + + + + )}, + { title: t('home.payAsYouGo'), desc: t('home.payAsYouGoDesc'), color: 'emerald', icon: ( + + + + )}, + ].map((f, i) => ( +
+
+ {f.icon}
- - - -
-
- - - -
-

{t('home.securePrivate')}

-

{t('home.securePrivateDesc')}

-
-
- - -
-
- - - -
-

{t('home.payAsYouGo')}

-

{t('home.payAsYouGoDesc')}

-
-
-
- -
+

{f.title}

+

{f.desc}

+
+ ))} +
+
{/* Models */} {enabledModels.length > 0 && ( -
- -
-

{t('home.availableModels')}

-

{t('home.availableModelsDesc', { count: enabledModels.length })}

+
+ +
+
+

{t('home.availableModels')}

+

{t('home.availableModelsDesc', { count: enabledModels.length })}

+
+ {enabledModels.length > 8 && ( + + {t('home.viewAllModels', { count: enabledModels.length })} → + + )}
-
- {enabledModels.slice(0, 12).map((m, i) => ( -
-
- - {m.display_name || m.model_name} - +
+ {enabledModels.slice(0, 8).map((m, i) => ( +
+ {m.display_name || m.model_name}
))}
- - {enabledModels.length > 12 && ( -
- - {t('home.viewAllModels', { count: enabledModels.length })} → - -
- )}
)} {/* Packages */} {packages.length > 0 && ( -
-
- -
-

{t('home.plansPackages')}

-

{t('home.choosePlan')}

-
+
+ +

{t('home.plansPackages')}

+

{t('home.choosePlan')}

-
- {packages.filter(p => p.enabled).slice(0, 3).map((pkg, i) => ( - -
- {i === 1 && Popular} -

{pkg.name}

- {pkg.description &&

{pkg.description}

} -
-
- ${pkg.price} - {pkg.original_price > pkg.price && ( - ${pkg.original_price} - )} -
- {pkg.duration > 0 &&

{t('home.days', { count: pkg.duration })}

} -
- - {user ? t('home.subscribe') : t('home.getStarted')} - -
-
- ))} -
-
-
+
+ {packages.filter(p => p.enabled).slice(0, 3).map((pkg, i) => ( +
+ {i === 1 && {t('home.popular') || 'Popular'}} +

{pkg.name}

+ {pkg.description &&

{pkg.description}

} +
+ ${pkg.price} + {pkg.original_price > pkg.price && ( + ${pkg.original_price} + )} + {pkg.duration > 0 &&

{t('home.days', { count: pkg.duration })}

} +
+ + {user ? t('home.subscribe') : t('home.getStarted')} + +
+ ))} +
+
)} {/* CTA */} -
- -
-

{t('home.readyToStart')}

-

{t('home.readyToStartDesc')}

+
+ +
+

{t('home.readyToStart')}

+

{t('home.readyToStartDesc')}

{user ? ( - - {t('home.goToDashboard')} + + {t('home.goToDashboard')} → ) : ( <> - - {t('home.createFreeAccount')} + + {t('home.createFreeAccount')} → - + {t('home.signIn')} diff --git a/src/themes/corporate/Home.jsx b/src/themes/corporate/Home.jsx index 1fb9f9e..e8a2eb7 100644 --- a/src/themes/corporate/Home.jsx +++ b/src/themes/corporate/Home.jsx @@ -6,9 +6,6 @@ import { useSite } from '../../context/SiteContext'; import { getSiteModels, getSitePackages } from '../../api'; import CountUp from '../../components/bits/CountUp'; import FadeContent from '../../components/bits/FadeContent'; -import GradientText from '../../components/bits/GradientText'; -import SpotlightCard from '../../components/bits/SpotlightCard'; -import ShinyText from '../../components/bits/ShinyText'; export default function CorporateHome() { const { t } = useTranslation(); @@ -25,131 +22,95 @@ export default function CorporateHome() { const enabledModels = models.filter(m => m.enabled !== false); return ( -
- {/* Hero */} -
-
-
-
- -
-
- - -
+
+ {/* Hero — left-aligned, formal */} +
+ +
+

+ {site?.name || t('home.defaultHeroTitle')} +

+

+ {t('home.heroSubtitle')} +

-

- - {site?.name || t('home.defaultHeroTitle')} - -

- -

- {t('home.heroSubtitle')} -

- -
- {user ? ( - - {t('home.goToDashboard')} - +
+ {user ? ( + + {t('home.goToDashboard')} → + + ) : ( + <> + + {t('home.getStarted')} - ) : ( - <> - - {t('home.getStarted')} - - - - {t('home.viewPricing')} - - - )} -
+ + {t('home.viewPricing')} → + + + )}
- +
+
- {/* Stats bar */} - -
-
-
- + -
-

{t('home.aiModels')}

-
-
-
- % -
-

{t('home.uptime')}

-
-
-
- <ms -
-

{t('home.latency')}

+ {/* Stats — horizontal bar */} + +
+
+
+ +
+

{t('home.aiModels')}

- -
+
+
+ % +
+

{t('home.uptime')}

+
+
+
+ <ms +
+

{t('home.latency')}

+
+
+
{/* Features */} -
-
- -
-

{t('home.whyChooseUs')}

-

{t('home.whyChooseUsDesc')}

-
+
+
+ +

{t('home.whyChooseUs')}

+

{t('home.whyChooseUsDesc')}

-
- -
-
- - - +
+ {[ + { title: t('home.lightningFast'), desc: t('home.lightningFastDesc'), icon: ( + + + + )}, + { title: t('home.securePrivate'), desc: t('home.securePrivateDesc'), icon: ( + + + + )}, + { title: t('home.payAsYouGo'), desc: t('home.payAsYouGoDesc'), icon: ( + + + + )}, + ].map((f, i) => ( +
+
+ {f.icon}
-

{t('home.lightningFast')}

-

{t('home.lightningFastDesc')}

+

{f.title}

+

{f.desc}

- - - -
-
- - - -
-

{t('home.securePrivate')}

-

{t('home.securePrivateDesc')}

-
-
- - -
-
- - - -
-

{t('home.payAsYouGo')}

-

{t('home.payAsYouGoDesc')}

-
-
+ ))}
@@ -157,121 +118,91 @@ export default function CorporateHome() { {/* Models */} {enabledModels.length > 0 && ( -
- -
-

{t('home.availableModels')}

-

{t('home.availableModelsDesc', { count: enabledModels.length })}

+
+ +
+
+

{t('home.availableModels')}

+

{t('home.availableModelsDesc', { count: enabledModels.length })}

+
+ {enabledModels.length > 8 && ( + + {t('home.viewAllModels', { count: enabledModels.length })} → + + )}
-
- {enabledModels.slice(0, 12).map((m, i) => ( -
-
- - {m.display_name || m.model_name} - +
+ {enabledModels.slice(0, 8).map((m, i) => ( +
+ {m.display_name || m.model_name}
))}
- - {enabledModels.length > 12 && ( -
- - {t('home.viewAllModels', { count: enabledModels.length })} - - -
- )}
)} {/* Packages */} {packages.length > 0 && ( -
-
- -
-

{t('home.plansPackages')}

-

{t('home.choosePlan')}

-
+
+ +

{t('home.plansPackages')}

+

{t('home.choosePlan')}

-
- {packages.filter(p => p.enabled).slice(0, 3).map((pkg, i) => ( - -
- {i === 1 && ( -
- Popular -
- )} -
-

{pkg.name}

- {pkg.description &&

{pkg.description}

} -
-
- ${pkg.price} - {pkg.original_price > pkg.price && ( - ${pkg.original_price} - )} -
- {pkg.duration > 0 &&

{t('home.days', { count: pkg.duration })}

} -
-
-
- - {user ? t('home.subscribe') : t('home.getStarted')} - -
-
-
- ))} -
-
-
+
+ {packages.filter(p => p.enabled).slice(0, 3).map((pkg, i) => ( +
+ {i === 1 && {t('home.popular') || 'Popular'}} +

{pkg.name}

+ {pkg.description &&

{pkg.description}

} +
+ ${pkg.price} + {pkg.original_price > pkg.price && ( + ${pkg.original_price} + )} + {pkg.duration > 0 &&

{t('home.days', { count: pkg.duration })}

} +
+ + {user ? t('home.subscribe') : t('home.getStarted')} + +
+ ))} +
+
)} {/* CTA */} -
- -
-
-
-

{t('home.readyToStart')}

-

{t('home.readyToStartDesc')}

-
- {user ? ( - - {t('home.goToDashboard')} - +
+
+ +

{t('home.readyToStart')}

+

{t('home.readyToStartDesc')}

+
+ {user ? ( + + {t('home.goToDashboard')} → + + ) : ( + <> + + {t('home.createFreeAccount')} → - ) : ( - <> - - {t('home.createFreeAccount')} - - - - {t('home.signIn')} - - - )} -
+ + {t('home.signIn')} + + + )}
-
- + +
); diff --git a/src/themes/dark/Home.jsx b/src/themes/dark/Home.jsx index 43a611d..4addecc 100644 --- a/src/themes/dark/Home.jsx +++ b/src/themes/dark/Home.jsx @@ -4,9 +4,8 @@ import { useTranslation } from 'react-i18next'; import { useAuth } from '../../context/AuthContext'; import { useSite } from '../../context/SiteContext'; import { getSiteModels, getSitePackages } from '../../api'; -import Particles from '../../components/bits/Particles'; -import DecryptedText from '../../components/bits/DecryptedText'; import CountUp from '../../components/bits/CountUp'; +import FadeContent from '../../components/bits/FadeContent'; export default function DarkHome() { const { t } = useTranslation(); @@ -24,200 +23,177 @@ export default function DarkHome() { return (
- {/* Particles Background */} -
- -
+ {/* Hero — left-aligned, elegant dark */} +
+ +
+
+ + {t('home.heroTagline') || 'All Systems Operational'} +
- {/* Hero Section */} -
-
- {/* Terminal badge */} -
- - System Online -
+

+ {site?.name || t('home.defaultHeroTitle')} +

+

+ {t('home.heroSubtitle')} +

-

- -

- -

- {'> '} - {t('home.heroSubtitle')} -

- -
- {user ? ( - - {t('home.goToDashboard')} - - ) : ( - <> - - {t('home.getStarted')} +
+ {user ? ( + + {t('home.goToDashboard')} → - - {t('home.viewPricing')} - - - )} + ) : ( + <> + + {t('home.getStarted')} + + + {t('home.viewPricing')} → + + + )} +
-
+ {/* Stats */} -
- {[ - { label: t('home.aiModels'), value: enabledModels.length || 50, suffix: '+', color: 'text-emerald-400', border: 'border-emerald-500/15' }, - { label: t('home.uptime'), value: 99.9, suffix: '%', color: 'text-cyan-400', border: 'border-cyan-500/15' }, - { label: t('home.latency'), value: 50, suffix: 'ms', prefix: '<', color: 'text-violet-400', border: 'border-violet-500/15' }, - ].map((s, i) => ( -
-
- {s.prefix}{s.suffix} + +
+
+
+ +
-

{s.label}

+

{t('home.aiModels')}

- ))} -
-
- - {/* Features Section */} -
-
-

{t('home.whyChooseUs')}

-

{t('home.whyChooseUsDesc')}

-
- -
- {[ - { icon: ( - - - - ), title: t('home.lightningFast'), desc: t('home.lightningFastDesc'), accent: 'emerald' }, - { icon: ( - - - - ), title: t('home.securePrivate'), desc: t('home.securePrivateDesc'), accent: 'cyan' }, - { icon: ( - - - - ), title: t('home.payAsYouGo'), desc: t('home.payAsYouGoDesc'), accent: 'violet' }, - ].map((f, i) => ( -
-
- {f.icon} +
+
+ %
-

{f.title}

-

{f.desc}

-
+

{t('home.uptime')}

+
+
+
+ <ms +
+

{t('home.latency')}

- ))} -
-
- - {/* Models Preview */} - {enabledModels.length > 0 && ( -
-
-

{t('home.availableModels')}

-

{t('home.availableModelsDesc', { count: enabledModels.length })}

+ +
-
- {enabledModels.slice(0, 12).map((m, i) => ( -
- $ - - {m.display_name || m.model_name} - + {/* Features */} +
+ +

{t('home.whyChooseUs')}

+

{t('home.whyChooseUsDesc')}

+ +
+ {[ + { title: t('home.lightningFast'), desc: t('home.lightningFastDesc'), accent: 'emerald' }, + { title: t('home.securePrivate'), desc: t('home.securePrivateDesc'), accent: 'cyan' }, + { title: t('home.payAsYouGo'), desc: t('home.payAsYouGoDesc'), accent: 'violet' }, + ].map((f, i) => ( +
+ 0{i + 1} +
+

{f.title}

+

{f.desc}

+
))}
+
+
- {enabledModels.length > 12 && ( -
- - {t('home.viewAllModels', { count: enabledModels.length })} → - + {/* Models */} + {enabledModels.length > 0 && ( +
+ +
+
+

{t('home.availableModels')}

+

{t('home.availableModelsDesc', { count: enabledModels.length })}

+
+ {enabledModels.length > 8 && ( + + {t('home.viewAllModels', { count: enabledModels.length })} → + + )}
- )} + +
+ {enabledModels.slice(0, 8).map((m, i) => ( +
+ {m.display_name || m.model_name} +
+ ))} +
+
)} {/* Packages */} {packages.length > 0 && ( -
-
-

{t('home.plansPackages')}

-

{t('home.choosePlan')}

-
+
+ +

{t('home.plansPackages')}

+

{t('home.choosePlan')}

-
- {packages.filter(p => p.enabled).slice(0, 3).map((pkg) => ( -
-

{pkg.name}

- {pkg.description &&

{pkg.description}

} -
- ${pkg.price} - {pkg.original_price > pkg.price && ( - ${pkg.original_price} - )} - {pkg.duration > 0 &&

{t('home.days', { count: pkg.duration })}

} +
+ {packages.filter(p => p.enabled).slice(0, 3).map((pkg, i) => ( +
+ {i === 1 && {t('home.popular') || 'Popular'}} +

{pkg.name}

+ {pkg.description &&

{pkg.description}

} +
+ ${pkg.price} + {pkg.original_price > pkg.price && ( + ${pkg.original_price} + )} + {pkg.duration > 0 &&

{t('home.days', { count: pkg.duration })}

} +
+ + {user ? t('home.subscribe') : t('home.getStarted')} +
- - {user ? t('home.subscribe') : t('home.getStarted')} - -
- ))} -
+ ))} +
+
)} {/* CTA */} -
-
-
-
-

{t('home.readyToStart')}

-

{t('home.readyToStartDesc')}

+
+ +
+

{t('home.readyToStart')}

+

{t('home.readyToStartDesc')}

{user ? ( - - {t('home.goToDashboard')} + + {t('home.goToDashboard')} → ) : ( <> - - {t('home.createFreeAccount')} + + {t('home.createFreeAccount')} → - + {t('home.signIn')} )}
-
+
); diff --git a/src/themes/default/Home.jsx b/src/themes/default/Home.jsx index b7faef6..902d547 100644 --- a/src/themes/default/Home.jsx +++ b/src/themes/default/Home.jsx @@ -4,11 +4,8 @@ import { useTranslation } from 'react-i18next'; import { useAuth } from '../../context/AuthContext'; import { useSite } from '../../context/SiteContext'; import { getSiteModels, getSitePackages } from '../../api'; -import Aurora from '../../components/bits/Aurora'; -import SplitText from '../../components/bits/SplitText'; -import RotatingText from '../../components/bits/RotatingText'; -import SpotlightCard from '../../components/bits/SpotlightCard'; import CountUp from '../../components/bits/CountUp'; +import FadeContent from '../../components/bits/FadeContent'; export default function DefaultHome() { const { t } = useTranslation(); @@ -26,205 +23,186 @@ export default function DefaultHome() { return (
- {/* Aurora Background */} -
- + {/* Subtle gradient */} +
+
+
- {/* Hero Section */} -
-
-
-

- + {/* Hero — centered, editorial */} +
+ +
+

+ {site?.name || t('home.defaultHeroTitle')}

-
+

+ {t('home.heroSubtitle')} +

-

- {t('home.heroSubtitle')} -

- -
- -
- -
- {user ? ( - - {t('home.goToDashboard')} - - ) : ( - <> - - {t('home.getStarted')} - - - {t('home.viewPricing')} - - - )} -
-

- - {/* Stats */} -
- {[ - { value: enabledModels.length || 50, suffix: '+', label: t('home.aiModels') }, - { value: 99.9, suffix: '%', label: t('home.uptime') }, - { value: 50, suffix: 'ms', label: t('home.latency'), prefix: '<' }, - ].map((stat, i) => ( -
-
- {stat.prefix}{stat.suffix} -
-

{stat.label}

-
- ))} -
-
- - {/* Features Section */} -
-
-

{t('home.whyChooseUs')}

-

{t('home.whyChooseUsDesc')}

-
- -
- -
-
- - - -
-

{t('home.lightningFast')}

-

{t('home.lightningFastDesc')}

-
-
- - -
-
- - - -
-

{t('home.securePrivate')}

-

{t('home.securePrivateDesc')}

-
-
- - -
-
- - - -
-

{t('home.payAsYouGo')}

-

{t('home.payAsYouGoDesc')}

-
-
-
-
- - {/* Models Preview */} - {enabledModels.length > 0 && ( -
-
-

{t('home.availableModels')}

-

{t('home.availableModelsDesc', { count: enabledModels.length })}

-
- -
- {enabledModels.slice(0, 12).map((m, i) => ( -
-
- - {m.display_name || m.model_name} - -
- ))} -
- - {enabledModels.length > 12 && ( -
- - {t('home.viewAllModels', { count: enabledModels.length })} → - -
- )} -
- )} - - {/* Packages Preview */} - {packages.length > 0 && ( -
-
-

{t('home.plansPackages')}

-

{t('home.choosePlan')}

-
- -
- {packages.filter(p => p.enabled).slice(0, 3).map((pkg, i) => ( -
- {i === 1 && {t('home.popular') || 'Popular'}} -

{pkg.name}

- {pkg.description &&

{pkg.description}

} -
-
- ${pkg.price} - {pkg.original_price > pkg.price && ( - ${pkg.original_price} - )} -
- {pkg.duration > 0 &&

{t('home.days', { count: pkg.duration })}

} -
- - {user ? t('home.subscribe') : t('home.getStarted')} - -
- ))} -
-
- )} - - {/* CTA Section */} -
-
-
-

{t('home.readyToStart')}

-

{t('home.readyToStartDesc')}

-
+
{user ? ( - + {t('home.goToDashboard')} ) : ( <> - + + {t('home.getStarted')} + + + {t('home.viewPricing')} + + + )} +
+
+ + + {/* Stats */} + +
+ {[ + { value: enabledModels.length || 50, suffix: '+', label: t('home.aiModels') }, + { value: 99.9, suffix: '%', label: t('home.uptime') }, + { value: 50, suffix: 'ms', label: t('home.latency'), prefix: '<' }, + ].map((stat, i) => ( +
+
+ {stat.prefix}{stat.suffix} +
+

{stat.label}

+
+ ))} +
+
+
+ + {/* Features */} +
+ +
+

{t('home.whyChooseUs')}

+

{t('home.whyChooseUsDesc')}

+
+ +
+ {[ + { title: t('home.lightningFast'), desc: t('home.lightningFastDesc'), color: 'violet', icon: ( + + + + )}, + { title: t('home.securePrivate'), desc: t('home.securePrivateDesc'), color: 'blue', icon: ( + + + + )}, + { title: t('home.payAsYouGo'), desc: t('home.payAsYouGoDesc'), color: 'cyan', icon: ( + + + + )}, + ].map((f, i) => ( +
+
+ {f.icon} +
+

{f.title}

+

{f.desc}

+
+ ))} +
+
+
+ + {/* Models */} + {enabledModels.length > 0 && ( +
+ +
+
+

{t('home.availableModels')}

+

{t('home.availableModelsDesc', { count: enabledModels.length })}

+
+ {enabledModels.length > 8 && ( + + {t('home.viewAllModels', { count: enabledModels.length })} → + + )} +
+ +
+ {enabledModels.slice(0, 8).map((m, i) => ( +
+ {m.display_name || m.model_name} +
+ ))} +
+
+
+ )} + + {/* Packages */} + {packages.length > 0 && ( +
+ +

{t('home.plansPackages')}

+

{t('home.choosePlan')}

+ +
+ {packages.filter(p => p.enabled).slice(0, 3).map((pkg, i) => ( +
+ {i === 1 && {t('home.popular') || 'Popular'}} +

{pkg.name}

+ {pkg.description &&

{pkg.description}

} +
+ ${pkg.price} + {pkg.original_price > pkg.price && ( + ${pkg.original_price} + )} + {pkg.duration > 0 &&

{t('home.days', { count: pkg.duration })}

} +
+ + {user ? t('home.subscribe') : t('home.getStarted')} + +
+ ))} +
+
+
+ )} + + {/* CTA */} +
+ +
+

{t('home.readyToStart')}

+

{t('home.readyToStartDesc')}

+
+ {user ? ( + + {t('home.goToDashboard')} + + ) : ( + <> + {t('home.createFreeAccount')} - + {t('home.signIn')} )}
-
+
); diff --git a/src/themes/starter/Home.jsx b/src/themes/starter/Home.jsx index 351821c..7409d96 100644 --- a/src/themes/starter/Home.jsx +++ b/src/themes/starter/Home.jsx @@ -4,11 +4,8 @@ import { useTranslation } from 'react-i18next'; import { useAuth } from '../../context/AuthContext'; import { useSite } from '../../context/SiteContext'; import { getSiteModels, getSitePackages } from '../../api'; -import GradientText from '../../components/bits/GradientText'; -import BlurText from '../../components/bits/BlurText'; -import SpotlightCard from '../../components/bits/SpotlightCard'; import CountUp from '../../components/bits/CountUp'; -import StarBorder from '../../components/bits/StarBorder'; +import FadeContent from '../../components/bits/FadeContent'; export default function StarterHome() { const { t } = useTranslation(); @@ -26,216 +23,192 @@ export default function StarterHome() { return (
- {/* Gradient Background */} + {/* Subtle gradient background */}
-
-
+
- {/* Hero Section */} -
-
-
- + {/* Hero */} +
+ +
+

{t('home.heroTagline') || 'AI API Platform'}

+

{site?.name || t('home.defaultHeroTitle')} - -

- - - -
- {user ? ( - - - {t('home.goToDashboard')} - - - ) : ( - <> - - {t('home.getStarted')} - - - {t('home.viewPricing')} - - - )} -
-
- - {/* Stats */} -
-
-
- + -
-

{t('home.aiModels')}

-
-
-
- % -
-

{t('home.uptime')}

-
-
-
- <ms -
-

{t('home.latency')}

-
-
-
- - {/* Features Section */} -
-
-

{t('home.whyChooseUs')}

-

{t('home.whyChooseUsDesc')}

-
- -
- -
- - - -
-

{t('home.lightningFast')}

-

{t('home.lightningFastDesc')}

-
- - -
- - - -
-

{t('home.securePrivate')}

-

{t('home.securePrivateDesc')}

-
- - -
- - - -
-

{t('home.payAsYouGo')}

-

{t('home.payAsYouGoDesc')}

-
-
-
- - {/* Models Preview */} - {enabledModels.length > 0 && ( -
-
-

{t('home.availableModels')}

-

- {t('home.availableModelsDesc', { count: enabledModels.length })} + +

+ {t('home.heroSubtitle')}

-
-
- {enabledModels.slice(0, 12).map((m, i) => ( -
-
- - {m.display_name || m.model_name} - -
- ))} -
- - {enabledModels.length > 12 && ( -
- - {t('home.viewAllModels', { count: enabledModels.length })} → - -
- )} -
- )} - - {/* Packages Preview */} - {packages.length > 0 && ( -
-
-

{t('home.plansPackages')}

-

{t('home.choosePlan')}

-
- -
- {packages.filter(p => p.enabled).slice(0, 3).map((pkg) => ( -
-

{pkg.name}

- {pkg.description && ( -

{pkg.description}

- )} -
-
- ${pkg.price} - {pkg.original_price > pkg.price && ( - ${pkg.original_price} - )} -
- {pkg.duration > 0 && ( -

{t('home.days', { count: pkg.duration })}

- )} -
- - {user ? t('home.subscribe') : t('home.getStarted')} - -
- ))} -
-
- )} - - {/* CTA Section */} -
-
-
-
-

- {t('home.readyToStart')} -

-

- {t('home.readyToStartDesc')} -

-
+
{user ? ( - - {t('home.goToDashboard')} + + {t('home.goToDashboard')} → ) : ( <> - - {t('home.createFreeAccount')} + + {t('home.getStarted')} - + + {t('home.viewPricing')} → + + + )} +
+
+ + + {/* Stats */} + +
+
+
+ + +
+

{t('home.aiModels')}

+
+
+
+ % +
+

{t('home.uptime')}

+
+
+
+ <ms +
+

{t('home.latency')}

+
+
+
+
+ + {/* Features */} +
+ +
+

{t('home.whyChooseUs')}

+

{t('home.whyChooseUsDesc')}

+
+ +
+ {[ + { title: t('home.lightningFast'), desc: t('home.lightningFastDesc'), icon: ( + + + + )}, + { title: t('home.securePrivate'), desc: t('home.securePrivateDesc'), icon: ( + + + + )}, + { title: t('home.payAsYouGo'), desc: t('home.payAsYouGoDesc'), icon: ( + + + + )}, + ].map((f, i) => ( +
+
+ {f.icon} +
+

{f.title}

+

{f.desc}

+
+ ))} +
+
+
+ + {/* Models */} + {enabledModels.length > 0 && ( +
+ +
+
+

{t('home.availableModels')}

+

{t('home.availableModelsDesc', { count: enabledModels.length })}

+
+ {enabledModels.length > 8 && ( + + {t('home.viewAllModels', { count: enabledModels.length })} → + + )} +
+ +
+ {enabledModels.slice(0, 8).map((m, i) => ( +
+ {m.display_name || m.model_name} +
+ ))} +
+
+
+ )} + + {/* Packages */} + {packages.length > 0 && ( +
+ +

{t('home.plansPackages')}

+

{t('home.choosePlan')}

+ +
+ {packages.filter(p => p.enabled).slice(0, 3).map((pkg, i) => ( +
+ {i === 1 && {t('home.popular') || 'Popular'}} +

{pkg.name}

+ {pkg.description &&

{pkg.description}

} +
+ ${pkg.price} + {pkg.original_price > pkg.price && ( + ${pkg.original_price} + )} + {pkg.duration > 0 &&

{t('home.days', { count: pkg.duration })}

} +
+ + {user ? t('home.subscribe') : t('home.getStarted')} + +
+ ))} +
+
+
+ )} + + {/* CTA */} +
+ +
+

{t('home.readyToStart')}

+

{t('home.readyToStartDesc')}

+
+ {user ? ( + + {t('home.goToDashboard')} → + + ) : ( + <> + + {t('home.createFreeAccount')} → + + {t('home.signIn')} )}
-
+
);