概述
本 issue 针对 ObjectUI 元数据平台(非某个特定示例应用)提出整体界面风格和交互规范优化建议。所有通过 ObjectUI SDUI 引擎生成的应用界面(Grid、Board、Calendar、Dashboard、Report 等)均应从中受益。
关联 Issues
1️⃣ 全局主题与设计 Token 标准化
涉及:packages/core/src/theme/ThemeEngine.ts、packages/components/src/index.css、content/docs/guide/theming.md
现状问题
- 部分组件直接使用硬编码灰度色(如
GridField.tsx 中 text-gray-500、bg-gray-50),未走 theme token
- 字体未统一强制使用 Inter(Storybook 配置了,但平台运行时未全局注入)
- 边框、圆角、间距在不同插件间存在不一致
具体改进
2️⃣ Sidebar 导航组件(packages/layout + packages/components/src/ui/sidebar.tsx)
现状问题
SidebarNav 组件缺少分组分隔、活跃项指示强化
- 折叠态下图标缺少 Tooltip
packages/runner/src/LayoutRenderer.tsx 中的手写 sidebar 与 packages/layout/src/SidebarNav.tsx 组件风格不统一
具体改进
3️⃣ ListView 工具栏布局(packages/plugin-list/src/ListView.tsx)
现状问题
- 工具按钮(Hide fields / Filter / Group / Sort / Color / Density)和快捷过滤器(Status / Priority / Category)平铺在同一行,视觉层次平坦
- Search 以按钮形态隐藏,不够直观
- 工具栏按钮在窄屏下溢出处理不佳
具体改进
4️⃣ ObjectGrid 单元格渲染器(packages/plugin-grid/src/ObjectGrid.tsx + packages/fields/)
现状问题
inferColumnType() 自动推断类型后的渲染缺少视觉标识——select/status 类字段显示纯文本
- 日期字段直接输出 ISO 字符串(如
2026-02-26T03:09:07.458Z)
- Boolean 字段无视觉渲染
具体改进
5️⃣ ConfigPanelRenderer(packages/components/src/custom/ + apps/console/src/components/ViewConfigPanel.tsx)
现状问题
- 右侧配置面板 Section 之间缺少明显分隔
- Toggle/Switch 项密集排列,缺少分组呼吸感
- 面板宽度在不同场景下不一致(ViewConfig vs Dashboard vs Report)
具体改进
6️⃣ 视图 Tab 栏(packages/plugin-view/src/ObjectView.tsx + packages/plugin-list/src/components/TabBar.tsx)
现状问题
- Named View Tabs(All Tasks / Board / Calendar / Active)间距过大
- 活跃 Tab 指示器不够明显
- Tab 与
ViewSwitcher 组件视觉风格不统一
具体改进
验收标准
概述
本 issue 针对 ObjectUI 元数据平台(非某个特定示例应用)提出整体界面风格和交互规范优化建议。所有通过 ObjectUI SDUI 引擎生成的应用界面(Grid、Board、Calendar、Dashboard、Report 等)均应从中受益。
关联 Issues
1️⃣ 全局主题与设计 Token 标准化
涉及:
packages/core/src/theme/ThemeEngine.ts、packages/components/src/index.css、content/docs/guide/theming.md现状问题
GridField.tsx中text-gray-500、bg-gray-50),未走 theme token具体改进
packages/fields/src/widgets/GridField.tsx、packages/plugin-report/src/ReportRenderer.tsx等组件中text-gray-*、bg-gray-*全部替换为 theme token(text-muted-foreground、bg-muted)packages/components/src/index.css的:root中注入font-family: 'Inter', ui-sans-serif, system-ui,确保所有渲染场景生效rounded-lg(var(--radius)),边框统一border-border/50transition-colors duration-1502️⃣ Sidebar 导航组件(
packages/layout+packages/components/src/ui/sidebar.tsx)现状问题
SidebarNav组件缺少分组分隔、活跃项指示强化packages/runner/src/LayoutRenderer.tsx中的手写 sidebar 与packages/layout/src/SidebarNav.tsx组件风格不统一具体改进
SidebarMenuButton的isActive态增加左侧 3px 指示条(before:absolute before:left-0 before:w-[3px] before:bg-primary)SidebarGroupLabel增加border-t border-border/30 pt-3 mt-2分隔packages/runner/src/LayoutRenderer.tsx的手写 sidebar 迁移使用@object-ui/layout的SidebarNav组件,消除两套实现collapsible="icon"模式下确保所有SidebarMenuButton有tooltipprop3️⃣ ListView 工具栏布局(
packages/plugin-list/src/ListView.tsx)现状问题
具体改进
quickFilterspills 和userFilterstoolbarFlags.showSearch为 true 时,右侧固定渲染<Input>搜索框(而非点击展开),宽度w-48bg-primary/8 border-primary/20背景overflow-x-auto横向滚动,或折叠为 "More" 下拉菜单4️⃣ ObjectGrid 单元格渲染器(
packages/plugin-grid/src/ObjectGrid.tsx+packages/fields/)现状问题
inferColumnType()自动推断类型后的渲染缺少视觉标识——select/status 类字段显示纯文本2026-02-26T03:09:07.458Z)具体改进
select时,getCellRenderer()返回<Badge>并支持从 field.options 映射颜色formatDate()在packages/fields/src/formatters.ts中增加相对时间模式("2 days ago"、"Today"、"Overdue 3d"),并在 ObjectGrid 列推断时默认启用<Checkbox disabled checked={value} />或✓/—图标ObjectGrid表头行统一使用text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/70 bg-muted/55️⃣ ConfigPanelRenderer(
packages/components/src/custom/+apps/console/src/components/ViewConfigPanel.tsx)现状问题
具体改进
ConfigPanelRenderer渲染 section 之间插入<Separator className="my-1" />defaultCollapsed: true)--config-panel-width: 280px,支持 schema 覆盖packages/i18n确保面板标签与主界面语言一致,消除中英混排6️⃣ 视图 Tab 栏(
packages/plugin-view/src/ObjectView.tsx+packages/plugin-list/src/components/TabBar.tsx)现状问题
ViewSwitcher组件视觉风格不统一具体改进
TabsTrigger间使用gap-0.5,padding 缩减为px-3 py-1.5border-b-2 border-primary+font-medium text-foreground<Badge variant="dot" className="bg-green-500">替代纯文本圆点验收标准
pnpm test全量通过