iter(g144): 新增头像组组件 avatarGroup

This commit is contained in:
HIsheR
2026-10-26 15:40:01 +08:00
parent 9b1c068ead
commit 1009c891d9
13 changed files with 173 additions and 10 deletions
+8
View File
@@ -1508,6 +1508,14 @@
"acceptance": "tabs 新增 extra:与页签同一行、共用一条分隔线,不传时 DOM 结构不变(纯增量);文档 props/steps 与演示同步;npm run check 全绿",
"notes": "自补:既有组件可用性细节",
"status": "done"
},
{
"id": "g144",
"title": "新增头像组组件 avatarGroup",
"motivation": "协作列表 / 评论头部要展示参与人,并排 avatar 占横向空间且没有「还有 N 人」的表达;调用方各自用 margin 叠放,切口与层级都不一致",
"acceptance": "avatarGroup 支持 items(name/src/variant)、max 折叠为 +N、size 与 avatar 对齐;整组 title 列全部姓名、+N 有可访问名;样式只消费 --ua-*;文档与演示同步;npm run check 全绿",
"notes": "自补:组件补充方向",
"status": "open"
}
]
}
+36 -2
View File
@@ -1,6 +1,6 @@
{
"$schema": "ui-arch-registry-index/0.1",
"generatedAt": "2026-10-26T07:38:33.907Z",
"generatedAt": "2026-10-26T07:39:42.119Z",
"repoRoot": ".",
"packages": [
{
@@ -209,7 +209,8 @@
"floatButton(props):悬浮操作按钮,固定停靠左下 / 右下角,label 缺省为纯图标圆形,badge 走角标,tooltip 兼作 aria-label",
"mentions(props):@提及输入,textarea 内键入 @ 弹候选(名字 / 关键词过滤),↑↓ 环形移动、Enter/Tab 选中、Esc 只收本层,选中按光标替换并写回 value",
"treeSelect(props):树形选择,按钮触发弹层并复用 tree(搜索 / 多选 / 级联),单选选中即收起、多选保持展开,Esc 与点外收起",
"link(props):链接,站内跳转与站外跳转统一入口,external 自动补 ↗ 与 rel=noopener noreferrer 并给读屏播报"
"link(props):链接,站内跳转与站外跳转统一入口,external 自动补 ↗ 与 rel=noopener noreferrer 并给读屏播报",
"avatarGroup(props):头像组,横向叠放并在超出 max 时折叠成 +N,整组 title 列出全部姓名"
],
"keyTypes": [
"ButtonProps",
@@ -3492,6 +3493,39 @@
"禁用态只是去掉 href 并保持 aria-disabled,不做视觉上的「像普通文字」处理——需要完全不可聚焦请在外层控制渲染",
"纯样式的「看起来像链接」用 typography({ underline: true }),不要为了样式引入带 href 的 a 标签"
]
},
{
"id": "avatarGroup",
"title": "头像组 AvatarGroup",
"demo": "sec-avatar",
"props": [
{
"n": "items",
"t": "AvatarItem[]",
"r": 1,
"d": "成员列表:每项含 name(姓名)、src(图片地址)、variant(首字底色语义档)"
},
{
"n": "max",
"t": "number",
"df": "4",
"d": "最多展示几个,超出折叠成 +N(至少展示 1 个)"
},
{
"n": "size",
"t": "number",
"df": "32",
"d": "头像直径像素,与 avatar 的 size 同义"
}
],
"example": "avatarGroup({ items: [{ name: '张三' }, { name: '李四', variant: 'success' }, { name: '王五' }], max: 4 })",
"steps": [
"协作列表 / 评论头部展示参与人用它,比并排 avatar 省横向空间:叠放用负边距 + 底色描边切出入口",
"成员多时设 max:前 max 个照常显示,其余折叠成一个 +N,悬停任意头像都能看到全部姓名",
"只传 name 即首字占位,有图片就传 src;底色语义档用 variant(default / success / warning / danger)",
"整组是展示型元素:要有点击行为就在外面包 button 或 link,不要给单个头像加交互",
"size 与单个 avatar 一致,混排时把并排 avatar 与 avatarGroup 传同一个 size,视觉才对得上"
]
}
]
},