P4-05 · @saier/vue:笔刷 UI(预设切换 + 参数面板)
- Phase / ID: P4 / P4-05
- Depends on: P1-07(controller)、P4-01(registry)
- Files:
packages/vue/components/BrushPicker.vue、BrushParams.vue、test/ - Effort: M
- Status: 🟡
Context
让用户切换笔刷、调参数——纯 DOM 面板,走 controller(D7),不碰 core 内部静态。验证 controller 表面够用、UI 薄皮模式成立。
Steps
BrushPicker:列举BrushRegistry的 preset(缩略图 + 名称),点选 →controller.setBrushPreset(id)。BrushParams:size / opacity / spacing / hardness / flow 滑块,双向绑controller(on('brush:change')镜像、改值调 setter)。- controller 按需补
setBrushPreset/setBrushParam(回 P1-07 扩接口)。 - 不直接引用
PainterBrush.*静态(D7 红线)。
Acceptance
- [ ] UI 切笔刷即时生效;参数滑块改值即时反映到笔迹。
- [ ] 面板状态由
controller.getState()驱动,无对 core 静态字段的直接引用(grep 断言)。 - [ ] core 端改笔刷(如快捷键)→ 面板同步(事件回流)。
Out of scope
- 笔刷编辑器 / 自定义 preset 持久化(后续);React 版(按需)。