v0.1.9

Avatar 头像

引入import { Avatar } from '@apollo-design/ui';

以图片、图标或字符代表用户或事物。静态头像不进入 Tab 顺序;有操作时由外层原生链接或按钮提供交互。

代码演示

加载中…

基本 #

五种尺寸与圆形/方形;图标使用完整VNode数据。

加载中…

类型 #

图片、完整VNode、自定义颜色、字符与图标。自定义颜色成对指定前景和背景。

加载中…

自动调整字符大小 #

切换姓名、配色和gap,观察文字随当前尺寸重新拟合。

加载中…

带徽标的头像 #

组合徽标与头像。

加载中…

头像组合 #

组合直接头像、链接和Tooltip;max.count只计算可见子项,额外显示溢出按钮。

加载中…

maxCount 包含溢出元素 #

直接v-for渲染头像。开关只改变演示中预留的可见名额:两项加指示器,或三项加指示器;不改变max.count定义。

加载中…

图片不存在时 #

本地无效图片数据触发真实error,回退到默认字符。自定义图片VNode自行管理其加载错误。

加载中…

隐藏情况下计算字符对齐 #

切换隐藏状态、头像尺寸和外层视觉缩放,验证恢复显示后的文字测量。

加载中…

响应式尺寸 #

根据当前匹配且已配置的最大断点调整尺寸;显示文字以便观察。

加载中…

当前组件 Token #

通过当前 ConfigProvider 修改十二个已有 Avatar Token。开关移除覆盖,溢出按钮可用鼠标或 Enter/Space 打开,观察隐藏头像间距。

十个示例覆盖尺寸/形状、类型、动态字符与留白、徽标、分组、溢出计数、图片失败、隐藏后显示、响应式尺寸及当前组件 Token。max-count 的开关控制可见名额是否包含溢出指示器,Group 的 max.count 本身始终只计算可见子项。

Avatar Props

参数 说明 类型 默认值
prefixCls 本组件类名前缀 string 当前 ConfigProvider
shape 本地形状优先于 Group 'circle' | 'square' Group → 'circle'
size 本地尺寸优先于 Group 和全局尺寸;响应式表取当前匹配且已配置的最大断点 SizeType | 'default' | number | ScreenSizeMap Group → componentSize → 'medium'
gap 默认内容缩放时预留的左右空间,像素 number 4
src 字符串图片地址或完整 VNode 数据;图片失败后显示 icon/default VNodeChild —
srcSet 原生图片 srcset,变化后会重试图片 string —
draggable 原生图片拖拽属性 boolean | 'true' | 'false' —
icon 图标 VNode 数据 VNodeChild —
alt 原生图片替代文本;默认装饰图像,需表达身份时填写名称 string ''
crossOrigin 原生图片 crossorigin '' | 'anonymous' | 'use-credentials' —
beforeFallback error 事件后同步调用;返回 false 保留失败图片 (event: Event) => boolean | void —

class、style、id、data/ARIA 和其他原生监听器落在稳定的 span 根;style 支持字符串、数组和对象,优先于尺寸、主题和 Provider 样式。文字内容在 SSR 即可见,挂载后随根和内容尺寸变化测量缩放。

Slots / Events

插槽 内容
image 完整图片内容,存在时覆盖 src,包括有意为空的槽
icon 无图片时的完整图标内容,存在时覆盖 icon 数据,包括空槽
default 无图片/图标时的字符或完整业务内容
事件 载荷 说明
click 原生 MouseEvent 根点击一次发出一次;支持 .once 和合并监听器
error 原生图片 Event 加载失败时一次发出;监听器返回值不控制回退,取消使用 beforeFallback

AvatarGroup / Avatar.Group

两个入口指向同一个可安装组件。

参数 说明 类型
prefixCls 组类名前缀 string
size 经当前上下文传给子头像,支持数字、0和响应式表;子头像可覆盖 AvatarSize
shape 经当前上下文传给子头像 'circle' | 'square'
max {count?, style?, popover?}:可见项数、指示器样式和 Popover 配置 AvatarGroupMax

max.count 不包含 +N 指示器,0/未设置/负数/非有限数不限量,正小数向下取整。默认槽的直接子项(含展开的 Fragment、忽略注释)参与计数;需要多头像时直接使用 v-for。不读取业务组件内部渲染结果。

溢出指示器拥有原生 button。默认保留 hover,同时支持点击和 Enter/Space;Escape 关闭并保留按钮焦点。显式 focus 和受控 max.popover.open 仍由 Popover 配置控制。max.popover.content 可覆盖浮层内容;classNames 对象/函数、styles、容器、触发方式和开关回调继续转发,rootClassName 是浮层配置类名。默认关闭销毁隐藏内容,可用 destroyOnHidden:false 保留内容状态。

组根原生 class/style/attrs 落在 div;两组件只暴露 nativeElement(span/div,可空)。没有头像业务 v-model 或额外实例方法。

Component Token

通过 ConfigProvider :theme="{components:{Avatar:{…}}}" 设置当前组件 Token,支持源替换与移除、嵌套 Provider 和四种算法。每个实例与溢出内容读取所属主题;本地 style CSS 变量可覆盖对应根。

Token 类型 默认来源
containerSize / containerSizeLG / containerSizeSM number controlHeight / controlHeightLG / controlHeightSM
textFontSize / textFontSizeLG / textFontSizeSM number fontSize
iconFontSize / iconFontSizeSM number 平均字号 / fontSize
iconFontSizeLG number | string fontSizeHeading3
groupSpace number marginXXS
groupOverlapping number,允许负数 -marginXS
groupBorderColor string colorBorderBg

开发版事件与 Group 旧别名的直接迁移见 Avatar 迁移说明。

Powered by Vue 3 + ViteApollo Design · Vue NativeGitHub