社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

Github 99.5K star,这款开源工具让团队协作爽到飞起,手绘风格绝了!

编程技术进阶 • 2 周前 • 40 次点击  

点击上方卡片预约视频号直播

在数字化协作工具追求「像素级精准」的时代,一款能保留手绘温度、兼顾灵活协作与开放生态的工具显得尤为珍贵。

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), {  
    ssrfalse// 禁止服务端渲染,确保在客户端加载  
  });  

然后在组件中正常使用  即可。

若需更复杂的自定义,还可通过封装高阶组件来实现,例如:

  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即可获取。

图片

来都来了,点个在看再走吧~~~



图片

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/182180
 
40 次点击