跳到主要内容

Empty 空态

无内容状态——浅橙圆盘 illust(默认橙色 spark)+ 大字标题 + 小字描述。icon 可换成强语义图标(相机 / 权限 / 出错场景),常配合 SuggestionList 给出下一步操作。

实时预览

下方渲染的就是 src/components/ui/Empty/Empty.tsx 本体,通过 react-native-web 翻译成浏览器节点。

你好,我是 AI 助手
告诉我你今天的工作目标,我来帮你规划

用法

import { Empty } from '@unif/react-native-design';

<Empty
title="你好,我是 AI 助手"
desc="告诉我你今天的工作目标,我来帮你规划"
/>

通常配合 SuggestionList 使用,给用户初始话术:

<Empty title="..." desc="..." />
<SuggestionList align="center" items={[
{ label: '今天的安排', leading: 'spark' },
{ label: '帮我查询数据', leading: 'spark' },
{ label: '新建一条记录', leading: 'spark' },
]} onPress={(item) => sendMessage(item.label)} />

API

PropType默认说明
titlestring大字标题(如「暂无数据」,15px / 600)
descstring小字描述(建议下一步操作,13px / 400 / c.foregroundSubtle
iconIconName'spark'圆盘内图标;相机域可传 'camera-off' / 'permission-denied' / 'error-alert'
testIDstringE2E / 测试定位

主题键(Tokens)

Token来源作用
c.primaryContaineruseColors()圆盘背景色(浅橙)
c.primaryuseColors()圆盘内 icon 色
c.foregrounduseColors()标题文字色
c.foregroundSubtleuseColors()描述文字色
icon['2xl']@unif/react-native-design圆盘尺寸(56)
type.h3 / type.xs@unif/react-native-design标题(15)/ 描述(13)字号
space['4'] / space['3'] / space['7']@unif/react-native-designgap(10)/ 水平 padding(8)/ 垂直 padding(16)

无障碍(a11y)

来源:src/components/ui/Empty/Empty.tsxtypes.ts

本组件为展示型空态,无交互。源码是 <View> + 圆盘 <Icon> + 标题 <Text> +(可选)描述 <Text>,未设置任何 a11y prop(无 accessibilityRole / accessibilityLabel),也无可传的 a11y prop(仅 title / desc / icon / testID)。title / desc 文本默认对 SR 可读;圆盘内的 <Icon> 按其自身实现对 SR 隐藏(见 图标),故朗读内容即标题 + 描述。若需把「建议操作」做成可点项,放在 Empty 之外的 SuggestionList / Button 上,各自带交互语义。

视觉规范

元素规则
illust56×56 圆(icon['2xl']),背景 c.primaryContainer,icon 28px c.primary
title15px / 600 / c.foregroundtype.h3 + fw.semi
desc13px / 400 / c.foregroundSubtletype.xs),居中
间距gap 10(space['4']),整体居中