# Visual Editor Spec

## 目標

提供行銷可直接操作的同頁編輯體驗，對齊 Google Optimize / Optimize99 的使用感。

## 核心互動規則

### 1. 選取回饋

- hover 顯示藍色虛線框
- selected 顯示藍色實線框
- 滑鼠移動時可快速預覽可選區域

### 2. 直接編輯

- 點選元素後可直接開啟編輯泡泡
- 支援文字、按鈕文字、按鈕連結、圖片來源、樣式
- 編輯為即時同步（不用再按套用）

### 3. 結構操作

- 上移 / 下移 / 拖移
- 隱藏 / 顯示
- 複製 / 刪除
- 前插 / 後插

### 4. 歷史機制

- 內容編輯與結構操作都必須可 undo/redo
- restore 後畫布狀態、選取狀態、泡泡狀態要一致

## 編輯泡泡規格

- 可拖拉、可關閉、固定於視窗可用位置
- Header 保持簡潔：拖拉點 + 關閉
- 內容區為可捲動區塊
- icon hover 要有 tooltip（清楚告知作用）

## Bridge Protocol（頁面與 editor）

### page -> editor

- ready
- hover/selection 變更
- structure change 結果
- history 狀態更新

### editor -> page

- focus selector
- start inline edit
- set text / attr / style
- structure actions
- restore state

## Selector 與定位策略

- 頁面載入時補唯一 `data-mkt-selector`
- 插入與複製後重建 selector，避免衝突
- 相似兄弟節點必須可各自選取

## 不做事項（此階段）

- 不走 Chrome Extension 路線
- 不增加大型資訊面板干擾畫面
- 不先做自由版面拖拉排版（以區塊重排為主）

