yft-design is a free, open source office suites project written in TypeScript and released under MIT. It has 1,671 GitHub stars, 337 forks and 18 open issues, and was last pushed 2 months ago. On this registry it ranks #13 of 18 tracked projects in Office Suites, with 5 head-to-head comparisons available. It gained 21 stars over the last 30 tracked days.

What is yft-design?

yft-design is an MIT-licensed online design editor written in TypeScript with Vue 3, fabric.js, and Element Plus, aimed at anyone who needs poster design and image editing without depending on a commercial design platform.

What it is

yft-design is a browser-based canvas design tool. It lives in the Vue 3 ecosystem: fabric.js handles canvas objects and controls, Element Plus supplies UI components, and Pinia manages state. The repository is organized around custom fabric extensions — fabricCanvas, fabricControls, fabricRuler, fabricTool, guideLines, hoverBorders, and wheelScroll — alongside a web worker directory for heavy rendering work and an extension directory of custom fabric objects, crop controls, and mixins.

The concrete problem it addresses is asset reuse and self-hosting. It is positioned by its authors as the open-source version of 稿定设计 (Gaoding Design), and the specific thing it replaces is a closed, vendor-hosted design service where artwork is trapped in a proprietary format. yft-design imports PDF, PSD, and SVG files and rebuilds them as editable canvas objects, then exports SVG, raster images, or PDF. Teams therefore continue from existing artwork instead of recreating it, and organizations can run the editor on their own infrastructure. Scenarios named in the README are poster generation, e-commerce product images, long-form article images, and video or WeChat official account covers.

Key capabilities

  • Import PDF with format restoration; image cropping during import is not supported.
  • Import PSD with partial effect restoration covering brightness, contrast, and color overlay.
  • Import SVG, without support for tspan fonts.
  • Export to SVG, raster image, and PDF.
  • Full text editing: font, size, bold, italic, underline, strikethrough, alignment, bullets, indent, clear format, line height, letter spacing, paragraph spacing, fill, shadow, and opacity.
  • Image editing: filters, tint applied as a mask, flip, border, shadow, and crop.
  • Editor mechanics: undo and redo history, keyboard shortcuts, right-click menu, page templates, snap alignment on move and scale, layer ordering, canvas zoom and move, marquee and click multi-select, grouping, and element coordinate and rotation control.

Who uses it and how

  • E-commerce sellers producing product images, starting from imported PSD or PDF source files and exporting raster or PDF output.
  • Content and marketing teams building long-form article images and WeChat official account or video covers from page templates.
  • Developers embedding a canvas editor in their own product, extending it through the extension directory of custom fabric objects, mixins, and crop controls.
  • Teams working on large documents: a stress demo renders 5,000 objects on one canvas, and long-running render work is offloaded to a web worker.
  • Self-hosters who prefer to run and control the editor themselves rather than use the hosted versions.

Getting started

The README gives three commands on Node 16 or later: pnpm install for dependencies, pnpm dev for debugging, and pnpm build for production. Hosted options are also listed — a free demo at https://demo.yft.design and a professional version at https://yft.design.

How it compares

The facts provide no list of paid products this project replaces, so comparison stays with the tools it names. It presents itself as the open-source counterpart to 稿定设计 (Gaoding Design), a commercial online design platform, and its topic list includes "canva-alternative", placing it in the same conversation as Canva. The distinction from those services is the MIT licence and the option to run the editor on your own infrastructure rather than working through a vendor-hosted product.

When to use it — and when not to

A self-hoster must supply Node 16 or later and run the pnpm build; the README names no database, object storage, or SMTP requirement, but it also gives no deployment, configuration, or environment documentation, so operation beyond a static build is undocumented. Several features are marked TODO, including page copy and paste, grid lines, the selection panel for hiding, renaming and reordering elements, batch element editing, and element locking, and PDF import does not support image cropping while SVG import does not support tspan fonts, so teams depending on those should look elsewhere. Documentation is thin and consists mainly of a feature list, a project structure tree, and contact points through WeChat, email, and a Telegram group, with no formal support process described; the repository carries 18 open issues against 1,644 stars and 333 forks.

project readme (upstream, from github) — read inline

yft-design

1,一款美观且功能强大的在线设计工具,具备海报设计和图片编辑功能,基于Canvas的开源版【稿定设计】。适用于多种场景,如海报生成、电商产品图制作、文章长图设计、视频/公众号封面编辑等。
2,适配稿定设计pdf还原,支持导入psd还原
3,可导出图片,svg,pdf

