-
+
{t('Create an account')}
diff --git a/web/default/src/features/home/components/sections/hero.tsx b/web/default/src/features/home/components/sections/hero.tsx
index 06ef0a456..58ad336e3 100644
--- a/web/default/src/features/home/components/sections/hero.tsx
+++ b/web/default/src/features/home/components/sections/hero.tsx
@@ -27,20 +27,6 @@ interface HeroProps {
isAuthenticated?: boolean
}
-const T = {
- bg: '#0A0E14',
- surface: '#0F1419',
- border: '#1A1F29',
- accent: '#00D2FF',
- accentDim: '#0099BB',
- green: '#28C840',
- yellow: '#FEBC2E',
- gray: '#5C6370',
- grayLight: '#8B8D97',
- white: '#C5C6D0',
- red: '#FF5F57',
-}
-
const features = [
{ icon: Zap, title: 'Multi-model Routing', desc: 'Intelligent routing with automatic failover and load balancing' },
{ icon: Key, title: 'Key Management', desc: 'Centralized API key lifecycle management with usage tracking' },
@@ -58,22 +44,22 @@ export function Hero(props: HeroProps) {
`${window.location.origin}`
return (
-
+
{/* Grid background texture */}
- {/* Top glow */}
+ {/* Top glow - dark mode only */}
{/* Headline */}
-
+
{t('Unified LLM')}{' '}
- {t('Gateway')}
+ {t('Gateway')}
{/* Subtitle */}
-
+
{t('One endpoint for all models. OpenAI-compatible, switch and go.')}
@@ -101,8 +84,7 @@ export function Hero(props: HeroProps) {
{props.isAuthenticated ? (
}
>
{t('Go to Dashboard')}
@@ -111,8 +93,7 @@ export function Hero(props: HeroProps) {
) : (
<>
}
>
{t('Get Started')}
@@ -120,10 +101,7 @@ export function Hero(props: HeroProps) {
{ e.currentTarget.style.color = T.accent }}
- onMouseLeave={(e) => { e.currentTarget.style.color = T.grayLight }}
+ className='text-[13px] font-medium text-muted-foreground transition-colors duration-200 hover:text-primary'
>
{t('View Pricing')} →
@@ -134,58 +112,55 @@ export function Hero(props: HeroProps) {
{/* ── Terminal demo ── */}
-
+
{/* Terminal header */}
-
+
-
bash — api
+
bash — api
{/* Terminal content */}
- ${' '}
- curl{' '}
- {serverAddress}/v1/chat/completions{' '}
- \
+ ${' '}
+ curl{' '}
+ {serverAddress}/v1/chat/completions{' '}
+ \
- -H{' '}
- "Authorization: Bearer sk-..."{' '}
- \
+ -H{' '}
+ \
- -d{' '}
- {"'{ \"model\": \"gpt-4o\", \"messages\": [...] }'"}
+ -d{' '}
+
-
-
-
-
200 OK
-
312ms
+
+
+
+ 200 OK
+ 312ms
- {"{"}
- "model"
- :
- "gpt-4o"
- ,
- "usage"
- :
- {"{ \"prompt_tokens\": 12, \"completion_tokens\": 47 }"}
- {"}"}
+ {"{"}
+ "model"
+ :
+ "gpt-4o"
+ ,
+ "usage"
+ :
+ {"{ \"prompt_tokens\": 12, \"completion_tokens\": 47 }"}
+ {"}"}
- $
-
+ $
+
@@ -194,10 +169,10 @@ export function Hero(props: HeroProps) {
{/* ── Features ── */}
-
+
{t('Full-featured gateway')}
-
+
{t('Everything you need to manage, route, and monitor LLM API traffic')}
@@ -206,30 +181,15 @@ export function Hero(props: HeroProps) {
{features.map((feature) => (
{
- e.currentTarget.style.borderColor = T.accentDim
- e.currentTarget.style.boxShadow = '0 0 24px -8px rgba(0,210,255,0.15)'
- }}
- onMouseLeave={(e) => {
- e.currentTarget.style.borderColor = T.border
- e.currentTarget.style.boxShadow = 'none'
- }}
+ className='group rounded-lg border border-border bg-card p-5 transition-all duration-200 hover:border-primary/50 hover:shadow-md dark:hover:shadow-[0_0_24px_-8px_rgba(0,210,255,0.15)]'
>
-
-
+
+
-
+
{t(feature.title)}
-
+
{t(feature.desc)}
diff --git a/web/default/src/features/home/index.tsx b/web/default/src/features/home/index.tsx
index 87e8832d1..d49a1217a 100644
--- a/web/default/src/features/home/index.tsx
+++ b/web/default/src/features/home/index.tsx
@@ -62,10 +62,8 @@ export function Home() {
return (
-
-
-
-
+
+
)
}