feat: 深度设计五站视觉语言 + 语言路由修复

- 语言路由:localeDetection 关闭,/ 固定英文、/zh 固定中文,URL 决定语言
  (不再按 cookie/Accept-Language 自动跳转;语言切换器显式切换不受影响)
- 五站独立视觉语言(data-theme 驱动的设计系统层):
  · AI Stack:深蓝渐变 Hero + 统计条 + 卡片左色条 hover(专业 SaaS)
  · LaunchAI:橙色渐变 Banner + 斜切底边 + 暖白底(活力社区)
  · The AI Ledger:黑色报头日期条 + 衬线字体 + 直角 + 双细线 + 报纸排版(媒体)
  · DevAI.tools:全站深色 + 等宽字体 + 终端 Hero + 扫描线纹理 + 系统状态条(终端)
  · findai:纯白极简 + 紫色聚焦光圈 + 无界卡片(搜索引擎)
- 修复 :first-of-type 误伤(hero 样式收敛到专用 class)
This commit is contained in:
AI Directory Platform
2026-09-09 19:22:58 +00:00
parent 5cc4195d68
commit 6baf0246d2
20 changed files with 360 additions and 15 deletions
+1
View File
@@ -2,6 +2,7 @@ import type { SiteConfig } from "@/kit/types";
// AI Stack —— 独立站点的全部品牌/导航/页脚配置
export const siteConfig: SiteConfig = {
"themeClass": "site-ai-stack",
"brandZh": {
"name": "AI Stack",
"tagline": "由真实用户排名的专业 AI 工具目录。",
+19 -4
View File
@@ -58,7 +58,7 @@ async function SiteHome({ locale }: { locale: string }) {
return (
<div className="bg-background">
{/* Hero */}
<section className="border-b border-border bg-gradient-to-b from-secondary/40 to-background">
<section className="hero-dark border-b border-border">
<div className="mx-auto max-w-7xl px-4 py-16 text-center sm:px-6 md:py-24">
<h1 className="mx-auto max-w-3xl text-3xl font-bold tracking-tight text-foreground sm:text-4xl md:text-5xl">
{th("title")}
@@ -83,13 +83,28 @@ async function SiteHome({ locale }: { locale: string }) {
</button>
</div>
</form>
<div className="mt-4 flex flex-wrap items-center justify-center gap-2 text-xs text-muted-foreground">
<span>{t("popularLabel")}</span>
{/* 统计条(深色 Hero 内的白色数字) */}
<div className="mx-auto mt-10 flex max-w-lg items-center justify-center gap-10 border-t border-white/15 pt-6">
{[
{ v: "1,000+", l: "AI tools" },
{ v: "14", l: "Categories" },
{ v: "7", l: "Rankings" },
].map((s) => (
<div key={s.l} className="text-center">
<div className="text-2xl font-bold text-white">{s.v}</div>
<div className="text-xs text-white/60">{s.l}</div>
</div>
))}
</div>
<div className="mt-8 flex flex-wrap items-center justify-center gap-2 text-xs">
<span className="text-white/60">{t("popularLabel")}</span>
{t.raw("popularSearches").map((q: string) => (
<LocaleLink
key={q}
href={`/tools?search=${q}`}
className="rounded-full bg-secondary px-2.5 py-1 transition-colors hover:bg-hover"
className="rounded-full bg-white/10 px-2.5 py-1 text-white/80 transition-colors hover:bg-white/20"
>
{q}
</LocaleLink>
+1
View File
@@ -2,6 +2,7 @@ import type { SiteConfig } from "@/kit/types";
// DevAI.tools —— 独立站点的全部品牌/导航/页脚配置
export const siteConfig: SiteConfig = {
"themeClass": "site-devai-tools",
"brandZh": {
"name": "DevAI.tools",
"tagline": "面向开发者的 AI 工具——精选、实测、社区排名。",
+7 -1
View File
@@ -51,7 +51,13 @@ async function SiteHome({ locale }: { locale: string }) {
return (
<div className="min-h-screen bg-background">
{/* Terminal 风格 Hero */}
{/* Terminal 风格 Hero + 绿色系统状态条 */}
<div className="border-b border-border bg-background">
<div className="mx-auto flex max-w-5xl items-center gap-2 px-4 py-2 font-mono text-[11px] text-muted-foreground sm:px-6">
<span className="inline-block h-2 w-2 animate-pulse rounded-full bg-emerald-500" />
system: online · 1,000+ tools indexed · updated hourly
</div>
</div>
<section className="border-b border-border bg-[hsl(var(--secondary))]/40">
<div className="mx-auto max-w-5xl px-4 py-14 sm:px-6 md:py-20">
<div className="mx-auto max-w-2xl overflow-hidden rounded-xl border border-border bg-background shadow-sm">
+1
View File
@@ -2,6 +2,7 @@ import type { SiteConfig } from "@/kit/types";
// findai —— 独立站点的全部品牌/导航/页脚配置
export const siteConfig: SiteConfig = {
"themeClass": "site-findai",
"brandZh": {
"name": "findai",
"tagline": "极简 AI 工具搜索引擎。",
+1
View File
@@ -73,6 +73,7 @@ async function SiteHome({ locale }: { locale: string }) {
</div>
</form>
<div className="mx-auto mt-10 max-w-md border-t border-border/60 pt-5" />
<div className="mt-6 flex flex-wrap items-center justify-center gap-2">
{popularSearches.map((q) => (
<LocaleLink
+1
View File
@@ -2,6 +2,7 @@ import type { SiteConfig } from "@/kit/types";
// LaunchAI —— 独立站点的全部品牌/导航/页脚配置
export const siteConfig: SiteConfig = {
"themeClass": "site-launchai",
"brandZh": {
"name": "LaunchAI",
"tagline": "发现并投票今日的 AI 新品。",
+1 -1
View File
@@ -111,7 +111,7 @@ async function SiteHome({ locale }: { locale: string }) {
return (
<div className="min-h-screen bg-background">
{/* Hero:今日发布 */}
<section className="border-b border-border bg-gradient-to-b from-primary/5 to-background">
<section className="hero-launch border-b border-border bg-gradient-to-b from-primary/5 to-background">
<div className="mx-auto max-w-5xl px-4 py-12 text-center sm:px-6 md:py-16">
<h1 className="text-2xl font-extrabold tracking-tight text-foreground sm:text-4xl">
{th("title")}
+1
View File
@@ -2,6 +2,7 @@ import type { SiteConfig } from "@/kit/types";
// The AI Ledger —— 独立站点的全部品牌/导航/页脚配置
export const siteConfig: SiteConfig = {
"themeClass": "site-the-ai-ledger",
"brandZh": {
"name": "The AI Ledger",
"tagline": "独立 AI 报道,附社区排名目录。",
+9
View File
@@ -54,6 +54,15 @@ async function SiteHome({ locale }: { locale: string }) {
return (
<div className="min-h-screen bg-background">
{/* Masthead:黑色报头条(当日日期 + 期号),报纸头版签名 */}
<div className="bg-foreground text-background">
<div className="mx-auto flex max-w-4xl items-center justify-between px-4 py-2 text-[11px] uppercase tracking-[0.25em] sm:px-6">
<span>{new Date().toLocaleDateString("en-US", { weekday: "long", year: "numeric", month: "long", day: "numeric" })}</span>
<span className="hidden sm:inline">Est. 2026</span>
<span>Daily</span>
</div>
</div>
{/* Masthead */}
<section className="border-b border-border">
<div className="mx-auto max-w-4xl px-4 py-16 text-center sm:px-6 md:py-20">