TypeScript工具站

fabric photo — TypeScript 工具站模板

作者 ximing

基于不可变数据模型与fabric 6的纯前端图片编辑器,React组件与内核分离,适合深度定制。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

1 个预览视图

已检查补充预览来源,暂未找到更多可用的页面或手机端截图。

首页
桌面端截图

浏览首屏、内容层次与整页布局。

目前有 1 张原始预览,可打开完整图片查看设计细节。

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-09-05查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

不可变数据模型内核,编辑状态可追溯、可撤销

02

fabric 6 仅作渲染投影,数据层与渲染层解耦

03

React 组件包零编辑逻辑,Figma 式界面风格

04

支持裁剪、旋转、绘图、形状、文本、马赛克等常用编辑

05

内核支持无头模式,可脱离 UI 使用

06

真实在线演示,GitHub Pages 部署

模板详细介绍

fabric photo 是一个基于 Canvas 的纯前端图片编辑器项目,核心卖点在于其架构设计:用不可变数据模型(Doc / EditorState / Step / Transaction)驱动编辑状态,fabric 6 仅作为渲染投影,UI 层采用 Figma 式 React 组件。整个仓库以 monorepo 组织,分为内核(@gmi/fp-core)、React 组件包(@gmi/fp-react)和演示站三部分,内核与 UI 完全解耦,甚至可以在无头模式下运行全部编辑语义。

功能上覆盖了常见的图片编辑需求:裁剪、旋转、绘图(涂鸦/直线/箭头)、形状绘制、文本编辑、马赛克涂抹、缩放平移、撤销重做以及导出 PNG/Blob。所有编辑操作都通过 dispatch 提交事务,历史记录基于 Step 反转实现,数据层与渲染层分离,拖拽预览直接修改 fabric 对象,手势结束才提交 Step,这种设计让状态管理更可预测,也方便扩展新工具。

项目提供真实在线演示,可直接体验完整功能。但注意:包尚未发布到 npm,目前仅限仓库内 workspace 引用;fabric 6.x 存在两条已知安全漏洞(SVG 导出路径),作者评估为不可达风险并接受,若你的项目需要 SVG 导出或对安全审计严格,需自行核实。

有在线演示在线工具文本处理图像处理

适合你的项目吗?

适用场景

  • 需要深度定制图片编辑器界面的项目
  • 希望复用编辑内核、自建 UI 层的场景
  • 对状态管理要求高、需要完整操作历史的工具
  • 作为学习不可变数据模型与 Canvas 编辑架构的参考

适合人群

  • React 技术栈的前端团队
  • 需要图片编辑功能的在线工具站
  • 对架构可维护性有要求的开发者

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    克隆后使用 pnpm 安装依赖,运行 pnpm dev 启动 demo(端口 9876)。

  2. 2

    包未发布 npm,需通过 workspace 引用。

  3. 3

    注意 fabric 6 存在两条已知安全漏洞(SVG 导出路径),项目不调用相关 API,但若需 SVG 导出或安全审计严格,请评估风险。

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

MIT许可证允许免费使用、修改、分发和商用,仅需保留版权与许可声明。

使用时需要遵守

  • 保留原作者版权声明和 MIT 许可证声明。
  • 在所有副本或实质性部分中包含版权声明和许可声明

额外费用与待核对事项

  • README仅链接MIT,未说明截图等演示素材的单独授权
查看原文依据

Permission is hereby granted, free of charge, to any person obtaining a copy

许可证原文

The above copyright notice and this permission notice shall be included in

许可证原文

Permission is hereby granted, free of char

许可证原文
https://github.com/ximing/fabric-photo/blob/master/LICENSEhttps://github.com/ximing/fabric-photo/blob/HEAD/README.md

DeepSeek 根据仓库许可证和 README 整理 ·2026-09-24。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。

项目核对记录与介绍依据

模板资料

来源平台
GitHub
资料与维护参考分
资料较完整 · 81 / 100
技术栈
TypeScript
网站类型
工具站
这个分数如何计算

本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。

这个项目需要核对什么

记录的仓库更新时间
2026-08-31
截图检查日期
2026-09-05

已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。

目录记录的主要技术栈是 TypeScript。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。

查看具体选型方法 →

介绍的制作与核对状态

介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。

当前版本没有可核对的编辑审核记录;旧的应用时间不代表已完成事实审核。

这条历史介绍未保存固定版本的来源快照。请对照当前仓库,发现不一致可反馈。

反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。