UI Design System
build dev

Space

为一组相邻元素提供一致间距。中文惯用名:间距。
稳定本期新增已接入

元信息

字段值
规范 IDcomponent.space
名称Space
二级分类布局(layout)
用途为一组相邻元素提供一致间距
描述中文惯用名:间距。

预览

静态结构:<div data-slot="space">(flex 容器);direction 映射 flex-row / flex-col;size 档位映射 gap(small=gap-2 / middle=gap-4 / large=gap-6),数字 size 内联 gap 像素;align 映射 items-*;wrap 追加 flex-wrap。子节点经 Renderer children 机制渲染 DSL 子树。

DSL 结构

DslNode
{
  "type": "Space",
  "props": {
    "direction": "horizontal",
    "size": "middle"
  },
  "children": [
    {
      "type": "Button",
      "props": {
        "text": "取消"
      }
    },
    {
      "type": "Button",
      "props": {
        "text": "保存",
        "variant": "primary"
      }
    }
  ]
}

何时用

何时使用

  • 一组相邻元素需要一致间距:按钮组、标签组、图标 + 文本组合。
  • 需要换行的等间距排列:wrap 模式的标签云、操作集合。
  • 垂直堆叠的紧凑表单项或文本行(direction: vertical)。

何时不用

  • 需要主轴分布(space-between / 两端对齐):使用 Flex。
  • 行列栅格布局:使用 Grid。
  • 大区块之间的篇章间距:用布局组件或间距令牌,Space 面向「相邻小元素」。

变体

变体视觉形态适用场景
水平flex-row 等间距按钮组、标签组
垂直flex-col 等间距紧凑表单项、文本行堆叠
换行flex-wrap 多行等间距标签云、操作集合

API 属性

属性类型默认值说明
direction`'horizontal''vertical'`'horizontal'
size`'small''middle''large'
align`'start''center''end'
wrapbooleanfalse超出时是否换行
className / stylestring / CSSProperties—通用:根节点 class 合并 / 内联样式(与数字 size 合并)

使用规范

  • 同组元素间距只用一档 size,不混用多档。
  • 水平排列且子元素高度不一时按需设 align(图标 + 文本常用 center)。
  • 超过一屏宽度的集合务必 wrap,避免横向溢出。

正例

  • ✓ 卡片底部操作区:Space 排列「编辑 / 复制 / 删除」三个 Button。
  • ✓ 筛选栏:Space wrap 排列若干 closable Tag。

反例

  • ✕ 用 Space 做页面左右分栏(应使用 Flex / Grid)。
  • ✕ 嵌套多层 Space 只为凑间距(应合并为一层并选对 size)。

Design Token 映射

不适用:组件 tokenRefs 为空:样式 Token 数据尚未接入,三层映射(Primitive → Semantic → Component)待样式 Token 接入后回填。