Figma 替代品 Excalidraw 安装和使用教程

news2024/11/26 16:37:29

如今远程办公盛行,一个好用的在线白板工具对于团队协作至关重要。然而,市面上的大多数白板应用要么功能单一,要么操作复杂,难以满足用户的多样化需求。尤其是在进行头脑风暴、流程设计或产品原型绘制时,我们常常会遇到以下痛点:

  • 绘图工具不够直观,学习成本高;
  • 缺乏协作功能,难以实时沟通;
  • 无法保护隐私,敏感信息容易泄露;
  • 界面单调,缺乏表现力和创意激发。

那么,有没有一款白板工具能够兼顾易用性、协作性、安全性和创造力呢?今天给大家推荐一个强大的开源项目 - Excalidraw。

Excalidraw 简介

Excalidraw 是一个开源的虚拟手绘风格白板工具,使用 React 构建,上线于 2020 年 1 月,非常年轻。它提供了实时协作和端到端加密功能,让你的远程协作更有创意、更安全。Excalidraw 旨在为开发者和最终用户提供一个简单、直观且功能强大的绘图体验。

一个优秀的白板工具不仅要满足基本的绘图需求,更要为用户提供愉悦的创作体验。Excalidraw 的设计始终围绕着以下核心理念:

  1. 简单直观:上手即用,无需学习复杂操作。
  2. 手绘风格:独特的视觉效果,激发创意思维。
  3. 实时协作:多人同时编辑,ideas 即时碰撞。
  4. 隐私至上:端到端加密,保护你的创意成果。

从 2020 年开源开始,Excalidraw 的 Star 数量一路猛涨,目前 Excalidraw 在 GitHub 上已经获得了超过 7.7 万颗星。

Excalidraw 诞生背景

2020 年初的一个周末,Facebook 工程师 Vojtech Rinik 注意到 zwibbler.com/demo 移除了一些基本的绘图功能,便突发奇想,决定重新创建一个简单的绘图工具。

Vjeux 除了是 Excalidraw 的作者之外,还是 React Native、Prettier 的联合创始人,也是 CSS-IN-JS、Yoga、React Conf 的创建者。

Vojtech 在 Twitter 上分享了他的进展:

在短短几个小时内,他就实现了基本的绘图功能,包括椭圆、文本输入,以及按住 Shift 键绘制完美圆形或正方形的功能。随后,他又添加了自定义字体、选择和删除功能。

这个项目最初被命名为 “Excalibur”,这个名字是由知名开发者 Ken Wheeler 提议的。Vojtech 继续完善项目,增加了移动元素、鼠标移出窗口、取消文本输入等功能,并将代码提交到了 GitHub 上。

很快,这个项目就引起了开发者社区的关注。人们被其简洁的界面和手绘风格所吸引,纷纷参与到项目的开发中来。随着功能的不断完善和社区的持续贡献,Excalidraw 逐渐发展成为了今天我们所看到的强大工具。

Excalidraw 的功能特色

Excalidraw 提供了丰富的功能,满足各种绘图和协作需求。核心功能如下:

绘图体验

  • 手绘风格:独特的视觉效果,让你的图表更有个性。
  • 丰富工具:矩形、圆形、箭头、自由画笔等多种绘图工具。
  • 无限画布:自由绘制,不受空间限制。
  • 图形库:提供常用图形集合,快速插入。

协作功能

  • 实时多人协作:多人同时编辑,激发创意火花。
  • 端到端加密:保护你的创意和隐私。
  • 分享链接:一键生成只读链接,方便分享。

使用便利性

  • 离线支持:PWA 技术,支持离线使用。
  • 本地优先:自动保存到浏览器,不怕数据丢失。
  • 导出功能:支持 PNG、SVG 和剪贴板导出。
  • 深色模式:保护眼睛,适合夜间使用。

开发者友好

  • npm 包:提供 React 组件,方便集成到自己的应用。
  • 开源开放:可以自由定制和扩展功能。
  • 详细文档:提供全面的开发文档和示例。

多语言支持

  • 国际化:支持多种语言界面,满足全球用户需求。

Excalidraw vs. 其他白板工具

为了更直观地展示 Excalidraw 的优势,我们可以将其与市面上的其他主流白板工具进行对比:

特性ExcalidrawMiroWhimsicalFigma
价格免费开源付费付费付费
手绘风格
实时协作
端到端加密
离线使用
开源可定制
学习曲线
适用场景通用专业团队协作快速原型专业设计

虽然 Miro 在专业团队协作方面略胜一筹,Figma 则在设计专业度上有优势,但 Excalidraw 在易用性、隐私保护和开源友好度上独树一帜。特别是对于小型团队和个人用户来说,Excalidraw 提供了一个完美的平衡点。

Excalidraw 的安装使用

Excalidraw 的安装和使用相对简单,提供了多种方式以适应不同的需求。

集成到其他工具中

如果你想将 Excalidraw 集成到自己的项目中,可以按以下步骤操作:

首先,确保你的系统已安装 Node.js (版本 >= 12)。

然后,使用 npm 安装 Excalidraw 包:

npm install @excalidraw/excalidraw

