UI 组件样式
包含所有 fumadocs-ui 界面组件的使用示例和效果展示
简介
本文档展示了 Fumadocs 提供的所有 UI 组件及其样式效果。你可以在 MDX 文件中直接使用这些组件来丰富文档内容。
一、 Callout 提示框
Callout 组件用于在文档中显示重要提示信息。支持 info、warn、error、success、warning、idea 六种类型。
1. Info 提示
这是一条信息提示,用于向读者提供额外的背景信息或说明。
<Callout type="info">
这是一条信息提示,用于向读者提供额外的背景信息或说明。
</Callout>2. Warn 警告
这是一条警告提示,用于提醒读者注意潜在的问题或风险。
<Callout type="warn">
这是一条警告提示,用于提醒读者注意潜在的问题或风险。
</Callout>3. Error 错误
这是一条错误提示,用于标识严重的问题或不可逆的操作。
<Callout type="error">
这是一条错误提示,用于标识严重的问题或不可逆的操作。
</Callout>4. Success 成功
这是一条成功提示,用于确认操作已成功完成。
<Callout type="success">
这是一条成功提示,用于确认操作已成功完成。
</Callout>5. Warning 注意
这是一条注意事项,用于提醒读者特别关注某个配置或行为。
<Callout type="warning">
这是一条注意事项,用于提醒读者特别关注某个配置或行为。
</Callout>6. Idea 想法
这是一条想法提示,用于提供技巧、最佳实践或改进建议。
<Callout type="idea">
这是一条想法提示,用于提供技巧、最佳实践或改进建议。
</Callout>7. 带标题的 Callout
自定义标题
你可以通过 title 属性为 Callout 设置自定义标题,使提示更加清晰明确。
<Callout type="info" title="自定义标题">
你可以通过 `title` 属性为 Callout 设置自定义标题,使提示更加清晰明确。
</Callout>二、 Cards 卡片
Card 和 Cards 组件用于创建卡片式布局,适合展示导航链接、功能列表等。
1. 基础卡片
快速开始
配置指南
部署
<Cards>
<Card title="卡片标题">展示文字。</Card>
</Cards>2. 带链接的卡片
<Cards>
<Card title="标题" href="https://uecook.top" description="副标题">
展示文字。
</Card>
</Cards>3. 长卡片
这是一个长卡片
<CardsLong>mdx
<Card title="标题">展示文字。</Card>
</CardsLong>警告:长卡片支持是本人修改了 Fumadocs 的底层代码加入的,原生主题并无此选项。
三、 Accordion 手风琴
Accordion 组件用于创建可折叠的内容面板,适合展示 FAQ 。
<Accordions>
<Accordion title="标题1">
文字1
</Accordion>
<Accordion title="标题2">
文字2
</Accordion>
<Accordion title="标题3">
文字3
</Accordion>
</Accordions>四、 Steps 步骤
Steps 组件用于创建带编号的分步指南,帮助读者按顺序完成任务。
pnpm add fumadocs-ui fumadocs-core fumadocs-mdx 安装 Fumadocs 相关依赖。source.config.ts,定义文档目录和 MDX 编译选项。pnpm dev 启动开发服务器,即可在浏览器中查看文档效果。<Steps>
<Step>例子1</Step>
<Step>例子2</Step>
<Step>例子3</Step>
</Steps>五、 Tabs 标签页
Tabs 组件用于创建选项卡式内容,适合展示同一事物的不同版本或变体。
1. 基础标签页(展开模式)
提示:基础标签页仅支持单行显示。
pnpm add fumadocs-uinpm install fumadocs-uiyarn add fumadocs-ui<Tabs items={['1', '2', '3']}>
<Tab>展示1</Tab>
<Tab>展示2</Tab>
<Tab>展示3</Tab>
</Tabs>2. 高级标签页(触发模式)
提示:支持多行显示、代码插入、长文本等。
使用 TypeScript 时,可以定义类型接口来获得更好的类型安全性和开发体验。
例如 interface Config { title: string; theme: 'light' | 'dark'; }
使用 JavaScript 时,配置对象不需要类型定义,直接使用普通对象即可。
例如 const config = { title: 'My Docs', theme: 'light' };
这是一个测试代码样例。
#include <stdio.h>
int main()
{
printf("Hello, World!");
return 0;
}<Tabs>
<TabsList>
<TabsTrigger value="1">1</TabsTrigger>
<TabsTrigger value="2">2</TabsTrigger>
</TabsList>
<TabsContent value="1">
在这里输入文字。
留空行换行。
</TabsContent>
<TabsContent value="2">
测试代码样例。
在这里使用 markdown 语法引用代码即可。
</TabsContent>
</Tabs>六、 Files 文件树
Files 组件用于展示项目文件结构,支持文件和文件夹。
<Files>
<Folder name="父文件夹1" defaultOpen>
<Folder name="子文件夹1">
<File name="1.docx" />
<File name="2.md" />
</Folder>
<File name="3.js" />
<File name="4.html" />
</Folder>
<Folder name="父文件夹2" defaultOpen>
<Folder name="子文件夹2">
<File name="index.mdx" />
<File name="ui.css" />
</Folder>
</Folder>
<File name="REMADE.md" />
<File name="package.json" />
</Files>七、 TypeTable 类型表格
TypeTable 组件用于展示 API 类型定义,适合文档化组件 Props 或配置接口。
Prop
Type
<TypeTable
type={{
title: {
type: 'string',
description: '文档页面的标题',
required: true,
},
description: {
type: 'string',
description: '文档页面的描述信息',
},
theme: {
type: "'light' | 'dark' | 'system'",
description: '主题模式,默认跟随系统',
default: "'system'",
},
full: {
type: 'boolean',
description: '是否使用全宽布局',
default: 'false',
},
}}
/>八、 代码块
1. 基础代码块
// 标准代码块
#include <stdio.h>
int main()
{
printf("Hello, World!");
return 0;
}2. 带行号显示的代码块
// 带行号的代码块
// 在 markdown 代码语法后添加 "lineNumbers" 字段
#include <stdio.h>
int main()
{
printf("Hello, World!");
return 0;
}3. 带标题的代码块
// 带标题的代码块
// 在 markdown 代码语法后添加 "title="标题"" 字段
#include <stdio.h>
int main()
{
printf("Hello, World!");
return 0;
}4. 带高亮行的代码块
// 带高亮行的代码块
// 在 markdown 代码语法后添加 "{n}" 字段
#include <stdio.h>
int main()
{
printf("Hello, World!");
return 0;
}九、 表格
1. 基础表格
| 组件 | 说明 | 来源 |
|---|---|---|
Callout | 提示框组件 | fumadocs-ui/components/callout |
Card | 卡片组件 | fumadocs-ui/components/card |
Accordion | 手风琴组件 | fumadocs-ui/components/accordion |
Steps | 步骤组件 | fumadocs-ui/components/steps |
Tabs | 标签页组件 | fumadocs-ui/components/tabs |
Files | 文件树组件 | fumadocs-ui/components/files |
TypeTable | 类型表格组件 | fumadocs-ui/components/type-table |
| A | B | C |
|-----|-----|-----|
| 1 | 2 | 3 |提示:在默认模式下,表格为左对齐显示
2. 带对齐的表格
| 属性 | 类型 | 默认值 | 必填 |
|---|---|---|---|
title | string | — | 是 |
icon | ReactNode | 自动 | 否 |
children | ReactNode | — | 是 |
| A | B | C |
|:----|:---:|----:| //(从左到右)左对齐、居中对齐、右对齐
| 1 | 2 | 3 |十、 引用
1. 普通引用
Fumadocs 是一个强大的文档框架,基于 Next.js 构建。
它提供了美观的 UI 组件、出色的 MDX 支持和灵活的配置选项。
— Fumadocs 官方文档
> 123
>
> ABC
>
> 一二三2. 嵌套引用
这是一级引用
这是嵌套的二级引用
这是三级引用
> 这是一级引用
>
> > 这是嵌套的二级引用
> >
> > > 这是三级引用十一、 列表
1. 无序列表
- 文档生成
- 静态生成(SSG)
- 服务端渲染(SSR)
- UI 组件
- Callout 提示框
- Card 卡片
- Tabs 标签页
- 搜索功能
- 内置搜索
- Algolia 搜索
- Orama 搜索
- A
- 1
- 2
- B
- 1
- 2
- 3
- C
- 1
- 2
- 32. 有序列表
- 安装依赖包
- 安装
fumadocs-core - 安装
fumadocs-ui - 安装
fumadocs-mdx
- 安装
- 配置项目
- 创建
source.config.ts - 配置 Next.js
- 设置 Tailwind CSS
- 创建
- 编写文档
- 创建 MDX 文件
- 使用 UI 组件
- 预览和发布
1. AA
1. a
2. b
3. c
2. BB
1. a
2. b
3. c
3. CC
1. a
2. b
3. c3. 任务列表
- 项目初始化
- 安装依赖
- 配置 MDX
- 编写文档内容
- 部署上线
- [x] 1
- [x] 2
- [x] 3
- [ ] 4
- [ ] 5十二、 文本样式
1. 行内样式
- 粗体文本:使用两个星号包裹
- 斜体文本:使用一个星号包裹
删除线:使用两个波浪号包裹行内代码:使用反引号包裹- 超链接:使用方括号和圆括号
2. 组合样式
这是正常文本,包含 粗体、斜体、代码 和 链接 的组合使用。
也可以使用 粗斜体 组合,或者 删除线加粗体。
**粗体文本**
*斜体文本*
~~删除线~~
`行内代码`
[超链接](https://uecook.topuecook.top)十三、 标题层级
三级标题
四级标题
五级标题
六级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题十四、 分隔线
使用三个 “---” 创建分隔线。
上面就是一条分隔线。
--- //没错这就是分割线十五、 图片
1. 普通图片
使用标准的 Markdown 语法插入图片:

2. 可缩放图片
使用 ImageZoom 组件可以实现点击图片放大的效果:
<ImageZoom
src="https://fumadocs.dev/logo.png" //图片链接地址
alt="图片描述"
width={200} // 图片宽度(单位:像素)
height={50} // 图片高度(单位:像素)
/>十六、 内联目录
<InlineTOC
items={[
{ title: '标题1', url: '#标题1', depth: 2 },
{ title: '标题2', url: '#标题2', depth: 2 },
{ title: '标题3', url: '#标题3', depth: 2 },
]}
>
目录导航
</InlineTOC>提示:外标题文字通过 children(即组件标签之间的内容)自定义;url 应与标题的 id 一致;depth 表示缩进层级(2 为二级标题,3 为三级标题,以此类推)。
十七、 组件导入参考
在 components/mdx.tsx 中注册组件时,需要从以下路径导入:
| 组件 | 导入路径 |
|---|---|
Callout | fumadocs-ui/components/callout |
Card, Cards | fumadocs-ui/components/card |
Accordion, Accordions | fumadocs-ui/components/accordion |
Steps, Step | fumadocs-ui/components/steps |
Tabs, Tab, TabsList, TabsTrigger, TabsContent | fumadocs-ui/components/tabs |
Files, File, Folder | fumadocs-ui/components/files |
TypeTable | fumadocs-ui/components/type-table |
ImageZoom | fumadocs-ui/components/image-zoom |
InlineTOC | fumadocs-ui/components/inline-toc |
Banner | fumadocs-ui/components/banner |
CodeBlock | fumadocs-ui/components/codeblock |
注意:Callout、Card、Cards、CodeBlockTab、CodeBlockTabs、CodeBlockTabsList、CodeBlockTabsTrigger 等组件已通过 defaultMdxComponents 自动注册,无需额外导入即可在 MDX 中使用。