☰
OpenPencil 的 Figma 兼容性全景:158 项功能逐项对比与实现现状解析
2026/9/27 10:02:02 网站建设 项目流程
  • 前端
  • 桌面应用
  • AI 应用
  • MCP 服务

【免费下载链接】open-pencil

AI-native design editor. Open-source Figma alternative.

项目地址:https://gitcode.com/gh_mirrors/op/open-pencil
点击查看免费下载

本文档(packages/docs/es/reference/figma-compatibility.md)以功能矩阵的形式,逐项对比了 Figma Design 的 158 项核心能力与开源 AI 原生设计编辑器 OpenPencil 的当前实现状态。阅读本文后,你可以快速掌握 OpenPencil 已覆盖的 94 项功能、18 项部分支持与 64 项待实现能力的具体边界,并了解每项能力背后的仓库源码支撑(Kiwi 编解码、CanvasKit 渲染、Yjs 协作、CLI 工具链等),从而准确判断 OpenPencil 是否满足你的迁移、二次开发或插件兼容需求。

一、功能矩阵总览与状态图例

Figma 兼容性是 OpenPencil 设计能力评估的核心指标。官方以「逐功能对照表」的方式维护这份矩阵,每个条目对应 Figma Design 中的一项具体能力,并标注 OpenPencil 的实现程度。表格采用三种状态标识:

  • ✅兼容(Supported)——该功能端到端可用;
  • 🟡部分支持(Partial)——核心行为已存在,但缺少部分子功能;
  • 🔲未实现(Not yet implemented)——当前版本尚无对应能力。

截至文档更新时间2026-03-07,矩阵覆盖158 项Figma 功能条目,其中:

94 项已纳入实现评估 —— 76 项 ✅ 完全支持、18 项 🟡 部分支持、64 项 🔲 尚未实现。

这一统计口径同时体现在 packages/docs/reference/figma-compatibility.md(英文原版)及其西班牙语、法语、意大利语、波兰语、俄语等多语言译本中,各语言版本内容保持一致。

二、界面与导航(Interface & Navigation)

2.1 已完整支持的界面能力

功能状态说明
工具栏✅UI3 风格底部工具栏:选择(Select)、画板(Frame)、分区(Section)、矩形、椭圆、直线、文本、手型(Hand)与钢笔(Pen)
图层面板(左侧栏)✅树形展开/折叠视图、拖拽排序、可见性切换、可调宽度
页面面板✅创建、删除、重命名页面;每页独立的视口状态
属性面板(右侧栏)✅分区包含外观、填充、描边、效果、排版、布局与位置;可调宽度
缩放与平移✅Ctrl+ 滚轮、捏合手势、⌘+/⌘−/⌘0(100%)/⌘1(适应)/⌘2(选中)、Space+ 拖拽、中键平移、手型工具(H)
标尺✅顶部与左侧标尺,带选区高亮带与坐标徽标
画布背景✅通过属性面板设置每页独立背景色
右键菜单✅剪贴板、层级顺序、编组、组件、可见性、锁定与移动至页面等操作
应用菜单(浏览器模式)✅文件、编辑、视图、对象、文本与排列菜单;Tauri 桌面端使用原生菜单

其中标尺与画布交互的实现位于 packages/core/src/canvas/rulers.ts 与 packages/core/src/canvas/ 下的渲染模块,与 Figma 的选区高亮与坐标提示行为保持一致。

2.2 部分支持与待实现项

功能状态说明
快捷键🟡核心快捷键、组件、层级顺序、可见性/锁定已实现;缩放工具、箭头、铅笔、翻转及部分文本格式尚未接线
AI 工具🟡经 OpenRouter 与 MCP 服务器提供 90 个工具;尚不支持 AI 生成图片或 AI 驱动的搜索
画布参考线🔲无法从标尺拖出参考线
操作菜单/命令面板🔲缺少 Figma 的快速动作搜索
查找与替换🔲无跨文档文本搜索/替换
图层轮廓视图🔲无全图层线框视图
自定义文件缩略图🔲导出时会生成缩略图,但无法自选
微调步长设置🔲默认 1px/10px,不支持自定义步长

三、图层与形状(Layers & Shapes)

3.1 基础形状与图层操作