或者使用 yarn:

yarn add @excalidraw/excalidraw

在你的 React 组件中使用 Excalidraw:

import { Excalidraw } from "@excalidraw/excalidraw";

function App() {
  return (
    <div style={{ height: "500px" }}>
      <Excalidraw />
    </div>
  );
}

私有化部署

对于希望自托管 Excalidraw 的用户,可以使用 Docker 进行部署。

对于没有技术背景的同学而言,你也不用担心安装问题,Sealos 应用商店提供了一键部署的应用模板,点一下鼠标即可完成部署,非常丝滑。

如果你想快速部署一个 Excalidraw,又不想陷入繁琐的安装和配置过程,可以试试 Sealos。

直接打开 Excalidraw 应用模板,然后点击右上角的 “去 Sealos 部署”。

如果您是第一次使用 Sealos,则需要注册登录 Sealos 公有云账号,登录之后会立即跳转到模板的部署页面。

直接点击右上角的 “部署应用” 开始部署。部署完成后,直接点击应用的 “详情” 进入该应用的详情页面。

等待应用状态变成 running 之后,直接点击外网地址便可打开 Excalidraw 的可视化界面。

除此之外,还有另外一种打开方式,先刷新 Sealos 桌面 (也就是在 bja.sealos.run 界面刷新浏览器),然后你就会发现 Sealos 桌面多了个图标:

直接点击这个图标就可以打开 Excalidraw 的可视化界面了。

是不是有点似曾相识?没错,很像 Windows 的快捷方式!

单机操作系统可以这么玩,Sealos 云操作系统当然也可以这么玩。

Excalidraw 的基础使用

下面我们来看下 Excalidraw 的基本功能和使用技巧。

先来看看 Excalidraw 的手绘效果:

除此之外,还可以绘制网页的线框图、步骤图、各种流程图、看板图等等。

线框图:

各种火柴人:

各种项目吉祥物:

想要增加绘图效率,最好的方式就是使用快捷键。我们可以在右下角的快捷键帮助中看到所有快捷键。

总结

总的来说,Excalidraw 是一个充满潜力的开源项目,它正在重新定义我们的协作白板体验。无论你是开发者、设计师,还是普通用户,Excalidraw 都值得一试。它不仅能提高你的工作效率,还能激发创意,让远程协作变得更加有趣和高效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1985686.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux入门到精通-第二十章-bufferevent(开源高性能事件通知库)

目录 参考bufferevent简单介绍工作流程事件Api新建事件节点 bufferevent_socket_new设置事件节点回调bufferevent_setcb使事件势能bufferevent_enable发送数据bufferevent_write接收数据bufferevent_read evconnlistener的简介 参考 视频教程 libevent的基本使用 libevent–bu…

HslCommunicationDemo各品牌Plc通信测试软件工具

目录 1、HslCommunicationDemo程序包 2、ModbusTCP举例说明 (0)概述 &#xff08;1&#xff09;线圈写操作 &#xff08;2&#xff09;寄存器写操作 3、C#工程中DLL库文件使用 &#xff08;1&#xff09;创建Winform程序工程 &#xff08;2&#xff09;写寄存器 1、HslC…

【Linux】匿名管道|命名管道|pipe|mkfifo|管道原理|通信分类|管道的特征和情况

目录 ​编辑 进程间通信 为什么要有进程间通信 进程通信的目的 进程间通信分类 如何理解通信 管道 匿名管道 管道原理 半双工 通信两问 pipe 演示 管道情况 管道的特征 命名管道 mkfifo指令 mkfifo接口 命名管道提供的是流式服务 匿名管道与命名管道的…

day08 1.进程间通信

work1.c #include <myhead.h> //要发送的消息类型 struct msgbuf {long mtype;char mtext[1024]; };#define SIZE sizeof(struct msgbuf)-sizeof(long)int main(int argc, const char *argv[]) {pid_t pid fork();if(pid -1){perror("fork error");return -…

Webpack入门基础知识及案例

webpack相信大家都已经不陌生了&#xff0c;应用程序的静态模块打包工具。前面我们总结了vue&#xff0c;react入门基础知识&#xff0c;也分别做了vue3的实战小案例&#xff0c;react的实战案例&#xff0c;那么我们如何使用webpack对项目进行模块化打包呢&#xff1f; 话不多…

RPA与智慧政务的关系

自1992年国务院明确提出构建全国行政机关办公决策系统&#xff0c;我国政府信息化建设已走过三十余年历程&#xff0c;并取得了阶段性成果&#xff0c;随着社会需求的变化以及信息技术和数字化工具的不断完善&#xff0c;人们对政府的信息化建设也提出了新的要求&#xff0c;推…

【C#语音文字互转】C#语音转文字(方法一)

Whisper.NET开源项目&#xff1a;https://github.com/sandrohanea/whisper.net/tree/main 一. 环境准备 在VS中安装 Whisper.net&#xff0c;在NuGet包管理器控制台中运行以下命令&#xff1a; Install-Package Whisper.net Install-Package Whisper.net.Runtime其中运行时包…

uniapp 实现自定义缩略滚动条

