Commit Graph
5 Commits
Author SHA1 Message Date
im0o dd2a310406 feat: 右栏只显示与选中对象相关的内容
滤镜 / 文字两组改成选中对应类型才出现,去掉「请先选中图片」那种占位提示——
一行提示的高度和一组内容差不多,等于白占位置。导出与模板常驻(与选中无关,
且顶栏导出按钮要滚到它)。背景组从右栏摘掉,挪进顶栏的背景工具下拉。

Inspector 在没选中时只留一句说明,画板尺寸的只读回显去掉——尺寸改到顶栏的
画布编辑下拉里了。

补 body[data-tool] 的画布光标规则:文字工具是 I 形,形状工具是十字。
2026-09-05 18:07:51 +08:00
im0o 19c8c604cb chore: 本轮改造的共享契约与占位——ToolId/ShapeKind/LayerKind 扩充、Dropdown 壳、形状表、三个菜单与两个 composable 的桩 2026-09-05 17:56:10 +08:00
im0o 3a3798e37b feat: 接入 iconify 图标库,右栏改成 Figma 式收起分组
图标统一走 unplugin-icons + hugeicons,构建期内联,出口收在 src/ui/icons.ts。
顺带修掉 TopBar 那个 undo 图标缺弧命令的 path。

右栏下半四组默认全收,收起态只有一行 32px;顶栏导出按钮改成先展开
「导出与模板」再滚,否则滚到底只看得到一行标题。

属性区去掉分组标题,改成 Figma 那种「字母/图标 + 无边框输入框」两列密排,
新增 W/H 宽高比锁(比例在开锁那一刻定格,不每次编辑现算)。

删掉 Sidebar.vue 和 panels/CanvasPanel.vue:上一轮改 Figma 布局之后
它们已无人 import,--sidebar-w 同批遗留。
2026-09-05 17:51:43 +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
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