Saksham Kushwaha

Avatar Select

Component

About

A user selector with avatars, search, and selected state.

Built with React and Tailwind. Copy the prompt and paste it into Claude Code, Cursor or Lovable: your agent adds Avatar Select to your project and fits it to your theme.

Code

How Avatar Select is used: the demo's code. The component's own source comes with a free account.

Usage.tsx

"use client";

import { AvatarSelect } from "@/components/ui/avatar-select";

export const DEMO_PEOPLE = {
  gagandeepKang: "Gagandeep Kang",
  janakiAmmal: "Janaki Ammal",
  kalpanaChawla: "Kalpana Chawla",
  rajReddy: "Raj Reddy",
  srinivasaRamanujan: "Srinivasa Ramanujan",
  vikramSarabhai: "Vikram Sarabhai",
} as const;

const WHITESPACE_PATTERN = /\s+/;

export const getFirstName = (name: string): string =>
  name.trim().split(WHITESPACE_PATTERN)[0] ?? name;

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() {
	const urlTheme = typeof window === "undefined" ? null : new URLSearchParams(window.location.search).get("theme");
	const demoTheme = urlTheme ?? (typeof document !== "undefined" && document.documentElement.classList.contains("dark") ? "dark" : "light");
	return (
		<AvatarSelect
			contentStyle={{ backgroundColor: demoTheme === "dark" ? "#18181b" : "#ffffff", color: demoTheme === "dark" ? "#fafafa" : "#18181b", "--accent": demoTheme === "dark" ? "#27272a" : "#f4f4f5", "--accent-foreground": demoTheme === "dark" ? "#fafafa" : "#18181b" }}
			className="max-w-sm"
			contentClassName="dark"
			defaultValue="raj"
			items={PEOPLE}
		/>
	);
}

export default AvatarSelectExample;

Dependencies

More by Saksham Kushwaha

View all
  • User Table

    User Table

  • Group Chat

    Group Chat

  • Avatar Team List

    Avatar Team List

  • Avatar Account Menu

    Avatar Account Menu

  • Presence Avatar

    Presence Avatar

  • Avatar Social Proof

    Avatar Social Proof

  • Avatar Chip

    Avatar Chip

  • Avatar Badge

    Avatar Badge

Explore more