<template><view class"container-scroll"><!-- 文字导航 --><scroll-view class"scroll-view-text" scroll-x"true" v-if"type 1"><navigator:url"item.url"class"scroll-view-item"…

LE-50821F/FA激光扫描传感器|360°避障雷达之功能与连接使用说明

LE-50821F/FA激光扫描传感器|360避障雷达广泛应用于工业自动化、移动机器人应用场景中的环境感知、高精度定位&#xff08;如建图、扫描、避障、防护等&#xff09; LE-50xxxF系列升级扫描频率最高可达600KHz​​​​。 本文重点介绍LE-50821F/FA激光扫描传感器|360避障雷达之…

【C++】二维数组 数组名

二维数组名用途 1、查看所占内存空间 2、查看二维数组首地址 针对第一种用途&#xff0c;还可以计算数组有多少行、多少列、多少元素 针对第二种用途&#xff0c;数组元素、行数、列数都是连续的&#xff0c;且相差地址是有规律的 下面是一个实例 #include<iostream&g…

FreeRTOS基础入门——FreeRTOS的系统配置(三)

个人名片&#xff1a; ​ &#x1f393;作者简介&#xff1a;嵌入式领域优质创作者&#x1f310;个人主页&#xff1a;妄北y &#x1f4de;个人QQ&#xff1a;2061314755 &#x1f48c;个人邮箱&#xff1a;[mailto:2061314755qq.com] &#x1f4f1;个人微信&#xff1a;Vir202…

基于大模型的Agent

2023年&#xff0c;对于所有的人工智能领域只有一个共同的主题——大模型。大模型的受关注程度与发展速度可谓前所未有。其中&#xff0c;基于大模型的Agent又是最近几个月大模型领域的热点。这不开始研究没有几个月&#xff0c;综述文章都出来了&#xff0c;你说快不快&#x…

FashionAI比赛-服饰属性标签识别比赛赛后总结(来自 Top14 Team)

关联比赛: FashionAI全球挑战赛—服饰属性标签识别 推荐大家看本篇博客之前&#xff0c;看一下数据集制作的方法&#xff0c;如何做一个实用的图像数据集 PS&#xff1a;我是参加完比赛之后才看的&#xff0c;看完之后&#xff0c;万马奔腾.....&#xff0c;因为发现比赛中还…

62 函数参数——传递参数时的序列解包

与可变长度的参数相反&#xff0c;这里的序列解包是指实参&#xff0c;同样也有 * 和 ** 两种形式。 ① 调用含有多个位置参数的函数时&#xff0c;可以使用 Python 列表、元组、集合、字典以及其他可迭代对象作为实参&#xff0c;并在实参名称前加一个星号&#xff0c;Python …

element-ui/plus使用el-date-picker周 选择器返回时间范围处理案例

element-ui/plus使用el-date-picker周 选择器返回时间范围处理案例 如图所示 <el-date-pickerchange"changeTime":picker-options"{ firstDayOfWeek: 1 }"v-model"value1"type"week"format"YYYY年 第ww周"placeholder&…

C++初学者指南-5.标准库(第二部分)--数值运算算法

C初学者指南-5.标准库(第二部分)–数值运算算法 文章目录 C初学者指南-5.标准库(第二部分)--数值运算算法iota (注意不是itoa函数)Reductions reduce transform_reduce遗留操作&#xff08;无法并行执行&#xff09;accumulate (≈ reduce) C98inner_product (≈ transform_r…

sanger序列拼接--一次错误示范

文章目录 目的实现步骤 目的 NGS得到了很多的reads&#xff0c;其中有一些paired reads我想根据overlap 搭建起来&#xff0c;因为我对序列的ID做了删减&#xff0c;所以再pandaseq那里跑不通。 总结来说&#xff0c;目的很简单&#xff0c;就是把 有重叠区域的 reads 搭起来…

【学习笔记】A2X通信的协议(二)- A2X配置参数

目录 5. A2X配置参数 5.1 一般说明 5.2 A2X配置参数的配置和优先级 5.2.1 一般说明 5.2.2 A2X配置参数的优先级 5.2.3 通过PC5进行的A2X通信的配置参数 5.2.4 广播远程ID&#xff08;BRID&#xff09;的配置参数 5.2.5 直接检测和避免&#xff08;DDAA&#xff09;的配…

解决 Beyond Compare 30天过期问题

解决 Beyond Compare 30天过期的步骤如下&#xff1a; 1、使用快捷键WinR打开运行窗口&#xff0c;输入regedit并回车&#xff0c;打开注册表编辑器。 2、在注册表编辑器中&#xff0c;找到Beyond Compare的注册表位置&#xff0c;路径通常是HKEY_CURRENT_USER\Software\Scoot…

【redis】springboot 用redis stream实现MQ消息队列 考虑异常ack重试场景

redis stream是redis5引入的特性&#xff0c;一定程度上借鉴了kafka等MQ的设计&#xff0c;部署的redis版本必须 > 5 本文主要讲的是思路&#xff0c;结合简单的源码分析&#xff08;放心&#xff0c;无需深入大量源码&#xff09;&#xff1b;讲述在redis stream文档缺乏&a…