Tiptap v3 · React 19 · shadcn/ui

一套逻辑
任意风格

TipKit 是无头富文本编辑器套件。编辑器逻辑与视觉彻底解耦,同一份内容、同一套代码,通过主题皮肤自由变换风格。

你好,TipKit

这是一段 加粗斜体 的正文,同一份内容,两种皮肤。

一套逻辑,任意风格。

你好,TipKit

这是一段 加粗斜体 的正文,同一份内容,两种皮肤。

一套逻辑,任意风格。

同一份内容 · default 与 sketch 两种皮肤

开箱即用,按需裁剪

扩展目录自包含、可整体裁剪;项目特定能力一律注入,不绑架你的工程。

无头架构

逻辑与视觉彻底解耦:core 只算状态,主题只管渲染。同一套编辑器代码,换一个 CSS 就是另一种风格。

主题皮肤

内置 default(shadcn 标准)与 sketch(手绘)两种皮肤,消费方复制一个 CSS 覆盖变量即可自定义。

依赖注入

上传、附件、KaTeX 等项目特定能力全部通过 EditorDeps 注入,内核零外部服务依赖,天然可测试。

Markdown 即时转换

直接粘贴 Markdown,或输入 #、- 、1. 即时转为对应节点,写作体验顺滑。

斜杠菜单

输入 / 唤起可搜索的分组面板,21 种内容节点开箱即用,也可按需裁剪扩展。

高级节点

表格、数学公式、分栏、折叠块、目录、附件、代码块高亮……覆盖常见编辑场景。

三步接入

从空项目到可用的富文本编辑器,只需要三步。

1

安装

安装聚合包与主题,一行命令搞定。

pnpm add @tipkit/editor @tipkit/extensions @tipkit/ui @tipkit/components @tipkit/themes
2

引入

一行组件,得到完整编辑器:工具栏、斜杠菜单、浮层、块手柄。

import { TipKitEditor } from "@tipkit/editor";
import { createBasicExtensions, createAdvancedExtensions } from "@tipkit/extensions";
import "@tipkit/themes/default.css";

export default function App() {
  return <TipKitEditor extensions={[...createBasicExtensions(), ...createAdvancedExtensions()]} />;
}
3

换肤

主题 = 换一个 CSS。甚至可以在运行时切换,无需重载编辑器。

// 手绘风格,其余代码一行不改
import "@tipkit/themes/sketch.css";

<div className="tk-theme-sketch">
  <TipKitEditor extensions={[...createBasicExtensions(), ...createAdvancedExtensions()]} />
</div>

准备好了吗?

在演示页体验完整功能,或直接阅读接入文档。