功能状态说明
形状工具(矩形、椭圆、直线、多边形、星形)✅支持全部基础形状;多边形边数与星形内半径可配置
画板(Frame)✅内容裁剪、独立坐标系、Figma 风格创建与尺寸预设
编组✅⌘G编组、⇧⌘G取消编组
分区(Section)✅标题药丸、自动收纳重叠节点、随亮度自适应文字
圆弧工具(弧、半圆、圆环)✅arcData含起始/结束角度与内半径
图层类型与层级✅17 种节点类型,扁平 Map + 父子树结构
选择✅单击、Shift 连选、框选
对齐与位置✅属性面板中可调位置、旋转与尺寸
复制与粘贴✅标准剪贴板 + Figma Kiwi 二进制格式;支持复制为文本/SVG/PNG/JSX
锁定与解锁✅⇧⌘L切换锁定;锁定节点无法从画布选中/移动
可见性切换✅图层面板眼睛图标 +⇧⌘H快捷键
重命名图层✅图层面板双击内联重命名;Enter/Escape/失焦提交
置前/置后✅]与[快捷键,右键菜单同样可用
移动到页面✅右键菜单将选中节点跨页移动
批量编辑✅多选属性面板可编辑位置、尺寸、外观、填充、描边与效果;相同值正常显示,不同值显示Mixed
父子关系✅基于parentIndex的完整层级,拖拽即可换父容器

「圆弧工具」所依赖的arcData解析与渲染逻辑分散于 packages/core/src/canvas/strokes.ts、packages/core/src/canvas/fills.ts 及 packages/core/src/canvas/boolean.ts,并能在 SVG 导入/导出(packages/core/src/io/formats/svg/paths.ts)中完整往返。

3.2 部分支持与待实现项

功能状态说明
等比缩放🟡Shift 缩放保持比例;无独立缩放工具(K)
铅笔(手绘)工具🔲无自由手绘
蒙版🔲无形状蒙版裁剪
约束(响应式缩放)🔲无边缘/中心锚定
智能选择🔲不提供多选均匀分布/对齐
布局参考线🔲无列/行/网格叠加参考线
测量间距🔲无 Alt 悬停测距
查找相似对象🔲不识别匹配图层
复制/粘贴属性🔲无法跨图层复制填充/描边/效果

四、矢量工具(Vector Tools)

4.1 矢量编辑现状

功能状态说明
矢量网络✅与 Figma 兼容的模型,而非简单路径
钢笔工具✅角点、贝塞尔曲线、开放/闭合路径
矢量编辑🟡可创建;高级顶点编辑(弯曲、删点、连接)受限

「矢量网络」与布尔运算底层实现在 packages/scene-graph/vector-network.ts 与 packages/core/src/canvas/boolean.ts 中,采用与 Figma 一致的网络(半边缘)模型存储。

4.2 待实现项

布尔运算(并集、减去、交集、排除)、平整图层、描边转路径、文本转路径、形状构建器、路径偏移(内缩/外扩)、路径简化,均为 🔲 未实现状态。注意 packages/kiwi/README.md 中的一条关键约束:布尔运算负载使用 Figma 的 Kiwi 枚举名,SceneGraph 层的EXCLUDE是核心层概念,调用底层编解码器前应序列化为 Kiwi 的XOR——这为未来接入布尔运算保留了协议级兼容空间。

五、文本与排版(Text & Typography)

5.1 已实现能力

功能状态说明
文本工具与内联编辑✅画布原生编辑、透明 textarea、光标/选区/词选、拖选、双击/三击、富文本样式区间(⌘B/I/U、S按钮)
文本渲染(Paragraph API)✅CanvasKit Paragraph 完成字形塑造、断行与度量
系统字体加载✅默认 Inter;Tauri 端 font-kit(OnceLock 缓存 + 预加载),浏览器端queryLocalFonts
字体族与字重✅FontPicker 虚拟滚动、搜索、CSS 预览;属性面板可调字重
字号与行高✅排版分区中可编辑
文本路径(TEXT_PATH)🟡可导入、渲染、选择、缩放、编辑并导出 FigmaTEXT_PATH;逐字编辑需本地具备所引用字体的轮廓

字体加载的浏览器分支在 packages/core/src/text/fonts.ts 中直接调用queryLocalFonts(类型声明见 packages/core/src/global.d.ts),桌面端则走 font-kit 的 OnceLock 缓存路径,两者共同支撑了「系统字体」这一 ✅ 能力。

5.2 部分支持与待实现项

功能状态说明
文本对齐🟡基础对齐已实现;缺少垂直对齐与自动宽/高模式
文本样式🟡支持按选区加粗/斜体/下划线/删除线;无可复用命名样式预设
尺寸模式🔲无自动宽度、自动高度、固定尺寸模式
列表🔲无项目符号/编号列表
超链接🔲文本内无超链接
Emoji 与符号🔲渲染兼容性不完整
OpenType🔲无连字、风格化变体、表格数字
可变字体🔲不可调字轴(字重、宽度、倾斜)
CJK🔲中日韩文本渲染兼容性不完整
RTL🔲无右到左排版
图标字体🔲无字形特殊处理

六、颜色、渐变与图像(Color, Gradients & Images)

6.1 填充体系

功能状态说明
取色器(HSV)✅HSV 方块、色相滑杆、透明度滑杆、十六进制输入
纯色填充✅十六进制颜色 + 不透明度
线性渐变✅渐变停靠点 + 变换手柄
径向渐变✅经 CanvasKit shader 渲染
角向渐变✅锥形/扫掠渐变
菱形渐变✅四点菱形渐变
图片填充✅从 blob 数据解码,缩放模式含填充、适配、裁剪与平铺

渐变与图片填充的实际渲染由 packages/core/src/canvas/fills.ts 与 packages/core/src/canvas/gradients/ 负责,均构建于 CanvasKit 之上。

6.2 部分支持与待实现项

功能状态说明
添加图片与视频🟡可渲染图片填充;不支持拖拽导入或视频
颜色模型🟡取色器支持 HSV + 十六进制;无 HSL/RGB 模式切换
图案填充🔲无重复图案
混合模式🔲无图层/填充混合模式(正片叠底、滤色、叠加等)
图像调整🔲无曝光、对比度、饱和度等
裁剪图片🔲无交互式裁剪
吸管工具🔲无法从画布取色
混合选区调色🔲无法跨异构选区调色

七、效果与属性(Effects & Properties)

7.1 阴影、模糊与描边

功能状态说明
外阴影✅偏移、模糊半径、颜色,经 CanvasKit 滤镜实现
内阴影✅内嵌阴影效果
图层模糊✅高斯模糊
背景模糊✅模糊图层后方内容
前景模糊✅模糊前方内容
描边粗细✅属性面板可配置
描边端点✅NONE、ROUND、SQUARE、ARROW_LINES、ARROW_EQUILATERAL
描边连接✅斜接、斜面、圆角三类
虚线✅实/空段描边图案
描边对齐✅内/中心/外,基于裁剪的渲染与 Figma 行为一致
各边独立描边粗细✅上/右/下/左,带侧边选择器
圆角半径✅统一或逐角圆角,属性面板独立开关

阴影实现见 packages/core/src/canvas/shadows.ts,模糊与描边相关逻辑分布在 packages/core/src/canvas/effects.ts 与 packages/core/src/canvas/strokes.ts。

7.2 待实现项

功能状态说明
圆角平滑(iOS 风格)🔲无连续圆角
单层多填充/多描边🔲不支持堆叠填充与描边

八、自动布局(Auto Layout)

8.1 布局引擎与完整能力

功能状态说明
水平与垂直流✅Yoga WASM flexbox 引擎
切换自动布局✅画板或包选后按⇧A
间距✅属性面板可配置
内边距✅四边独立
主轴对齐✅起点、居中、终点、space-between
交叉轴对齐✅起点、居中、终点、拉伸
子项尺寸✅固定、填充、贴合
换行✅Flex wrap 多行布局
Grid 自动布局✅基于 Yoga 分支的 CSS Grid——列/行轨道、间距、跨格
嵌套流✅不同方向的嵌套自动布局画板
自动布局内拖拽排序✅可视化插入指示器

自动布局的引擎层位于 packages/core/src/layout/,以 Yoga WASM 为运行时,Grid 能力通过定制分支扩展出轨道与跨格语义。

8.2 待实现项

功能状态说明
最小/最大宽高🔲Figma 支持自动布局子项的最小/最大约束

九、组件与设计系统(Components & Design Systems)

9.1 组件体系全链路

功能状态说明
创建组件✅⌥⌘K从画板/编组创建或包裹选区;组件属性 UI 支持文本、可见性、实例交换与变体
组件集✅⇧⌘K合并组件;多维稀疏变体创作、重复校验、左上默认值
组件实例✅资源浏览、插入、可编辑组件属性与覆盖、变体切换、实时同步、更新审查
变体✅多维稀疏组合、创作、实例切换、重复校验、左上回退
组件属性✅布尔可见性、文本、实例交换属性的创作与实例编辑
覆盖传播✅主组件变更传播到全部实例,且保留覆盖
分离实例✅⌥⌘B将实例还原为画板
跳转到主组件✅跨页导航到源组件
资源库(Libraries)✅不可变本地/存储修订、选择性发布、启用、范围化更新审查、离线物化与.fig持久化

9.2 部分支持与待实现项

功能状态说明
变量🟡COLOR完整 UI(对话框、TanStack Table、内联编辑、撤销/重做、演示集合);FLOAT/STRING/BOOLEAN已定义但无编辑 UI
变量集合与模式🟡集合、模式、activeMode 切换可用;无变量驱动主题化 UI
样式(颜色/文本/效果/布局)🔲无可复用命名样式预设

十、原型(Prototyping)

原型相关能力当前整体未实现。英文版矩阵逐项列出了 🔲 状态的功能面,包括:原型连接、触发器(点击/悬停/拖拽等)、动作(导航/叠加/滚动等)、动画与转场、智能动画(Smart Animate)、叠加层(模态/弹层)、滚动与溢出行为、原型流程(命名起始点)、原型变量(条件逻辑)、缓动与弹簧动画、全屏原型演示。西班牙语文档则以一句话概括:连接、触发器、动作、动画、转场、叠加、滚动、流程、条件逻辑、曲线与全屏演示均尚未提供。总之,原型链路是 OpenPencil 与 Figma 差距最大的模块之一,适合用作后续版本规划的观察点。

十一、导入与导出(Import & Export)

11.1 文件格式互操作

功能状态说明
导入.fig✅完整 Kiwi 编解码器:194 个定义,每个NodeChange约 390 个字段
导出.fig✅Kiwi 编码 + Zstd 压缩 + 缩略图生成;COMPONENT/COMPONENT_SET映射为SYMBOL以支持往返
保存 / 另存为✅⌘S/⇧⌘S;Tauri 原生对话框、Chrome/Edge 的 File System Access API、Safari 下载回退
从 Figma 粘贴✅解码剪贴板中的 Kiwi 二进制
复制到 Figma✅生成 Figma 可读的 Kiwi 二进制
图片/SVG/PDF 导出🟡PNG/JPG/WEBP/SVG ✅;PDF 🔲
跨工具搬运资源✅Figma 剪贴板(Kiwi 二进制)+ 复制为文本/SVG/PNG/JSX

Kiwi 是 OpenPencil 与 Figma 二进制互通的基石,其协议定义存放在 packages/kiwi/src/fig/schema/fig.kiwi(5623 行的 schema 源文件,定义NodeChanges、MessageType、NodePhase等枚举与消息结构),编解码实现见 packages/kiwi/src/fig/codec.ts、容器封装见 packages/kiwi/src/fig/container.ts。正如 packages/kiwi/README.md 所描述的,该运行时基于 Evan Wallace 的 Kiwi(MIT License)改编,并保持了「不依赖核心/应用/Vue/CLI/MCP 代码」的纯净边界。完整.fig归档(含图片资源)的解析则由@open-pencil/fig承担,再经@open-pencil/core/io转换为可编辑的 SceneGraph。

11.2 待实现项

功能状态说明
Sketch 导入🔲无.sketch解析器
版本历史🔲无法浏览与还原历史版本

十二、插件 API 与脚本(Plugin API & Scripting)

功能状态说明
带 Figma Plugin API 的eval✅无头 JavaScript 执行,figma全局对象与 Figma 插件接口面匹配

这是 OpenPencil 最具迁移价值的能力之一:已接入 Figma 插件生态的脚本,理论上可以通过eval命令在 OpenPencil 中无头运行。该命令的实现位于 packages/cli/src/commands/eval.ts,CLI 整体入口见 packages/cli/src/index.ts。

十三、协作与开发者模式(Collaboration & Dev Mode)

13.1 已实现能力

功能状态说明
实时多人在线✅基于 Trystero + Yjs CRDT 的 P2P 协作,支持光标与跟随视图,无需服务器
Tailwind CSS v4 导出✅从代码面板、CLI 或程序化方式导出带 Tailwind 工具类的 HTML
MCP 服务器✅@open-pencil/mcp支持 stdio 与 HTTP 传输;共 90 个工具(87 个核心工具 + 3 个文件管理工具)
CLI 工具✅无头 CLI:info、tree、find、export、analyze、node、pages、variables、eval

实时协作的传输层与 CRDT 同步分别位于 src/app/collab/transport/trystero.ts 与 src/app/collab/yjs-sync.ts,P2P 直连的架构使多人在线不需要中心服务器。CLI 各子命令与文档矩阵一一对应,例如info、tree、find、export、analyze、node、pages、variables分别对应 packages/cli/src/commands/ 下的同名文件;MCP 服务器实现见 packages/mcp/,可通过@open-pencil/mcp接入支持 MCP 的 AI 客户端。

13.2 部分支持与待实现项

功能状态说明
开发者模式(检查)🟡代码标签页展示选区的 JSX 表示;无 CSS 属性或交付规格
代码片段🟡JSX 导出带语法高亮与复制;无 CSS/Swift/Kotlin 片段
评论🔲无标记、线程或解决
光标聊天🔲画布上无内联聊天气泡
分支与合并🔲无版本分支
Code Connect🔲不将设计组件链接到代码
Figma for VS Code🔲无编辑器插件集成

十四、Figma Draw

功能状态说明
插画工具🔲无 Figma Draw 专用绘图工具
图案变换🔲无带变换的重复图案生成

Figma Draw 作为 Figma 中较新的插画工具集,在 OpenPencil 中尚未启动实现。

十五、结论:兼容边界与适用判断

从 158 项对比矩阵可以得出几条务实结论:

  1. 核心设计编辑闭环已打通:界面导航、图层形状、矢量网络、文本排版、渐变填充、效果属性、自动布局、组件体系、.fig导入导出等 76 项核心能力完全支持,日常设计稿的创建、编辑与 Figma 文件往返已可端到端工作。
  2. 互操作是最大差异化优势:基于 Kiwi 的.fig双向编解码(packages/kiwi/src/fig/)与 Figma 剪贴板互通,加上 90 工具的 MCP 服务器与 9 个子命令的 CLI,使 OpenPencil 既能作为 Figma 的替代编辑器,也能无缝嵌入 AI/自动化工作流。
  3. 明确的未覆盖面:原型(Prototyping)、布尔运算、文本高级排版(列表/链接/OpenType/CJK/RTL)、混合模式、样式系统(Styles)、版本历史与 Sketch 导入仍是 🔲 状态;变量、开发者模式等 18 项能力处于「核心可用、细节待补」的部分支持阶段。

如果你正在评估从 Figma 迁移或在其生态上构建工具链,建议先以本矩阵中 ✅ 清单核对你的核心工作流(尤其是.fig往返与插件eval兼容),再针对 🟡 项做小规模验证,最后将 🔲 项列入风险清单。矩阵的持续维护(最近更新于 2026-03-07)也意味着这份兼容边界会随版本迭代不断收窄——值得作为长期跟踪的基准文档。

  • 前端
  • 桌面应用
  • AI 应用
  • MCP 服务

【免费下载链接】open-pencil

AI-native design editor. Open-source Figma alternative.

项目地址:https://gitcode.com/gh_mirrors/op/open-pencil
点击查看免费下载

相关推荐

上一篇:FunClip终极指南:3步掌握本地AI视频剪辑神器
下一篇:LizzieYzy:你的围棋AI分析教练 - 从复盘困惑到精准提升的解决方案

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询