📞 联系我们

🌐 在线体验

版本 链接 描述
Demo https://demo.yft.design 免费体验版本
Pro https://yft.design 专业完整版本
性能 https://yft.design/zh/editor?mode=stress&count=5000&seed=42&partRender=1&canvasPerf=1 性能体验版本

💬 联系方式

平台 联系方式 说明
微信 15972699417 添加微信获取技术支持
邮箱 yft.design@163.com 商务合作与技术支持
Telegram 加入群组 技术交流与社区讨论

🚀 开发状态

介绍文章
介绍视频

image


psd解析
  </td>

pdf解析
  </td>

psd解析
  </td>

pdf解析
  </td>

🚀 项目运行

node >= 16+
pnpm install  // 安装依赖
pnpm dev      // debug
pnpm build    // prod

📖 项目结构

├── app                           // 静态资源
│   ├── fabricCanvas              // FabricCanvas
│   ├── fabricControls            // 选择器
│   ├── fabricRuler               // 标尺
│   ├── fabricTool                // 拖动
│   ├── guideLines                // 辅助线
│   ├── hoverBorders              // 预选择
│   └── wheelScroll               // 缩放
├── assets                        // 静态资源
│   ├── fonts                     // 在线字体文件
│   └── styles                    // 样式
├── components                    // 与业务逻辑无关的通用组件
├── configs                       // 配置文件,如:颜色,字体。
├── hooks                         // 供多个组件(模块)使用的 hooks 方法
├── extension                     // 自定义fabirc对象
│   ├── controls                  // 裁剪图片controls
│   ├── mixins                    // 裁剪图片mixins
│   └── object                    // 自定义元素对象
├── mocks                         // mocks 数据
├── plugins                       // 自定义的 Vue 插件
├── types                         // 类型定义文件
├── store                         // Pinia store,参考:https://pinia.vuejs.org/
├── utils                         // 通用的工具方法
├── views                         // 业务组件目录。
│    ├── Canvas                   // 编辑器对象
│    └── Editor                   // 编辑器模块
└── worker                        // web worker

📚 功能列表

基础功能

  • 历史记录(撤销、重做)
  • 快捷键
  • 右键菜单
  • 导入PDF(完美还原格式,不支持图片裁切导入)
  • 导入PSD(完美还原格式,支持部分特效还原,亮度,对比度,颜色覆盖)
  • 导入SVG(不支持tspan字体)
  • 导出本地文件(SVG、图片、PDF)

页面编辑

  • 页面添加、删除
  • 页面顺序调整
  • 页面复制粘贴(TODO)
  • 背景设置(纯色、渐变、图片)
  • 设置画布尺寸
  • 网格线(TODO)
  • 标尺
  • 画布缩放、移动
  • 页面模板
  • 选择面板(隐藏元素、层级排序、元素命名)(TODO)

元素编辑

  • 元素添加、删除
  • 元素复制粘贴
  • 元素拖拽移动
  • 元素旋转
  • 元素缩放
  • 元素多选(框选、点选)
  • 多元素组合
  • 多元素批量编辑(TODO)
  • 元素锁定(TODO)
  • 元素吸附对齐(移动和缩放)
  • 元素层级调整
  • 元素对齐到画布
  • 元素坐标、尺寸和旋转角度设置
文字
  • 文本编辑(颜色、高亮、字体、字号、加粗、斜体、下划线、删除线、对齐方式、项目符号、缩进、清除格式)
  • 行高
  • 字间距
  • 段间距
  • 填充色
  • 阴影
  • 透明度
图片
  • 滤镜
  • 着色(蒙版)
  • 翻转
  • 边框
  • 阴影
  • 裁切
形状
  • 填充色
  • 边框
  • 阴影
  • 透明度
  • 翻转
  • 编辑文字
线条
  • 颜色
  • 宽度
  • 样式

联系作者

wechat: 15972699417
email: yft.design@163.com

License

Licensed under the MIT License.

管理员

贡献者

Frequently asked questions

Is yft-design free to use?

yft-design is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does yft-design do?

yft-design is a powerful, visually stunning online design tool built with Vue3, fabric.js, and Element Plus. 基于fabric.js的开源版【稿定设计】。一款美观且功能强大的在线设计工具,具备海报设计和图片编辑功

What is yft-design written in?

yft-design is primarily written in TypeScript. Its source is publicly available at https://github.com/dromara/yft-design, and it has 1,671 GitHub stars.