For AI agents: the complete documentation index is available at https://a3s-lab.github.io/UI/v0.4.1/llms.txt, the full documentation bundle is available at https://a3s-lab.github.io/UI/v0.4.1/llms-full.txt, and this page is available as Markdown at https://a3s-lab.github.io/UI/v0.4.1/components/form-system/layouts.md.

布局与辅助内容

布局节点只组织界面,不改变受控值结构。字段继续通过 schemaPath 绑定数据;容器通过 children 决定顺序和嵌套关系。所有示例直接使用 FormRenderer 和 A3S UI 样式入口。

通用容器属性

属性类型必填说明
idstring是文档内唯一的稳定标识
kind"group" | "section"是普通容器或语义分组
layoutUiLayout是容器的排列方式
childrenstring[]是直接子节点,按数组顺序渲染
labelstring否容器标题;标签页、折叠面板和向导步骤使用它作为导航名称
descriptionstring否容器标题下方的补充说明
columns1 | 2 | 3 | 4 | 6 | 12否内部栅格列数,默认 12
width1–12否当前容器在父级 12 列栅格中占用的宽度
gap0 | 8 | 12 | 16 | 24 | 32否子节点间距,单位为 CSS 像素

窄容器会把并排字段和列组改为单列。响应式判断以 Form 容器宽度为准,嵌入侧栏、弹窗或工作区节点时不依赖浏览器窗口宽度。

栅格容器 grid

栅格容器适合字段宽度不完全相同的参数面板。子节点的 width 决定占用列数,内部总宽度使用 columns。

实时示例12 列栅格 · 字段宽度 · 容器间距

运行参数

字段按 12 列宽度排列。

受控值
{
  "model": "large",
  "timeout": 60
}
属性推荐值用途
kind"group"创建无额外业务语义的布局容器
layout"grid"启用显式栅格排列
columns12与字段 width 的 12 列宽度保持一致
gap12 或 16控制行列间距
子节点 width1–12例如 8 + 4 或 6 + 6
{
  id: 'runtime-grid',
  kind: 'group',
  layout: 'grid',
  columns: 12,
  gap: 16,
  children: ['model', 'timeout'],
}

两栏布局 columns-2

columns-2 是 Designer 预设。它生成一个 layout: "columns" 的外层容器和两个 width: 6 的内部 group。每一栏可以继续放置字段、卡片或其他布局。

实时示例两个等宽投放区 · 各栏独立布局

连接设置

服务地址

失败处理

受控值
{
  "endpoint": "https://api.a3s.dev",
  "retries": 3
}
节点关键属性用途
外层容器layout: "columns", columns: 12管理两栏顺序和间距
左栏kind: "group", width: 6第一处投放区域
右栏kind: "group", width: 6第二处投放区域
内部字段width: 1–12使用各栏自己的 12 列栅格

两项需要直接比较时使用两栏;较长说明、地址和多行输入不应被强行压进窄栏。

三栏布局 columns-3

columns-3 同样是 Designer 预设,三个内部 group 的 width 均为 4。它适合短值和同类参数,不适合大段文本或复杂复合字段。

实时示例三个等宽投放区 · 窄容器自动改单列

执行资源

受控值
{
  "region": "ap-east-1",
  "concurrency": 4,
  "timeout": 90
}
节点关键属性用途
外层容器layout: "columns", columns: 12管理三栏顺序和间距
每一栏kind: "group", width: 4独立投放区域
每栏内部layout: "flow", columns: 12允许继续配置内部字段宽度

在窄容器中三栏自动变为单列,字段顺序仍按 children 保持稳定。

卡片分组 card

卡片用于有明确标题和说明的业务分组。kind: "section" 提供分组语义,layout: "card" 使用 A3S UI Card 表面。

实时示例语义分组 · 标题与说明 · A3S UI Card

服务配置

修改当前节点使用的服务和状态。

