SuperAPI AI 工具集

openbot-screen-layout

通用与其它

查看项目

更新于 10-15 20:28

技能介绍

用途:这是 OpenBot 所有配置界面的默认布局规范。凡是在 app/src/routes 下新增或修改配置页面(新管理页、新设置分区、已有页面新增行、列表后的详情页)都适用。它不负责数据来源(查询、变更与加载/错误/空/有数据分支属于 openbot-data-access),不覆盖 components/gallery 的画廊组件,也不覆盖 components/ui 下的设计系统基础组件。

主要能力:用四个组件搭出页面骨架,嵌套顺序固定。PageShell 提供页头(title、description、action、backButton)与 children;PageSection 是有标题的分组,上方留大间距;PageRows 是圆角卡片(rounded-lg border bg-card);Item 是单行,size="sm",行间用 <Separator /> 分隔,最后一行后不加。PageEmpty 用于分区无内容时的说明句。PageShell 的 width 默认 prose(max-w-2xl),仅 admin/audit.tsx 因审计日志是表格而用 wide(max-w-5xl)。

使用方式:新页面默认套用此布局,偏离需在请求中说明理由。详情页用 backButton={{ label, linkProps }},不要把返回按钮放进 action。行由 ItemMedia(variant="icon",图标来自 @tabler/icons-react)、ItemContent(ItemTitle、ItemDescription)、ItemActions 组成;ItemHeader 与 ItemFooter 为 basis-full,适合放 chips、toggles 等集合。整行可点击时传 render={<button type="button" onClick={…} />} 或 render={<Link to=… />},且该元素不能带 children,否则行会渲染为空。行分三类:二元即时用 Switch,无保存;多值编辑用摘要加 chevron 并打开对话框;只读则值放 ItemActions、无 chevron。Item size="sm" 用于卡片内行,Button size="sm" 用于行内或对话框底部,Item variant 全屏统一。对话框用 DialogContent、DialogHeader、DialogBody className="mt-4"、DialogFooter className="mt-4",DialogBody 必须是 DialogContent 的直接子元素,且需显式加 overflow-y-auto。

限制:app/src/styles.css 设 html { font-size: 15px },所有基于 rem 的 Tailwind 尺寸为文档值的 0.9375 倍(max-w-2xl 实际 630px、max-w-3xl 720px、max-w-5xl 960px),不要硬编码像素常量,应测量实际元素。表格是唯一被接受的偏离先例。资料未提供安装命令、收费与平台信息。