src/config/site.ts、src/app/globals.css、
messages/{en,zh}.json。剩下是换 logo SVG、改邮件模板、重排营销 block。本页是地图。
品牌
改src/config/site.ts —— 中心配置:
src/ai/pricing.ts 的写法。
颜色
Tailwind v4 从src/app/globals.css 的 @theme 读 token。所有颜色都是
OKLCH——感知均匀、色相旋转可预测、用 OKLCH 取色器复制粘贴友好。
--primary、--primary-foreground、--accent、--ring、
--chart-{1..5}。shadcn/ui 组件按名引用这些 token,改一处全部翻新。
字体
默认 Geist Sans + Geist Mono,在src/app/layout.tsx 通过 next/font/google 加载:
next/font/google 字体即可。把 globals.css 里的 --font-sans / --font-mono 同步
到对应 CSS 变量名就行——不用动 Tailwind 配置。
营销文案
所有页面文案在messages/en.json 和 messages/zh.json 的 Home 命名空间下。两文件 key 结构
必须完全一致——next-intl 在 build 时对 key 漂移会报错。
Hero / features 排版
首页是一摞独立 block,在src/app/[locale]/(marketing)/page.tsx 组合:
src/components/blocks/ 里自包含的组件,从
messages/{locale}.json 读文案——跨边界不需要 prop 传递。
定价
siteConfig 里有两套独立的定价面:
vibestrap 自身的定价(你卖给买家的):
promo.active 在两档之间翻转。hero、pricing block、checkout 都读 activePriceCents(),
改一处全联动。
下游 app 示例定价(买家给自己用户展示的订阅+积分包):
/settings/billing 和 /settings/credits。买家产品收什么价,就把示例换成什么。
Logo
默认 header 和 footer 用lucide-react 的 Sparkles 图标。两处都换:
src/components/layout/footer.tsx。OG 图换 public/og.png(1200x630,PNG 或 JPG)。
邮件模板
React Email 模板在src/mail/templates/:
verify-email.tsx—— 注册验证。welcome.tsx—— 验证完毕后发。forgot-password.tsx—— 密码重置链接。
siteConfig.name、siteConfig.mail.supportEmail)已经接上。
email-dev 脚本上线前的本地预览:触发 auth 流,看 dev 控制台的渲染输出。
加 locale
- 在
src/config/site.ts加 locale 代码: - 建
messages/ja.json,key 结构镜像en.json。 - 文档若要上线,每篇
*.zh.mdx都翻一份*.ja.mdx。 - 完事。URL 自动变成
/ja/...。