Avatar Select
Select a person with a generated avatar in both the trigger and option list.
View codeHide code
"use client";
import { DEMO_PEOPLE, getFirstName } from "@/lib/demo-people";
import { AvatarSelect } from "@/components/blobz/avatar-select";
const BLUE_PALETTE = ["#dff4ff", "#38bdf8"] as const;
const PEOPLE = [
{
avatar: { name: getFirstName(DEMO_PEOPLE.rajReddy), palette: BLUE_PALETTE },
description: "Product designer",
id: "raj",
name: DEMO_PEOPLE.rajReddy,
},
{
avatar: {
name: getFirstName(DEMO_PEOPLE.janakiAmmal),
palette: BLUE_PALETTE,
},
description: "Engineering lead",
id: "janaki",
name: DEMO_PEOPLE.janakiAmmal,
},
{
avatar: {
name: getFirstName(DEMO_PEOPLE.vikramSarabhai),
palette: BLUE_PALETTE,
},
description: "Platform engineer",
id: "vikram",
name: DEMO_PEOPLE.vikramSarabhai,
},
] as const;
export function AvatarSelectExample() {
return (
<AvatarSelect
className="max-w-sm"
contentClassName="dark"
defaultValue="raj"
items={PEOPLE}
/>
);
}Installation
Register the Blobz registry once in your project, then install:
npx shadcn@latest add @blobz/avatar-selectThe official shadcn Select and Blobz Avatar components are installed automatically.
Usage
"use client";
import { AvatarSelect } from "@/components/blobz/avatar-select";
<AvatarSelect
defaultValue="paul"
items={people}
onValueChange={setSelectedPerson}
/>Each item requires a stable id, visible name, and Blobz avatar props. The optional description is shown as supporting text.
API
Prop
Type