当新增或重构 TAI Design 文档页时使用;指导同步组件 API、文档包装组件、路由入口和目录导航,生成真实可维护的 docs 页面。
这个 skill 用于在 TAI Design 文档站中新增、重做或扩展组件文档页,确保页面结构、交互预览、路由接入和目录页信息一起完成。
当任务涉及 packages/docs/src/design-system/pages/*、packages/docs/src/design-system/*Component.tsx,或者用户要求"给组件补 docs / demo / 预览页"时,应使用本 skill。
*Component.tsx 形式的文档包装组件main.tsx 路由新增或重构文档页时,至少检查这些位置:
packages/components/src/<component>/:组件真实 API、类型、尺寸/变体常量packages/docs/src/design-system/pages/<Page>.tsx:页面主体packages/docs/src/design-system/DocComponents.tsx:共享文档骨架组件(必须优先使用)packages/docs/src/design-system/<ComponentName>Component.tsx:文档展示包装层(如果有)packages/docs/src/main.tsx:懒加载、路由、旧路径重定向所有新建/重构的文档页面必须使用以下共享组件,不允许手写等价样式:
| 组件 | 用途 |
|---|---|
DocPageHeader | 页面头部(分类标签 + 标题 + 描述) |
DocSection | 区块容器(h2 标题 + 可选描述 + children) |
DocPanel | 说明卡片(6 种变体:elevated/subtle/accent/code/notice/success) |
DocSubsection | h3 级别子区块 |
DocTokenTable | Token 使用清单表格(自动双列/单列) |
DocGuidePanel | 带标题的设计规范/使用指南面板 |
DocInlineCode | 行内代码样式 |
import { DocPageHeader, DocSection, DocPanel, DocTokenTable } from "../DocComponents";
export default function MyComponentPage() {
return (
<div>
<DocPageHeader
category="Components / 组件"
title="Button 按钮"
description="用于触发操作的交互元素"
/>
<DocSection title="实时预览">
{/* 预览内容 */}
</DocSection>
<DocSection title="🎨 Token 使用清单">
<DocTokenTable rows={[...]} note={...} />
</DocSection>
</div>
);
}
DocPageHeader,不要手写标题样式。DocSection/DocSubsection,不要手写 h2/h3 样式。DocTokenTable,不要手写表格。DocPanel(各种变体),设计规范面板用 DocGuidePanel。packages/docs/src/design-system/*Component.tsx。@tai-design/components 的真实组件,不要重新手写一套样式。TAI Design 的组件页优先采用以下结构:
DocPageHeader(分类 chip、标题、简介)DocSection)DocPanel)DocTokenTableDocGuidePanel如果页面已有固定布局,优先沿用而不是重新造版式。
packages/docs/src/main.tsx 中补齐 lazy import 与路由配置。legacyDesignSystemPaths。useTheme()、RADIUS、SPACING、SHADOW 等统一 token。docs 页面自身的文字样式必须使用 tokens.typography.* 语义 token,禁止 Tailwind 文字类和裸数值。
// ❌ Tailwind 文字类
<h1 className="text-4xl font-bold">标题</h1>
<p className="text-lg font-medium">描述</p>
// ❌ 裸数值
<span style={{ fontSize: 14, fontWeight: 600 }}>标签</span>
// ❌ 旧常量(过渡期兼容,新代码不应使用)
<span style={{ fontSize: FONT_SIZE.xl, fontWeight: FONT_WEIGHT.medium }}>文字</span>
const { tokens } = useTheme();
// ✅ 使用语义排版 token
<h1 style={{
fontSize: tokens.typography.title.page.fontSize,
fontWeight: tokens.typography.title.page.fontWeight,
lineHeight: tokens.typography.title.page.lineHeight,
}}>标题</h1>
// ✅ 或更方便:直接用 DocPageHeader
<DocPageHeader category="Components / 组件" title="标题" description="描述" />
| 页面角色 | 推荐 token | 字号/字重/行高 |
|---|---|---|
| 页面大标题 | tokens.typography.title.page | 42/600/1.2 |
| 区块标题 (h2) | tokens.typography.title.section | 36/600/1.3 |
| 卡片标题 (h3) | tokens.typography.title.card | 32/500/1.5 |
| 正文/描述 | tokens.typography.body.primary | 28/400/1.4 |
| 次要描述 | tokens.typography.body.secondary | 26/400/1.5 |
| 说明文字 | tokens.typography.meta.caption | 24/400/1.5 |
| 脚注/chip | tokens.typography.meta.footnote | 18/400/1 |
注意:
DocPageHeader、DocSection、DocSubsection等骨架组件已内置正确的排版 token,使用它们可以自动获得正确的样式。
pnpm buildpnpm devpnpm previewmain.tsx 路由tokens.typography.*fontSize: 14)而非排版 tokenFONT_SIZE / FONT_WEIGHT / LINE_HEIGHT 而非 tokens.typography.*满足以下条件后,文档页任务才算完成:
tokens.typography.* 语义 token