diff --git a/web/default/src/features/home/components/sections/hero.tsx b/web/default/src/features/home/components/sections/hero.tsx index e357f5495..27f6d6d75 100644 --- a/web/default/src/features/home/components/sections/hero.tsx +++ b/web/default/src/features/home/components/sections/hero.tsx @@ -17,7 +17,7 @@ along with this program. If not, see . For commercial licensing, please contact admin@modelstoken.com */ import { Link } from '@tanstack/react-router' -import { ArrowRight, Zap, Shield, Layers, BarChart3, Key, GitBranch, Users } from 'lucide-react' +import { ArrowRight } from 'lucide-react' import { useTranslation } from 'react-i18next' import { useStatus } from '@/hooks/use-status' import { Button } from '@/components/ui/button' @@ -27,13 +27,6 @@ interface HeroProps { isAuthenticated?: boolean } -const features = [ - { icon: Zap, title: 'Multi-model Routing', desc: 'Automatic failover and load balancing across providers' }, - { icon: Key, title: 'Key Management', desc: 'Centralized API key lifecycle with usage tracking' }, - { icon: Shield, title: 'Access Control', desc: 'Fine-grained permissions, rate limits, and token policies' }, - { icon: BarChart3, title: 'Real-time Monitoring', desc: 'Live dashboards with latency and cost analytics' }, -] - const providers = [ 'OpenAI', 'Claude', 'Gemini', 'Mistral', 'DeepSeek', 'Llama', 'Qwen', 'Cohere', 'Groq', 'Perplexity', @@ -65,7 +58,7 @@ export function Hero(props: HeroProps) { className='pointer-events-none absolute inset-0' style={{ background: - 'radial-gradient(ellipse 60% 50% at 50% -10%, oklch(0.65 0.17 210 / 0.06) 0%, transparent 70%)', + 'radial-gradient(ellipse 60% 50% at 50% -10%, oklch(0.55 0.15 240 / 0.06) 0%, transparent 70%)', }} /> @@ -111,28 +104,11 @@ export function Hero(props: HeroProps) { )} - - {/* Social proof */} -
-
- {Array.from({ length: 4 }).map((_, i) => ( -
- {String.fromCharCode(65 + i)} -
- ))} -
- - 1K+ {t('developers joined')} - -
{/* Right: terminal demo */}
-
+
{/* Title bar */}
@@ -208,75 +184,6 @@ export function Hero(props: HeroProps) {
- - {/* ── Features (2x2 grid like company) ── */} -
-
-

- {t('Features')} -

-

- {t('Everything you need to manage and route LLM API traffic')} -

-
- -
- {features.map((feature) => ( -
- {/* Glow effect on hover */} -
-
-
- -
-

- {t(feature.title)} -

-

- {t(feature.desc)} -

-
-
- ))} -
-
- - {/* ── Setup / CTA section ── */} -
-
-

- {t('Ready to get started?')} -

-

- {t('Just 3 minutes to start using')} -

-
- {props.isAuthenticated ? ( - - ) : ( - - )} -
- {/* Decorative circles */} -
-
-
-
{/* Marquee keyframes */} diff --git a/web/default/src/styles/theme.css b/web/default/src/styles/theme.css index b9c18f577..69e3beb7a 100644 --- a/web/default/src/styles/theme.css +++ b/web/default/src/styles/theme.css @@ -100,49 +100,49 @@ For commercial licensing, please contact admin@modelstoken.com * in theme-presets.css. Default mirrors `--font-sans` so behavior is * identical when no font preference is set. */ --font-body: var(--font-sans); - /* Termius light: deep primary for buttons, cyan for accents/links */ - --background: oklch(0.985 0.002 260); - --foreground: oklch(0.145 0.015 260); + /* Termius-inspired light mode: pure white bg, deep navy text, teal accent */ + --background: oklch(0.995 0 0); + --foreground: oklch(0.13 0.028 270); --card: oklch(1 0 0); - --card-foreground: oklch(0.145 0.015 260); + --card-foreground: oklch(0.13 0.028 270); --popover: oklch(1 0 0); - --popover-foreground: oklch(0.145 0.015 260); - --primary: oklch(0.16 0.02 260); - --primary-foreground: oklch(0.985 0 0); - --secondary: oklch(0.955 0.005 260); - --secondary-foreground: oklch(0.205 0.015 260); - --muted: oklch(0.955 0.005 260); - --muted-foreground: oklch(0.48 0.012 260); - --accent: oklch(0.945 0.01 260); - --accent-foreground: oklch(0.145 0.015 260); + --popover-foreground: oklch(0.13 0.028 270); + --primary: oklch(0.55 0.15 240); + --primary-foreground: oklch(0.995 0 0); + --secondary: oklch(0.96 0.005 260); + --secondary-foreground: oklch(0.18 0.02 270); + --muted: oklch(0.96 0.005 260); + --muted-foreground: oklch(0.45 0.015 260); + --accent: oklch(0.95 0.008 260); + --accent-foreground: oklch(0.13 0.028 270); --destructive: oklch(0.577 0.245 27.325); - --destructive-foreground: oklch(0.985 0 0); + --destructive-foreground: oklch(0.995 0 0); --success: oklch(0.596 0.145 163.225); - --success-foreground: oklch(0.985 0 0); + --success-foreground: oklch(0.995 0 0); --warning: oklch(0.681 0.162 75.834); - --warning-foreground: oklch(0.145 0.015 260); + --warning-foreground: oklch(0.13 0.028 270); --info: oklch(0.588 0.158 241.966); - --info-foreground: oklch(0.985 0 0); + --info-foreground: oklch(0.995 0 0); --neutral: oklch(0.55 0.01 260); - --neutral-foreground: oklch(0.985 0 0); - --border: oklch(0.91 0.005 260); - --input: oklch(0.91 0.005 260); - --ring: oklch(0.65 0.17 210); - --chart-1: oklch(0.65 0.17 210); + --neutral-foreground: oklch(0.995 0 0); + --border: oklch(0.92 0.003 260); + --input: oklch(0.92 0.003 260); + --ring: oklch(0.55 0.15 240); + --chart-1: oklch(0.55 0.15 240); --chart-2: oklch(0.596 0.145 163.225); --chart-3: oklch(0.681 0.162 75.834); --chart-4: oklch(0.627 0.265 303.9); --chart-5: oklch(0.645 0.246 16.439); --sidebar: oklch(0.975 0.003 260); - --sidebar-foreground: oklch(0.145 0.015 260); - --sidebar-primary: oklch(0.65 0.17 210); - --sidebar-primary-foreground: oklch(1 0 0); + --sidebar-foreground: oklch(0.13 0.028 270); + --sidebar-primary: oklch(0.55 0.15 240); + --sidebar-primary-foreground: oklch(0.995 0 0); --sidebar-accent: oklch(0.94 0.008 260); - --sidebar-accent-foreground: oklch(0.145 0.015 260); - --sidebar-border: oklch(0.91 0.005 260); - --sidebar-ring: oklch(0.65 0.17 210); - --skeleton-base: oklch(0.955 0.005 260); - --skeleton-highlight: oklch(0.985 0.002 260); + --sidebar-accent-foreground: oklch(0.13 0.028 270); + --sidebar-border: oklch(0.92 0.003 260); + --sidebar-ring: oklch(0.55 0.15 240); + --skeleton-base: oklch(0.96 0.005 260); + --skeleton-highlight: oklch(0.995 0 0); } .dark {