Avatar Group
avonni-avatar-group
Displays a group of avatars, laid out in a stack or grid, with extra items collapsed into an overflow indicator.
Overview
Avatar Group is a Lightning Web Component that displays a collection of avatars together as a stack, grid, or list, with overflow handling and per-avatar actions.
Use it in your own Lightning Web Components to represent teams, attendees, or collaborators. You control the layout, size, shape, overflow count, and the items array, and you can respond to clicks on avatars and their actions.
Use Cases
Team rosters: Show all members assigned to a project or record.
Attendee lists: Display meeting or event participants compactly.
Collaborators: Surface everyone sharing or editing a document.
Owner pools: Represent a group of record owners with overflow.
Interactive directories: Let users click avatars to open profiles or run actions.
Layout Guidelines
stack
Compact overlapping avatars for dense headers.
grid
Even, wrapping grid for larger member pools.
list
Vertical list with detail text and show more/less.
Use Case Examples
Example 1: Stacked team avatars
Scenario: Show a compact stack of project members in a record header.
Result: Up to five overlapping circular avatars, with the rest collapsed into an overflow indicator.
Example 2: Interactive member list
Scenario: Show members as a list with actions, and respond to clicks.
Result: A list of avatars with detail text and a Show more/less button; clicks fire itemclick, itemactionclick, and itemsvisibilitytoggle.
Specifications
Attributes
icon-position
The icon position of the avatars . Valid values are start, center, end.
String
"center"
items
An array of items to be rendered as avatar in a group.
AvonniAvatarGroupItem[]
—
keyboard-assistive-text
The assistive text used to describe the keyboard navigation.
String
"Move between the items by using arrow keys."
layout
Defines the layout of the avatar group. Valid values include stack, grid and list.
String
"stack"
layout-attributes
Attributes specific to certain layout values.
AvonniAvatarGroupLayoutAttributes
—
list-button-show-less-icon-name
The Lightning Design System name of the list button icon. Specify the name in the format 'utility:down' where 'utility' is the category, and 'down' is the specific icon to be displayed.
String
—
list-button-show-less-icon-position
Position of the list button’s icon. Valid values include left and right.
String
"left"
list-button-show-less-label
Label of the button that appears in the list layout, when the number of avatars exceeds the max-count number.
String
"Show less"
list-button-show-more-icon-name
The Lightning Design System name of the list button icon. Specify the name in the format 'utility:down' where 'utility' is the category, and 'down' is the specific icon to be displayed.
String
—
list-button-show-more-icon-position
Position of the list button’s icon. Valid values include left and right.
String
"left"
list-button-show-more-label
Label of the button that appears in the list layout, when the number of avatars exceeds the max-count number.
String
"Show more"
list-button-variant
Variant of the button that appears in the list layout, when the number of avatars exceeds the max-count number.
String
"neutral"
max-count
The maximum number of avatars allowed in the visible list. This attribute is ignored if enable-infinite-loading is present.
Number
"5 for stack, 11 for grid and list"
show-more-button-alternative-text
The alternative text used to describe the show more button.
String
"Show more"
size
The size of the avatars. Valid values include x-small, small, medium, large, x-large and xx-large.
String
"medium"
variant
Shape of the avatars. Valid values include empty, circle or square.
String
"square"
Custom Events
actionclick
The event fired when the user clicks on an action.
The actionclick event returns the following parameters.
name
string
The avatar group name.
The event properties are as follows.
bubbles
false
This event does not bubble.
cancelable
false
This event has no default behavior that can be canceled. You can't call preventDefault() on this event.
composed
false
This event does not propagate outside of the component in which it was dispatched.
itemactionclick
The event fired when the user clicks on an item's action.
The itemactionclick event returns the following parameters.
name
string
Action name.
targetName
string
Name of the item to which the action belongs.
The event properties are as follows.
bubbles
false
This event does not bubble.
cancelable
false
This event has no default behavior that can be canceled. You can't call preventDefault() on this event.
composed
false
This event does not propagate outside of the component in which it was dispatched.
itemclick
The event fired when the user click on an item.
The itemclick event returns the following parameters.
name
string
Name of the clicked avatar.
The event properties are as follows.
bubbles
false
This event does not bubble.
cancelable
false
This event has no default behavior that can be canceled. You can't call preventDefault() on this event.
composed
false
This event does not propagate outside of the component in which it was dispatched.
itemsvisibilitytoggle
The event fired when you click on the show more/less button that appears at the end of the list layout, if a max-count value is present.
The itemsvisibilitytoggle event returns the following parameters.
show
boolean
True if avatars are currently hidden and the click was meant to show more of them. False if the click was meant to hide the visible avatars.
The event properties are as follows.
bubbles
false
This event does not bubble.
cancelable
false
This event has no default behavior that can be canceled. You can't call preventDefault() on this event.
composed
false
This event does not propagate outside of the component in which it was dispatched.
loadmore
The event fired when you scroll to the end of the avatar group. This event is fired only if enable-infinite-loading is true.
The loadmore event doesn't return any parameters.
bubbles
false
This event does not bubble.
cancelable
false
This event has no default behavior that can be canceled. You can't call preventDefault() on this event.
composed
false
This event does not propagate outside of the component in which it was dispatched.
actionclick
The event fired when the user clicks on an action.
The actionclick event returns the following parameters.
name
string
The avatar group name.
The event properties are as follows.
bubbles
false
This event does not bubble.
cancelable
false
This event has no default behavior that can be canceled. You can't call preventDefault() on this event.
composed
false
This event does not propagate outside of the component in which it was dispatched.
avataractionclick
The event fired when the user clicks on an avatar action.
The avataractionclick event returns the following parameters.
item
object
The avatar detail.
name
string
The action name.
targetName
string
Name of the avatar.
The event properties are as follows.
bubbles
false
This event does not bubble.
cancelable
false
This event has no default behavior that can be canceled. You can't call preventDefault() on this event.
composed
false
This event does not propagate outside of the component in which it was dispatched.
avatarclick
The event fired when the user click on an avatar.
The avatarclick event returns the following parameters.
item
object
The avatar detail.
name
string
Name of the avatar.
The event properties are as follows.
bubbles
true
This event bubbles up through the DOM.
cancelable
true
This event can be canceled. You can call preventDefault() on this event.
composed
false
This event does not propagate outside of the component in which it was dispatched.
itemsvisibilitytoggle
The event fired when you click on the show more/less button that appears at the end of the list layout, if a max-count value is present and enable-infinite-loading is not present.
The itemsvisibilitytoggle event returns the following parameters.
show
boolean
True if avatars are currently hidden and the click was meant to show more of them. False if the click was meant to hide the visible avatars.
visibleItemsLength
number
Length of the currently visible items.
The event properties are as follows.
bubbles
false
This event does not bubble.
cancelable
false
This event has no default behavior that can be canceled. You can't call preventDefault() on this event.
composed
false
This event does not propagate outside of the component in which it was dispatched.
loadmore
The event fired when you scroll to the end of the avatar group. This event is fired only if enable-infinite-loading is true.
The loadmore event doesn't return any parameters.
bubbles
false
This event does not bubble.
cancelable
false
This event has no default behavior that can be canceled. You can't call preventDefault() on this event.
composed
false
This event does not propagate outside of the component in which it was dispatched.
Styling Hooks
--avonni-avatar-group-avatar-stack-sizing-border
sizing
1px
--avonni-avatar-group-avatar-stack-color-border
color
#ffffff
--avonni-avatar-group-avatar-stack-styling-border
color
#ffffff
--avonni-avatar-group-show-more-button-neutral-spacing-block-end
dimension
0
--avonni-avatar-group-show-more-button-neutral-spacing-block-start
dimension
0
--avonni-avatar-group-show-more-button-neutral-spacing-inline-end
dimension
1rem
--avonni-avatar-group-show-more-button-neutral-spacing-inline-start
dimension
1rem
--avonni-avatar-group-show-more-button-neutral-color-background
color
#ffffff
--avonni-avatar-group-show-more-button-neutral-color-background-active
color
#f3f3f3
--avonni-avatar-group-show-more-button-neutral-color-background-hover
color
#f3f3f3
--avonni-avatar-group-show-more-button-neutral-color-border
color
#c9c9c9
--avonni-avatar-group-show-more-button-neutral-color-border-active
color
#c9c9c9
--avonni-avatar-group-show-more-button-neutral-color-border-hover
color
#c9c9c9
--avonni-avatar-group-show-more-button-neutral-text-color
color
#0176d3
--avonni-avatar-group-show-more-button-neutral-text-color-active
color
#014486
--avonni-avatar-group-show-more-button-neutral-text-color-hover
color
#014486
--avonni-avatar-group-show-more-button-neutral-radius-border
dimension
0.25rem
--avonni-avatar-group-show-more-button-neutral-sizing-border
sizing
1px
Key Considerations
Overflow:
max-countcontrols how many avatars show before the rest collapse; defaults differ by layout.Per-item config: Item properties like
initials,alternativeText,presence,status, andactionsare set on each object initems.Layout attributes: Use
layout-attributesto customize layout-specific behavior such as the list show more/less labels.Accessibility: Provide
keyboard-assistive-textand per-itemalternativeTextfor screen reader and keyboard users.Best Practice: Set a sensible
max-countso the group stays compact, and providealternativeTexton each item for accessibility.
Troubleshooting Common Issues
Avatars not showing: Confirm
itemsis a non-empty array and each item has identifying data (initials,src, orfallbackIconName).Too many or too few visible: Adjust
max-count; remember defaults differ betweenstackandgrid/list.Show more/less missing: It only appears in
listlayout when items exceedmax-count.If issues persist: Contact our support team at [email protected] for assistance.
Last updated
Was this helpful?
