Skip to content
Blobz docs

Avatar Team List

A responsive roster with generated avatars, presence, roles, descriptions, and action slots.

  • Janaki AmmalOwnerjanaki@example.com
  • Vikram SarabhaiEngineervikram@example.com
  • Kalpana ChawlaScientistkalpana@example.com
View code
avatar-team-list-example.tsx
import { DEMO_PEOPLE, getFirstName } from "@/lib/demo-people";
import { AvatarTeamList } from "@/components/blobz/avatar-team-list";

const TEAM_MEMBERS = [
	{
		avatar: {
			name: getFirstName(DEMO_PEOPLE.janakiAmmal),
			palette: ["#dff4ff", "#38bdf8"],
		},
		description: "janaki@example.com",
		id: "janaki",
		name: DEMO_PEOPLE.janakiAmmal,
		role: "Owner",
		status: "online",
	},
	{
		avatar: {
			name: getFirstName(DEMO_PEOPLE.vikramSarabhai),
			palette: ["#fff0e2", "#fa9769"],
		},
		description: "vikram@example.com",
		id: "vikram",
		name: DEMO_PEOPLE.vikramSarabhai,
		role: "Engineer",
		status: "away",
	},
	{
		avatar: {
			name: getFirstName(DEMO_PEOPLE.kalpanaChawla),
			palette: ["#e7fbe8", "#9ce786"],
		},
		description: "kalpana@example.com",
		id: "kalpana",
		name: DEMO_PEOPLE.kalpanaChawla,
		role: "Scientist",
		status: "offline",
	},
] as const;

export function AvatarTeamListExample() {
	return <AvatarTeamList className="w-full max-w-xl" members={TEAM_MEMBERS} />;
}

Installation

Register the Blobz registry once in your project, then install:

npx shadcn@latest add @blobz/avatar-team-list

Usage

import { AvatarTeamList } from "@/components/blobz/avatar-team-list";

<AvatarTeamList
  members={[
    {
      id: "janaki",
      name: "Janaki Ammal",
      description: "janaki@example.com",
      role: "Owner",
      status: "online",
      avatar: { name: "Janaki" },
    },
  ]}
/>

The list uses semantic ul and li elements. Avatars are decorative because every row includes the member's visible name.

Member API

Prop

Type