受控值
{
  "service": "knowledge-search",
  "enabled": true
}
属性推荐值用途
kind"section"表达独立内容分组
layout"card"使用 A3S UI Card 样式
label简短标题说明这一组字段的共同用途
description一句话只补充必要的填写规则
children字段或布局节点避免再嵌套一层无信息卡片

同一页面不应把每个字段都包装成卡片。只有标题、说明和字段确实构成一个完整任务时使用。

标签页 tabs

标签页适合同一层级、无需按顺序完成的设置。外层节点使用 layout: "tabs",直接子节点必须是 layout: "tab" 的 group 或 section。

实时示例标准 Tab 语义 · 键盘切换 · 本地活动状态

节点设置

受控值
{
  "displayName": "知识检索",
  "temperature": 0.4
}
节点属性说明
标签页容器layout: "tabs"管理当前活动页,不写入表单值
标签页layout: "tab"作为直接子节点
标签名称子节点 label同时作为 Tab 的可见名称和无障碍名称
标签内容子节点 children放置该页的字段和布局

运行时提供 tablist、tab 和 tabpanel 语义,支持左右方向键、Home 和 End。需要逐步校验和确认页时应使用向导,不使用标签页模拟步骤。

折叠面板 collapse

折叠面板适合低频或高级设置。外层节点使用 layout: "collapse",直接子节点使用 layout: "collapse-panel"。

实时示例原生 Details 语义 · 独立展开状态

高级设置

提示词
输出限制
受控值
{
  "systemPrompt": "只返回可核验的信息。",
  "maxTokens": 2048
}
节点属性说明
折叠容器layout: "collapse"管理一组可展开内容
折叠面板layout: "collapse-panel"作为直接子节点
面板名称子节点 label作为原生 summary 文案
面板内容子节点 children放置字段和布局节点

运行时使用原生 details 与 summary,键盘、展开状态和辅助技术语义由浏览器提供。必填字段不应藏在默认关闭且没有错误提示的面板中。

说明文字 content

说明文字使用 kind: "content" 和 presentation: "text"。它只显示静态文案,不创建 Schema 属性,也不写入受控值。

实时示例静态说明 · 不写入受控值
仅在连接成功后启用自动执行。
受控值
{}
属性类型说明
kind"content"辅助内容固定值
presentation"text"普通说明文字
contentstring直接展示的文本
width12 列宽度控制在父级栅格中的占位

说明文字只承载填写所需的信息。动态数据、富文本和可执行链接应由经过注册的宿主组件负责。

分隔线 divider

分隔线用于区分相邻内容区域。content 留空时只显示线条,设置后在中间显示简短标题。

实时示例内容分隔 · 可选标题
基础参数

高级参数
失败重试与超时设置
受控值
{}
属性类型说明
kind"content"辅助内容固定值
presentation"divider"分隔线展示方式
contentstring可选的分隔标题
width12 列宽度控制分隔线长度

分隔线不能代替结构。内容本身有明确标题时,优先使用 section 或 card。

间距 spacer

间距节点提供受控的垂直留白。它对辅助技术隐藏,不产生文案或表单值。

实时示例固定垂直间距 · 对辅助技术隐藏
上方内容
下方内容
受控值
{}
属性类型说明
kind"content"辅助内容固定值
presentation"spacer"间距展示方式
gap8 | 12 | 16 | 24 | 32间距高度,默认 24
width12 列宽度控制在父级布局中的占位

间距只用于少量需要额外呼吸感的位置。页面的基础节奏应由容器 gap 统一维护。

A3S UI 样式入口

import '@a3s-lab/ui/form/a3s-ui.css';

该入口加载 @a3s-lab/ui 和 Form 布局层。字段继续使用 A3S UI 的 input、textarea、select、field 与 fieldset 契约;容器复用 Card、Tabs 和 Accordion 的表面与交互状态。宿主已经加载 A3S UI 时,可以改用 @a3s-lab/ui/form/styles.css,避免重复安装全局样式。