Stacks multiple avatars with overlapping borders and shows an overflow count badge when items exceed the max limit. Accepts image URLs or text initials as fallback.
Pass an array of AvatarGroupItem objects. Each item can have an avatarUrl, initials, and name.
<ply-avatar-group [items]="users" [max]="4"></ply-avatar-group>
users: AvatarGroupItem[] = [
{ avatarUrl: 'https://...', name: 'Alice' },
{ initials: 'BC', name: 'Bob C.' },
];
TypeScript
import { Component } from '@angular/core';
// Install: npx ply-ui-cli add avatar-group
// Paths are relative to aliases.components (default: src/app/components)
import { AvatarGroupComponent } from './avatar-group/avatar-group.component';
@Component({
selector: 'app-avatar-group-example',
imports: [
AvatarGroupComponent
],
template: `...`
})
export class AvatarGroupExampleComponent {}Install
npx ply-ui-cli add avatar-group
Control avatar size with the size input: xs, sm, md, lg, xl.
<ply-avatar-group [items]="users" size="lg"></ply-avatar-group>
TypeScript
import { Component } from '@angular/core';
// Install: npx ply-ui-cli add avatar-group
// Paths are relative to aliases.components (default: src/app/components)
import { AvatarGroupComponent } from './avatar-group/avatar-group.component';
@Component({
selector: 'app-avatar-group-example',
imports: [
AvatarGroupComponent
],
template: `...`
})
export class AvatarGroupExampleComponent {}Install
npx ply-ui-cli add avatar-group
Set max to limit visible avatars. The remaining count is shown as a +N chip.
<ply-avatar-group [items]="users" [max]="3"></ply-avatar-group>
TypeScript
import { Component } from '@angular/core';
// Install: npx ply-ui-cli add avatar-group
// Paths are relative to aliases.components (default: src/app/components)
import { AvatarGroupComponent } from './avatar-group/avatar-group.component';
@Component({
selector: 'app-avatar-group-example',
imports: [
AvatarGroupComponent
],
template: `...`
})
export class AvatarGroupExampleComponent {}Install
npx ply-ui-cli add avatar-group
If avatarUrl is omitted, the component shows initials or the first letter of name.
TypeScript
import { Component } from '@angular/core';
// Install: npx ply-ui-cli add avatar-group
// Paths are relative to aliases.components (default: src/app/components)
import { AvatarGroupComponent } from './avatar-group/avatar-group.component';
@Component({
selector: 'app-avatar-group-example',
imports: [
AvatarGroupComponent
],
template: `...`
})
export class AvatarGroupExampleComponent {}Install
npx ply-ui-cli add avatar-group
Run the following command to add this component to your project:
npx ply-ui-cli add avatar-group
For AI agents
Copy a prompt with the registry name, CLI install, and import — or add the Ply MCP server.
npx -y ply-ui-mcp
Ply provides standalone components. Import the exact elements you want to use into your component.
// Install: npx ply-ui-cli add avatar-group
// Paths are relative to aliases.components (default: src/app/components)
import { AvatarGroupComponent } from './avatar-group/avatar-group.component';
@Component({
selector: 'app-your-component',
imports: [
AvatarGroupComponent
],
template: `...`
})
export class YourComponent {} API for avatar-group — generated from JSDoc in the library source.
| API | Member | Type | Default | Description |
|---|---|---|---|---|
ply-avatar-group | class | string | '' | Additional host CSS classes (merged via cn()). |
ply-avatar-group | items | AvatarGroupItem[] | [] | — |
ply-avatar-group | max | number | 4 | — |
ply-avatar-group | size | AvatarSize | 'md' | — |
Content