Descriptions 描述列表
用于成组展示只读信息,适合详情页场景。默认 horizontal 布局(标签与内容同一行,标签在左为灰色弱化的文字);layout="vertical" 时为标签在上、内容在下的纵向堆叠。
基础用法
基础描述列表(vertical 布局)
横向布局(默认)
不传 layout 即为 horizontal:标签在左(灰色弱化)、内容在右,同一行内横排:
横向布局(默认)
列数
两列布局
无标题
无标题
带边框详情表
bordered 让网格线成表:标签格带淡底色(语义 token,暗色自动适配),适合用户信息等详情页场景:
带边框详情表
跨列(span)
item 的 span="N" 跨 N 列,常用于长地址、备注等字段。span 超过当前行剩余列数时网格自动换行起占;不提供「自动占满剩余列」语义,需显式给定列数:
跨列展示长地址
冒号(colon)
colon 在标签后显示冒号(默认不显示):
标签冒号
尺寸(size)
size="small|medium|large" 三档密度,控制字号与 bordered 单元格内边距(medium 为默认,字号跟随外层):
尺寸三档
标题操作区(slot="extra")
标题同排右侧的操作区,放编辑等入口:
标题操作区
标签富内容(slot="label")
item 的 slot="label" 可放图标加文字等富内容,与 label 属性互斥(插槽优先):
标签带图标
内容自定义
富内容
数据驱动(items 通道)
items 属性(JSON 数组)或同名的 property 直接驱动渲染,每项支持 label / content / span 三个字段(content 为纯文本,富内容走子元素声明式通道)。子元素声明式通道始终优先:<oas-descriptions-item> 子元素在场时 items 数据不渲染,子元素移除后自动接管——两种写法可以按场景取舍:
items 属性(JSON)
宿主循环生成子项(声明式通道)
窄屏降列(宿主媒体查询)
未设置 column 属性时,列数取自 CSS 变量 --oas-desc-columns(默认 3),宿主可用媒体查询响应式降列(设置 column 属性则为固定列数,不受变量影响):
窄屏降列
加载中(骨架屏组合)
与 oas-skeleton 组合出「加载中详情」:加载时展示骨架屏,就绪后切换为描述列表(加载区域挂 aria-busy 供读屏器感知):
加载中详情
字号定制
oas-descriptions-item 字号默认跟随外层 font-size(继承),可用 CSS 变量 --oas-descriptions-item-font 显式定制(如 18px);容器 size 档位经 --oas-desc-font-size 下发(item 级开口优先)。
其他样式开口(CSS 变量穿透,暗色自动适配):
| 变量 | 作用 | 默认值 |
|---|---|---|
--oas-desc-label-color | 字段标签颜色 | --oas-color-text-secondary |
--oas-desc-columns | 列数(未设 column 属性时生效,可配媒体查询响应式降列) | 3 |
API
oas-descriptions
属性
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
bordered | 边框表格形态:网格线成表 + label 格淡底色 | boolean | — |
colon | label 后显示冒号(默认 false) | boolean | — |
column | 每行列数 | string | 3 |
items | 数据驱动渲染 JSON(label/content/span 字段;声明式子元素始终优先) | Array<Record<string, unknown>> | string | [] |
layout | 布局方向:horizontal(默认,label 与内容同行)/ vertical(label 在上内容在下) | string | horizontal |
size | 尺寸档位:small / medium(默认)/ large(padding 与字号联动) | string | medium |
title | 标题(渲染进可见标题区;读取后即从宿主移除,不残留原生悬浮提示;清空传空串);富内容用 slot="title" | string | — |
插槽
| 名称 | 说明 |
|---|---|
| 默认 | 描述项(oas-descriptions-item) |
extra | 标题同排右侧操作区 |
title | 标题富内容插槽,有内容时覆盖 title 属性文案 |
CSS 变量
| CSS 变量 | 默认值 |
|---|---|
--oas-desc-columns | 3 |
oas-descriptions-item
属性
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
label | 字段标签 | string | — |
span | 跨列数(正整数,默认 1;超出剩余列数时网格自动换行起占) | string | 1 |
插槽
| 名称 | 说明 |
|---|---|
| 默认 | 字段内容 |
label | label 富内容(图标+文字等;与 label 属性互斥,slot 优先) |
CSS 变量
| CSS 变量 | 默认值 |
|---|---|
--oas-desc-cell-border | 0px |
--oas-desc-cell-px | 0 |
--oas-desc-cell-py | 0 |
--oas-desc-colon | none |
--oas-desc-item-gap | var(--oas-space-2) |
--oas-desc-label-bg | transparent |
--oas-desc-label-color | var(--oas-color-text-secondary) |
--oas-desc-layout-dir | row |
--oas-descriptions-item-font | var(--oas-desc-font-size, inherit) |