From 442ce3a0034aa0891f2decba7fd546809a7b2cd7 Mon Sep 17 00:00:00 2001 From: AI Directory Platform Date: Thu, 10 Sep 2026 03:39:19 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BA=94=E7=AB=99=E5=8F=8C=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E8=89=B2=E5=BD=A9=E7=B3=BB=E7=BB=9F=EF=BC=88=E6=B5=85?= =?UTF-8?q?/=E6=B7=B1=E5=90=84=2010=20=E7=BB=84=E5=90=88=E5=85=A8=E9=83=A8?= =?UTF-8?q?=E5=8F=AF=E8=AF=BB=EF=BC=89+=20=E7=A1=AC=E7=BC=96=E7=A0=81?= =?UTF-8?q?=E8=89=B2=E6=B8=85=E9=9B=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 五站各定义完整浅色+深色两套 token(background/foreground/card/secondary/ muted/border/input/primary/ring),data-theme 挂 (覆盖全部路由), .dark 由 next-themes 切换按钮驱动;devai-tools 默认深色(env 可配) - 根因修复:data-theme 双重挂载(html + AuthLayout/ThemeChrome)导致 auth 子树被浅色 token 覆盖、深色不可读 —— 只保留 html 一处 - FormShell 硬编码色清零:gradient 白卡片→bg-card、minimal 白底/灰输入/ 紫按钮→token、editorial 纸白/neutral→token、terminal 深色内联→token (深浅自动适配,形态保持) - FormLabel 硬编码 #9393A3 → text-muted-foreground - 修复 data-theme double-mount 后 label 深字深底不可读(用户报告的问题) - 回归:10 组合(5 站×浅深)label 对比度全部达标;五站 mock 登录全部 OK --- packages/core/scripts/generate-site.mjs | 8 + packages/core/src/components/ui/form.tsx | 2 +- .../auth/components/social-auth-buttons.tsx | 2 +- .../features/forms/components/form-shell.tsx | 49 ++- packages/core/src/kit/chrome.tsx | 6 +- packages/core/src/kit/types.ts | 4 + packages/core/src/layouts/auth-layout.tsx | 23 +- packages/core/src/pages/[locale]/layout.tsx | 8 +- packages/core/src/styles/globals.css | 380 +++++++----------- sites/ai-stack/.env.example | 3 + sites/ai-stack/src/site/brand.tsx | 1 + sites/devai-tools/.env.example | 3 + sites/devai-tools/src/site/brand.tsx | 1 + sites/findai/.env.example | 3 + sites/findai/src/site/brand.tsx | 1 + sites/launchai/.env.example | 3 + sites/launchai/src/site/brand.tsx | 1 + sites/the-ai-ledger/.env.example | 3 + sites/the-ai-ledger/src/site/brand.tsx | 1 + 19 files changed, 223 insertions(+), 279 deletions(-) diff --git a/packages/core/scripts/generate-site.mjs b/packages/core/scripts/generate-site.mjs index bf21b6a..042fed9 100644 --- a/packages/core/scripts/generate-site.mjs +++ b/packages/core/scripts/generate-site.mjs @@ -23,6 +23,7 @@ const SITES_ROOT = path.join(REPO_ROOT, "sites"); // ==================================================================== const SITES = { "ai-stack": { + themeId: "ai-stack", authVariant: "glass", themeClass: "site-ai-stack", brandZh: { @@ -93,6 +94,7 @@ const SITES = { }, }, launchai: { + themeId: "launchai", authVariant: "gradient", themeClass: "site-launchai", brandZh: { @@ -161,6 +163,7 @@ const SITES = { }, }, "the-ai-ledger": { + themeId: "the-ai-ledger", authVariant: "editorial", themeClass: "site-the-ai-ledger", brandZh: { @@ -230,6 +233,7 @@ const SITES = { }, }, "devai-tools": { + themeId: "devai-tools", authVariant: "terminal", themeClass: "site-devai-tools", brandZh: { @@ -297,6 +301,7 @@ const SITES = { }, }, findai: { + themeId: "findai", authVariant: "minimal", themeClass: "site-findai", brandZh: { @@ -782,6 +787,9 @@ NEXT_PUBLIC_APP_NAME="${site.brand.name}" # 登录页品牌模板(分栏侧栏颜色与标语) NEXT_PUBLIC_AUTH_ACCENT="${site.accent}" NEXT_PUBLIC_AUTH_VARIANT="${site.authVariant}" +# 站点主题标识()与默认深浅(light | dark,用户可切换) +NEXT_PUBLIC_THEME_ID="${site.themeId}" +NEXT_PUBLIC_DEFAULT_THEME="${site.defaultTheme}" NEXT_PUBLIC_AUTH_BRAND_TAGLINE="${site.brand.tagline}" # 开发阶段免邮箱验证(生产置 false 发送真实验证邮件) DEV_SKIP_EMAIL_VERIFY="true" diff --git a/packages/core/src/components/ui/form.tsx b/packages/core/src/components/ui/form.tsx index 8b04d66..cbca437 100644 --- a/packages/core/src/components/ui/form.tsx +++ b/packages/core/src/components/ui/form.tsx @@ -94,7 +94,7 @@ const FormLabel = React.forwardRef<