Getting StartedComponentsDesign TokensThemingTheme SynthesizerFrameworksAccessibilityUtilitiesServer RenderingBrowser SupportContributingChangelogApp ShellAspect GridAuth ShellCenterContainerDashboard GridFloat BarInsetMasonryPage HeaderPage LayoutResizableResponsive SwitcherSectionSettings LayoutSplit PaneStatus BarStickyToolbarAnchor NavBottom NavBreadcrumbBreadcrumb MenuCommand BarDrawerFooterLinkMenubarNavigation MenuPage IndicatorPaginationRailScroll IndicatorScroll SpyScroll To TopSidebarSkip LinkStepper NavTabsTop BarTree ViewAccordionAspect RatioAvatarAvatar GroupCardCarouselCollapsibleColor SwatchCTA BannerDividerEmpty StateFeature CardIconImageImage CompareImage HotspotsInfinite ScrollLightboxMarqueeQR CodeScroll AreaSkeletonSpinnerStackVideoVirtual ListActivity HeatmapAnimated NumberBadgeBar ListChartClockComparisonCountdown TimerData GridDescription ListDiffGaugeJSON TreeKanbanLevel MeterListMeterSparklineStatStepperTagTimelineUptimeValue CardWaveformBlockquoteCode BlockCode GroupGradient TextHighlightKbdKeyboard MapMarkdownNumber FormatProseTerminalTextTime AgoTruncateTypewriterButtonButton GroupCalendarCheckboxChipColor PickerComboboxCopy ButtonDate PickerDate Range PickerField ListFieldsetFile UploadFormHotkeyIcon ButtonImage CropperInline EditInputInput GroupKnobLabelMasked InputMulti SelectNumber InputPassword InputPin InputRadio GroupRange SliderRatingSearchSegmented ControlSelectSignature PadSliderSortable ListSwitch GroupTag InputTextareaTheme ToggleTime PickerToggleTransfer ListTree SelectAlertAnnouncementBannerCommand PaletteConfirmConnection StatusContext MenuConversationDialogDropdown MenuHover CardLoading OverlayNotification PanelPopoverProgressSheetToastTooltip
ARC UIARC Radiant Components
v4.9DocsComponentsTokensSynthesizer
Getting StartedFrameworksServer RenderingDesign TokensThemingTheme SynthesizerTypographyUtilitiesAll ComponentsAccessibilityBrowser SupportChangelogContributingStatsApp ShellAspect GridAuth ShellCenterContainerDashboard GridFloat BarInsetMasonryPage HeaderPage LayoutResizableResponsive SwitcherSectionSettings LayoutSplit PaneStatus BarStickyToolbarAnchor NavBottom NavBreadcrumbBreadcrumb MenuCommand BarDrawerFooterLinkMenubarNavigation MenuPage IndicatorPaginationRailScroll IndicatorScroll SpyScroll To TopSidebarSkip LinkStepper NavTabsTop BarTree ViewAccordionAspect RatioAvatarAvatar GroupCardCarouselCollapsibleColor SwatchCTA BannerDividerEmpty StateFeature CardIconImageImage CompareImage HotspotsInfinite ScrollLightboxMarqueeQR CodeScroll AreaSkeletonSpinnerStackVideoVirtual ListActivity HeatmapAnimated NumberBadgeBar ListChartClockComparisonCountdown TimerData GridDescription ListDiffGaugeJSON TreeKanbanLevel MeterListMeterSparklineStatStepperTagTimelineUptimeValue CardWaveformBlockquoteCode BlockCode GroupGradient TextHighlightKbdKeyboard MapMarkdownNumber FormatProseTerminalTextTime AgoTruncateTypewriterButtonButton GroupCalendarCheckboxChipColor PickerComboboxCopy ButtonDate PickerDate Range PickerField ListFieldsetFile UploadFormHotkeyIcon ButtonImage CropperInline EditInputInput GroupKnobLabelMasked InputMulti SelectNumber InputPassword InputPin InputRadio GroupRange SliderRatingSearchSegmented ControlSelectSignature PadSliderSortable ListSwitch GroupTag InputTextareaTheme ToggleTime PickerToggleTransfer ListTree SelectAlertAnnouncementBannerCommand PaletteConfirmConnection StatusContext MenuConversationDialogDropdown MenuHover CardLoading OverlayNotification PanelPopoverProgressSheetToastTooltip

Avatar Group

Stack of avatars with overflow count badge.

ComponentsAvatar Group
contentstatic
<arc-avatar-group>

Overview

AvatarGroup arranges a collection of arc-avatar components in a horizontally overlapping stack, with a "+N" overflow counter that appears when the number of avatars exceeds the `max` threshold. The overlap is controlled by three presets (sm -8px, md -12px, lg -16px) applied as negative margin-left on every child except the first. When avatars are slotted in, the component listens for slotchange events and manages visibility. Avatars beyond the `max` count are hidden via `display: none`, and a circular overflow badge (styled to match the avatar aesthetic) shows the remaining count. Each visible avatar gets a descending z-index so earlier avatars stack on top. AvatarGroup is marked as a hybrid component: the overlapping layout works in pure CSS, but the overflow counter logic (hiding excess avatars and computing the "+N" label) requires JavaScript. The group wrapper uses `role="group"` with `aria-label="Avatar group"` for assistive technology, and the overflow badge uses the same Tomorrow font and elevated background as the avatar initials fallback.

Guidelines

When to use

  • Set a reasonable max (3-5) to keep the group compact and scannable
  • Use consistent avatar sizes within a group for uniform overlap alignment
  • Pair with arc-avatar components exclusively; the overlap styling targets slotted children
  • Use the md overlap preset for most contexts; sm for tight spaces, lg for larger avatars
  • Place in team member sections, comment threads, or collaboration indicators

When not to use

  • Do not mix different avatar sizes in the same group; overlap alignment will be inconsistent
  • Do not set max to a very high number and rely solely on the counter; limit visible avatars for clarity
  • Do not slot non-avatar elements; the overlap margin and z-index logic assumes arc-avatar children
  • Do not remove the overflow badge styling; it provides critical information about hidden members
  • Do not use AvatarGroup for a single avatar; it only adds wrapper markup

Features

  • Automatic "+N" overflow counter when slotted avatars exceed the max threshold
  • Three overlap presets: sm (-8px), md (-12px), lg (-16px)
  • Dynamic slot management with slotchange listener for visibility toggling
  • Descending z-index assignment for correct visual stacking order
  • Overflow badge styled to match avatar aesthetics (Tomorrow font, elevated background, circular shape)
  • Accessible `role="group"` with `aria-label` on the container
  • Exposed CSS parts: group and overflow for external style customization

Preview

Usage

<arc-avatar-group max="3">
  <arc-avatar name="Alice"></arc-avatar>
  <arc-avatar name="Bob"></arc-avatar>
  <arc-avatar name="Charlie"></arc-avatar>
  <arc-avatar name="Diana"></arc-avatar>
</arc-avatar-group>

API

maxnumberInfinity
Maximum number of avatars to display. Excess avatars are hidden and a "+N" overflow badge is shown.
overlap'sm' | 'md' | 'lg''md'
Overlap density preset. sm = -8px, md = -12px, lg = -16px negative margin between avatars.

See Also