点击上方卡片预约视频号直播
在数字化协作工具追求「像素级精准」的时代,一款能保留手绘温度、兼顾灵活协作与开放生态的工具显得尤为珍贵。
Excalidraw—— 这个在 GitHub 收获超 99.5k 星标的开源项目,正以「回归创作本质」的理念,重新定义数字白板的可能性。

当你第一次打开Excalidraw,映入眼帘的不是冰冷机械的直线和几何图形,而是充满人情味的手绘效果。
这种设计理念源于创作者的深刻洞察,即使在数字世界,大家依然渴望保留人类创作的温度与不完美的美感。
核心特点
无限画布渲染:基于 Canvas 2D 实现动态缩放与无限延伸,支持复杂图形流畅操作(超 2000 元素保持 60fps),适配高密度内容创作。
手绘质感引擎:自研笔触模拟算法,支持粗糙度调节、抖动补偿,实现自然手写字体与不规则图形绘制,还原真实纸笔「不完美美学」。
实时协作技术:WebSocket/Firebase 同步 + OT 算法解决并发冲突,操作延迟 < 200ms,支持端到端加密与版本回溯。
开放格式生态:默认存储为可解析 JSON 文件(含矢量数据 + 绘图历史),支持 PNG/SVG 导出及脚本批量处理,避免数据孤岛。
PWA 架构设计:支持离线优先模式,断网操作暂存本地,联网自动同步;可安装桌面快捷方式,实现跨平台无缝体验。
模块化开发体系:核心功能封装为 npm 包,支持主流框架快速集成(5 分钟接入),提供 50 + 可配置参数(主题、工具栏、导出格式等)。
可扩展组件化:允许注入自定义形状(如 UML / 流程图符号),模块拆分清晰(渲染 / 工具 / 协作逻辑独立),降低二次开发成本。
导出功能:支持将作品导出为 PNG、SVG 格式,或保存为 .excalidraw JSON 文件,便于后续编辑和分享。
零门槛体验网页版:
直接访问 https://excalidraw.com/,无需注册即可开始创作。
左侧工具栏提供画笔、形状、文本、橡皮擦等工具,快捷键/能快速唤起工具面板。
画完后点击右上角「下载」,支持 PNG、SVG 格式,或保存为 Excalidraw 专属格式以便后续编辑。

excalidraw集成指南
模块打包工具集成
若使用 Webpack 等模块打包工具,可直接以 ES 模块形式引入 Excalidraw:
import { Excalidraw } from'@excalidraw/excalidraw';
随后在组件中简单封装即可呈现功能完备的白板实例。例如,在 React 组件中:
functionApp() {
return (
<divstyle={{height: '600px' }}>
<Excalidraw
initialElements={[]}
onElementsChange={(elements) => console.log(elements)}
viewport={{ x: 0, y: 0, zoom: 1 }}
/>
div>
);
}
通过这种方式,可以轻松自定义白板的样式与交互,满足项目的个性化需求。
Next.js 集成
由于 Next.js 对服务端渲染的限制,Excalidraw 提供了动态导入方案。
首先,使用 dynamic
函数进行动态导入:
import dynamic from'next/dynamic';
const Excalidraw = dynamic(() =>import('@excalidraw/excalidraw').then((mod) => mod.Excalidraw), {
ssr: false, // 禁止服务端渲染,确保在客户端加载
});
然后在组件中正常使用
即可。
若需更复杂的自定义,还可通过封装高阶组件来实现,例如:
import { Excalidraw, convertElementToElementV2 } from'@excalidraw/excalidraw';
import'excalidraw/dist/Excalidraw.css';
const ExcalidrawWrapper = ({ ...props }) => {
// 自定义逻辑或样式
return<Excalidraw {...props} />;
};
exportdefault ExcalidrawWrapper;
这种方式确保了 Excalidraw 在 Next.js 应用中的高效运行。
Preact 支持
对于使用 Preact 的项目,Excalidraw 专门处理了兼容性问题。
只需在项目中设置 process.env.REACT_COMPILER
环境变量,即可无缝使用:
// 在项目配置中设置
define: {
'process.env.REACT_COMPILER': JSON.stringify('preact/compiler'),
}
Excalidraw 在 Preact 项目中也能保持功能与性能的一致性。
浏览器直接集成(Browser)
直接在浏览器中使用,无需复杂的构建工具,Excalidraw 提供了原生 HTML 脚本引入方式。
在页面中添加以下
标签:
html>
<htmlcharset="UTF-8">
<head>
<title>Excalidraw in browsertitle>
<style>
/* 自定义样式 */
style>
head>
<body>
<divid="root">div>
<scriptsrc="https://cdn.jsdelivr.net/npm/react@18/dist/react.development.js">script>
<scriptsrc="https://cdn.jsdelivr.net/npm/react-dom@18/dist/react-dom.development.js">script>
<scriptsrc="https://cdn.jsdelivr.net/npm/@excalidraw/excalidraw@1.2.3/dist/excalidraw.umd.js">script>
<script>
const { Excalidraw } = excalidraw;
const root = document.getElementById('root');
ReactDOM.render(
<Excalidraw
initialElements={[]}
onElementsChange={(elements) =>
console.log('Elements changed:', elements)}
viewport={{ x: 0, y: 0, zoom: 1 }}
/>,
root
);
script>
body>
html>
这种方式适合简单网页或快速原型开发,能迅速体验 Excalidraw 的功能。

适用场景
个人场景
对于个人用户,Excalidraw 是绝佳的思维辅助工具。
用它绘制思维导图、记录读书笔记,视觉化的呈现方式能有效提升记忆效率;
快速勾勒产品原型、用户旅程图,能让创作者聚焦创意本身,避免被细节束缚;
程序员还能用它绘制架构图、梳理算法逻辑,让抽象的思维变得清晰可触。
团队场景
在团队协作中,Excalidraw 的实时协同功能让远程会议焕发新生,成员可以在画布上实时标注、同步修改,告别传统工具的「机械感」沟通;
设计评审时,直接在画布上圈点反馈,减少了文字描述与实际效果之间的理解偏差;
会议纪要、流程文档等以可视化形式存储,也让知识沉淀与后期查阅更加高效。
企业场景
众多企业级客户的实践证明,Excalidraw 具有强大的适配能力。
Notion、VS Code、Obsidian 等平台已成功接入,企业能够快速打造专属的协作空间。
无论是内部培训白板还是客户方案演示工具,都能轻松实现。
对于金融、教育等对数据安全要求较高的行业,端到端加密与本地存储功能,更是满足了合规需求,避免敏感信息外流。
总结
Excalidraw 是一款开源的虚拟手绘风格白板工具,致力于解决数字协作工具生硬、缺乏温度的问题。它通过模拟真实手绘质感,提供无限画布、丰富绘图工具及开放格式存储,让个人创作更自由直观;借助实时协同编辑、灵活分享与离线优先模式,提升团队协作效率;以模块化集成与高度可定制性,方便开发者构建专属工具。
技术上基于 Canvas 2D 渲染,搭配实时协作算法,保障操作流畅与数据安全。适用于个人灵感记录、团队远程沟通、企业定制化协作等场景。平衡数字工具的高效与手绘的自然表达,为不同用户提供灵活且贴合需求的创意协作方案,
Github项目地址:https://github.com/excalidraw/excalidraw
AI时代,我们还为大家准备了Deepseek资料库,长按扫码发送 312即可获取。
