跳到主要内容

Avatar 头像

圆形 monogram 头像(建议 1–2 字符)。brand / info / soft / neutral · xs 18 / sm 28 / md 32 / lg 40 / xl 56。可传 source 渲染真实头像图片,加载失败时自动回退到 label 文字。

蓝色规则

info 变体(蓝底 #3775F6专用于用户头像。其它头像用 brand / soft / neutral

实时预览

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

变体
AI
P
尺寸
1
A
A
A
A
xs(脚注引用 / 列表序号专用)
1
2
3

用法

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

<Avatar label="AI" variant="brand" size="lg" />
<Avatar label="" variant="info" size="md" />
<Avatar label="" variant="soft" />
<Avatar label="P" variant="neutral" size="sm" />

API

PropType默认说明
labelstring显示文字(建议 1–2 字符);同时作为 a11y label,图片加载失败时回退展示
size'xs' | 'sm' | 'md' | 'lg' | 'xl''md'18 / 28 / 32 / 40 / 56
variant'brand' | 'info' | 'soft' | 'neutral''neutral'配色变体(仅在显示 label 时生效,有 source 时被图片覆盖)
sourceImageSourcePropType真实头像图片({ uri }require(...));优先渲染,onError 后回退 label
testIDstringE2E / 测试定位

xs(18px)专为内联序号 / 脚注引用使用 —— 例如 Sources 列表里的来源编号 badge。

主题键(Tokens)

Token来源作用
c.primary / c.onPrimaryuseColors()brand 变体底色 / 文字
c.info / c.onInfouseColors()info 变体底色 / 文字
c.primaryContainer / c.primaryuseColors()soft 变体底色 / 文字
c.surfaceContainerHighest / c.foregrounduseColors()neutral 变体底色 / 文字
avatar.xs … avatar.xl@unif/react-native-design五档容器直径(18 / 28 / 32 / 40 / 56)
fw.semi@unif/react-native-designlabel 字重

无障碍(a11y)

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

本组件为展示用,无交互(渲染为 <View>,不接收点击)。源码在根 <View> 上设了 accessibilityLabel={label},且 label 为必填,因此 screen reader 会朗读该文字(即使 source 图片加载成功,朗读的仍是 label;图片加载失败时也回退展示 label)。无 accessibilityRole,继承底层 <View> 默认。如需让头像可点击,请由父级可点区域承载语义。

// label 同时作为 SR 朗读文案
<Avatar label="" variant="info" />