统一工具栏
概述
这是一个重要的用户体验改进计划,旨在将 Tachybase 的编辑模式升级为类似飞书等现代化协作工具的所见即所得编辑模式,通过统一工具栏提供一致的操作入口和更好的交互体验。
当前痛点
在当前的编辑模式中,存在以下问题:
- 操作分散:工具栏(toolbar)、初始化器(initializer)、设置器(settings)三个功能分散在不同的位置,增加了用户的学习成本
- UI 入侵性强:编辑操作往往会干扰卡片本身的 UI 展示, 影响用户体验
- 布局调整不便:缺乏直观的拖拽布局能力,调整页面结构需要多步操作
- 编辑与预览分离:用户难以在编辑过程中直观地看到最终效果
改进方案
核心设计理念
采用非入侵式编辑的设计理念,让编辑功能服务于内容,而不是干扰内容的展示。
主要特性
1. 统一的卡片工具栏
在每个卡片的上方提供一个统一的工具栏,融合原有的三个功能模块,并扩展更多实用功能:
工具栏包含的功能:
- 卡片标题:可直接编辑的 卡片名称,点击即可修改
- 工具栏(Toolbar):提供快速操作按钮,如复制、删除、移动等
- 初始化器(Initializer):快速添加新的内容块或组件
- 设置器(Settings):配置当前卡片的各种属性和参数
- 调试工具:用于开发调试的辅助功能,如查看 Schema、日志等
- 更多操作:通过下拉菜单访问更多功能
视觉设计:
UI 团队已制定了完整的视觉规范,工具栏采用现代化的设计风格:
┌─────────────────────────────────────────────────────────────────────┐
│ [✏️卡片名称] [📋] [✂️] [🗑️] [➕] [⚙️] [🐛] [⋮更多] │ ← 统一工具栏
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 卡片内容区域 │
│ │
└─────────────────────────────────────────────────────────────────────┘
- 悬停激活:鼠标悬停在卡片上时显示工具栏
- 半透明背景:工具栏采用轻微的半透明效果,减少视觉干扰
- 图标化设计:所有操作均使用直观的图标表示
- 响应式布局:根据卡片宽度自动调整工具栏显示
优势:
- 统一操作入口:所有编辑操作(包括拖拽、配置、调试等)集中在工具栏,提供一致的交互体验
- 不阻碍 UI 展示:工具栏位于卡片外部,不干扰原有内容的展示
- 上下文感知:根据卡片类型动态显示相关功能
- 专业视觉设计:提升整体品质感和易用性
2. 工具栏集成的拖拽能力
原有的拖拽功能现在统一集成到工具栏中,通过工具栏按钮进行操作:
- 拖拽移动:点击工具栏的拖拽图标,激活拖动模式调整卡片位置
- 拖拽调整大小:通过工具栏的尺寸调整按钮,精确控制卡片大小
- 视觉反馈:提供清晰的拖拽预览和落点提示
这种设计将拖拽能力整合到统一的工具栏中,使所有编辑操作都有一致的入口,降低用户的认知负担。
3. 非入侵式编辑
设计原则:
- 悬浮显示:工具栏在鼠标悬停或选中时才显示,平时隐藏
- 最小化干扰:工具栏使用半透明设计,不遮挡关键内容
- 保持原貌:编辑状态下,卡片内容与最终展示完全一致
- 快速切换:提供快捷键快速进入/退出编辑模式
卡片内部字段的缩略工具栏:
对于卡片内部的各个字段和组件,采用更为精简的缩略工具栏设计:
┌─────────────────────────────────────────┐
│ 下拉复选框 [📋] [🗑️]│ ← 仅显示最常用的 2 个 图标
├─────────────────────────────────────────┤
│ [请选择... ▼] │
└─────────────────────────────────────────┘
缩略工具栏的特点:
- 最多显示 2 个图标:只展示最常用的操作(如复制、删除)
- 更多操作下拉菜单:点击"更多"