yft-design is a free, open source office suites project written in TypeScript and released under MIT. It has 1,644 GitHub stars, 333 forks and 18 open issues, and was last pushed 15 days ago. On this registry it ranks #9 of 11 tracked projects in Office Suites, with 5 head-to-head comparisons available.

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 添加微信获取技术支持
邮箱 [email protected] 商务合作与技术支持
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

📚 功能列表

基础功能

页面编辑

元素编辑

文字
图片
形状
线条

联系作者

wechat: 15972699417
email: [email protected]

License

Licensed under the MIT License.

管理员

more-strive
more-strive(作者)
Qiu-Jun
Qiu-Jun
zjc2233
zjc2233

贡献者

more-strive
more-strive(作者)
Qiu-Jun
Qiu-Jun
zjc2233
zjc2233
wohuweixiya
wohuweixiya
zdw1011781461
zdw1011781461
mjhcc365
mjhcc365
ieleg
ieleg
qq404388339
qq404388339
sledgehuang
sledgehuang

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,644 GitHub stars.