const PALETTE = [ '#ef4444', '#f97316', '#f59e0b', '#10b981', '#06b6d4', '#3b82f6', '#8b5cf6', '#ec4899', ]; function nameToColor(name: string): string { let hash = 0; for (let i = 0; i < name.length; i++) { hash = name.charCodeAt(i) + ((hash << 5) - hash); } return PALETTE[Math.abs(hash) % PALETTE.length]; } function initials(name: string): string { return name .split(' ') .slice(0, 2) .map((n) => n[0]) .join('') .toUpperCase(); } const SIZES = { sm: 'w-6 h-6 text-xs', md: 'w-8 h-8 text-sm', lg: 'w-10 h-10 text-base', }; interface AvatarProps { name: string; size?: keyof typeof SIZES; } export default function Avatar({ name, size = 'md' }: AvatarProps) { return (
{initials(name)}
); }