Jz0ojiang
|
0c0cc86fa8
|
refactor: 右栏拆成属性区与工具面板两层
改成 Figma 布局后旧的四个面板没有挂载点,功能在界面上不可达。
右栏上半给选中对象的属性,下半给背景/滤镜/文字/导出,
两条开发线各占一个文件,互不重叠。
|
2026-09-05 02:19:40 +08:00 |
|
Jz0ojiang
|
8934f374bb
|
feat: Figma 式外壳与编辑器内核
布局改成 顶部工具栏 / 左图层 / 中画布 / 右属性 / 底部悬浮胶囊。
新内核:
- 图层模型:fabric 对象是唯一真源,LayerInfo 是只读投影;
id/名字/锁定挂在 customProperties 上,随 toJSON 持久化
- 视口:zoom/pan 走 viewportTransform,只影响显示;
导出改为按视口裁剪(artboardExportOptions),旧的「multiplier 恒为 1」
在画布铺满工作区之后不再成立
- 历史:快照式撤销重做,30 步上限,带重入保护
- 命令表:快捷键 / 右键菜单 / 工具栏三个入口共用一份注册表
键位取自 Penpot 快捷键表
- 画板用 backgroundImage 画(跟随视口且不进 getObjects)
两个 fabric 陷阱已在注释里记下:
- Rect 默认原点是中心,left:0/top:0 不写 originX/originY 会画错位置
- canvas.clipPath 不吃 viewportTransform,不能用来裁画板
|
2026-09-05 02:18:20 +08:00 |
|
 Jz0ojiangandim0o
|
9a60754401
|
contract: FontEntry 加 subfamily,family 改用 name 表的排版族名
注册表值名不是字体身份。实测阿里巴巴普惠体 H:
注册表「阿里巴巴普惠体-H」、nameID 1「阿里巴巴普惠体 H」— 浏览器都解析不到
nameID 16「阿里巴巴普惠体」+ nameID 17「Heavy」— 能解析
subfamily 退回 nameID 2 是有损的:该族五个字重的 nameID 2 全是 Regular。
(cherry picked from commit 44b98102741af90620871156d60edf54326df78d)
|
2026-09-04 16:38:56 +08:00 |
|
 Jz0ojiangandim0o
|
5b46e84a44
|
fix: 背景图沉到最底层,否则盖住先加的文字
addImage 用 canvas.add() 追加,图片落在最上层。浏览器验收时发现
先加文本框再装背景,文字被整块盖住。
(cherry picked from commit 822fd79e1ca2df76c49c1dff33fa5cc0fa01cc93)
|
2026-09-04 16:38:56 +08:00 |
|
Jz0ojiang
|
95eeb69ff8
|
feat: 骨架——Vite + Vue3 + Fabric v7,左工作区右侧栏
共享外壳与类型契约,四条并行开发线在此之上各自填空:
- types.ts 是唯一的跨线接口,并行期间冻结
- editor/ 画布单例、选中态、尺寸预设与比例锁
- Sidebar 按选中对象切换面板,五个面板位已接好
- fonts/ filters/ sources/ io/ 留桩,各线只改自己目录
导出定 WebP:实测 540x287 PNG 134KB vs 1200x630 WebP 23KB。
字体接口挂在 Vite 中间件上,工具只在 dev 下完整可用。
|
2026-09-04 15:42:27 +08:00 |
|