### Wolai UI 设计指南(React 适配版) Wolai 是一个块式笔记工具,以简约、嵌套页面和实时协作著称。基于提供的截图和 Wolai 特征,本设计指南对原 ui.md 进行重写,调整为两栏布局(左侧树状侧边栏 + 主编辑区),添加面包屑导航、底部 AI 工具栏,并确保页面与文本块混合嵌套。组件使用 React 语法(兼容 Next.js),样式基于 Tailwind CSS。核心原则强调极简主义,匹配 Wolai 的白底黑字风格,支持多级嵌套和拖拽逻辑。 - **关键调整**:去除右侧面板(截图中未见,转为可选折叠);强调树状侧边栏的无限嵌套;主区支持文本与子页面混合块;底部集成 AI 按钮;颜色方案优化为 Wolai-like(浅灰 hover,蓝色 accents)。 - **兼容性**:设计支持响应式(侧边栏可折叠),快捷键对齐 Wolai(/ 命令、Tab 缩进)。 - **不确定性**:Wolai UI 可能有区域变体(如暗模式),本设计基于截图假设光模式;若有争议(如 AI 集成深度),可进一步验证官方更新。 #### 布局概述 整体为两栏:左侧 240px 树状目录,主区自适应。顶部面包屑,底部工具栏。使用 Flex 布局确保响应式。 #### 颜色与字体 - 字体:Inter (sans-serif),标题 18px,正文 14px。 - 颜色:主蓝 #2563eb,背景 #ffffff,hover #f5f5f5,文本 #333333。 --- # Wolai 风格 UI 设计图(React 开发适配版) ## 核心设计原则(必须遵循) 1. **极简主义**:纯白底色 + 浅灰分隔线,无多余装饰,聚焦内容与嵌套结构; 2. **统一视觉语言**:圆角 4px、间距 8px 基准、字体 Inter(无衬线); 3. **交互一致性**:hover 效果统一(浅灰背景)、点击反馈(蓝色边框)、快捷键与 Wolai 对齐(如 / 命令、Ctrl+K 搜索); 4. **层级清晰**:通过字体大小(标题 18px/正文 14px/辅助 12px)、颜色(深灰 #333/中灰 #666/浅灰 #999)区分;支持页面与文本块混合嵌套。 ## 整体布局设计(两栏结构 + 面包屑 + 底部工具栏) ### 1. 顶部面包屑导航(高度 40px) | 区域 | 元素 | 样式细节 | 交互逻辑 | |---------------|-------------------------------|--------------------------------------------------------------------------|--------------------------------------------------------------------------| | 左侧路径区 | ≡ 图标 + 路径链接(个人空间 > 后端选择) | 图标 16px 灰色,路径文字 14px 深灰,间距 8px,hover 蓝色下划线 | 点击路径链接跳转父级;≡ 展开侧边栏(如果折叠) | | 中间操作区 | ↑ 图标 + 星标/分享/更多 (...) | 图标 16px,间距 12px,默认灰色,hover 浅灰背景 | ↑ 跳转上级;星标:切换收藏状态;分享:弹出共享菜单;更多:导出/删除 | | 右侧用户区 | 用户头像 + 通知铃铛 | 头像圆形(28px),铃铛 16px,间距 16px | 头像:弹出账号菜单;铃铛:显示通知列表 | ### 2. 左侧树状侧边栏(宽度 240px,可折叠) | 区域 | 元素 | 样式细节 | 交互逻辑 | |---------------|-------------------------------|--------------------------------------------------------------------------| | 顶部搜索区 | 搜索输入框 + △ 多选/信封/... | 输入框 14px 无边框(聚焦底部灰线),图标 16px 灰色,间距 8px | Ctrl+K 全局搜索;点击图标切换视图(多选/消息等) | | 树状列表 | 嵌套页面项(图标 + 标题 + 子项) | 图标 16px(如红/绿圆点),标题 14px,子项缩进 16px,展开箭头 >,选中蓝色边框 | 点击展开/折叠;拖拽重排序或嵌套;右键菜单(重命名/删除/移动) | | 底部功能区 | 回收站 + 设置 | 图标 + 文字 12px 浅灰,间距 8px | 回收站:查看删除项;设置:应用配置 | ### 3. 主编辑区(自适应宽度) | 区域 | 元素 | 样式细节 | 交互逻辑 | |---------------|-------------------------------|--------------------------------------------------------------------------| | 标题区 | 大标题(后端选择) + 子标题(AipexBase) | 标题 24px 粗体,子标题 16px,间距 8px,无边框(编辑时显示灰线) | 点击编辑标题;支持实时保存 | | 块编辑区 | 块容器(文本/列表/代码/子页面) | 块间距 8px,padding 8px;hover 显示左侧拖拽柄;内容 14px 行高 1.6 | / 命令插入块;Tab 缩进成子块;拖拽重排序;子页面块渲染为嵌套链接 | | 底部工具栏 | 发送/魔力中心 + ? + AI 按钮 | 按钮圆形 32px,AI 蓝色,间距 12px,固定底部 | AI:弹出问答面板;?:帮助;魔力中心:扩展功能 | ## 核心组件详细设计(React 复刻关键) ### 1. 块组件(通用模板) ```jsx // 块组件通用结构,按此实现所有块类型 import React from 'react'; import { useDrag, useDrop } from 'react-dnd'; const Block = ({ type, content, isSelected, onUpdate, onDelete }) => { const [{ isDragging }, drag] = useDrag({ type: 'BLOCK', item: { id: content.id } }); const [{ isOver }, drop] = useDrop({ accept: 'BLOCK', drop: (item) => onUpdate(item.id, content.id) }); return (
{content.text}
} {type === 'page' &&{result.title}
{result.preview}
{result.source}