Penpot 功能拆解:开源设计工具如何打通矢量画布到代码交付
【免费下载链接】penpotPenpot: The open-source design platform for Product teams that need scalable collaboration.项目地址: https://gitcode.com/GitHub_Trending/pe/penpot
设计稿交付给开发后常被"凭感觉重画",根源是设计文件格式不开放。Penpot 用 SVG、CSS、JSON 这类开放标准描述设计对象,为产品团队提供画布、设计系统与开发者检查面板同源的一套开源设计与原型工具。
项目定位
Penpot 采用 MPL 2.0 开源协议,由 Kaleidos 主导开发,并被认定为数字公共产品(DPG)。它同时提供两种形态:官方云版(SaaS,注册即用)和自托管版,后者可通过 Docker、Kubernetes 或托管平台部署在自己的服务器上,设计数据完全留在组织内部,满足合规与数据主权要求。
与 Figma 等闭源工具的主要差异有三点:文件底层是 SVG 而非私有格式,导出和解析都走开放标准;支持自托管,不依赖厂商服务;设计即代码——前端渲染、导出、检查面板共享同一套 CSS 语义(Flexbox、CSS Grid),并额外提供 MCP 服务器、插件系统和 API,把设计工作区变成可编程的对象。
绘制:从矩形到响应式布局
矢量绘制覆盖 Pen、矩形、椭圆、路径与布尔运算,布局则直接复用 CSS 标准。选中任意图层或组合后按 Shift+A 添加 Flex Layout,即可设置 direction、align、justify、gap、padding 等属性,语义与 CSS Flexbox 一一对应;也支持 CSS Grid。元素通过约束(锚点、相对定位)跟随父级画板缩放,画布上调整画板宽度,内部元素自动重排。
组件与变体怎么建
组件由主组件(Master)和实例(Instance)构成。操作步骤:选中图层 → Ctrl+K(或右键「Create component」)→ 在 Assets 面板管理。实例可覆盖文字、颜色等属性,主组件修改后其余实例自动同步;按钮的不同状态和尺寸用变体(Variants)表达,覆盖关系可通过「Reset overrides」一键还原。
设计标记定义颜色、尺寸与主题
Penpot 内置原生 Design Tokens(设计标记),把颜色、圆角、间距等定义为可引用的变量,支持别名(一个标记指向另一个标记)、算术运算(如 spacing-2 * 2)和按主题分组切换。设计稿里应用标记而非裸值后,换肤或改尺寸只需修改标记本身。
交互原型:从触发器到 View mode 走查
在原型面板里为图层添加触发器(点击、悬停、进入视口等)与动作(跳转页面、打开覆盖层),并选择过渡动画(移动、淡入淡出、滑入)。完成后切到 View mode(查看模式)像真机一样点通整个流程,也可生成分享链接给评审人只读体验。
面向开发的交付:Inspect 与导出
右侧面板切到 Inspect 标签即进入检查模式,对开发者只读。悬停图层可看间距测量;Info 面板按样式分组展示属性,点击复制按钮可直接复制整段 CSS、单条属性或 SVG/HTML 代码;导出支持 SVG、PNG、PDF,代码模式(Code mode)则把整个画板渲染为 CSS 结构供直接取用。
本地用 Docker 起一个团队版
- 官方云版:浏览器打开云版注册即可使用,无需安装,适合先体验。
- 自托管(Docker):先安装 docker 与 docker compose,克隆仓库后一条命令拉起,入口默认 http://localhost:9001:
git clone https://gitcode.com/GitHub_Trending/pe/penpot docker compose -p penpot -f docker/images/docker-compose.yaml up -d- 要点:用
PENPOT_VERSION环境变量锁定镜像版本(写入 .env 或命令行均可);升级走docker compose pull后重建容器,官方建议小步升级而非跨大版本;关闭注册后新增账号需用manage.py create-profile管理命令。 - 开发者环境:仓库根目录提供
./manage.sh run-devenv,用 Docker 拉起前后端联调环境,详见 docs/technical-guide/developer/devenv.md。
生态与资料
- 官方文档:docs/,含用户指南、技术指南与插件 API 参考
- 插件示例与运行时:plugins/,覆盖令牌导出、图标库、对比度检查等场景
- MCP 服务器源码:mcp/,支持 AI 工具读写设计文件
- 社区:官方 Discourse 论坛提供提问排障、功能改进与多语言翻译等板块
Penpot 的设计文件即 SVG,检查面板输出即 CSS,交付链路中每个环节都有对应产物。自托管与插件体系则把这套流程的边界交给了团队自己。
【免费下载链接】penpotPenpot: The open-source design platform for Product teams that need scalable collaboration.项目地址: https://gitcode.com/GitHub_Trending/pe/penpot
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考