Avatar

Identity avatars for people, teams, presence, and profile edits.

Loading preview...

Examples

Practical examples and common states for the same installable component.

Fallback

Initials or icon when the image is missing or still loading.

examples/avatar-fallback.tsx
import { IconUser } from "@tabler/icons-react";
import {
Avatar,
AvatarFallback,
AvatarImage,
} from "@/components/wensity/avatar";
export function AvatarFallbackDemo() {
return (
<div className="flex gap-4">
<Avatar size="lg">
<AvatarFallback>Parth Sharma</AvatarFallback>
</Avatar>
<Avatar size="lg">
<AvatarFallback>
<IconUser stroke={1.75} />
</AvatarFallback>
</Avatar>
<Avatar size="lg">
<AvatarImage src="/missing.webp" alt="Broken image" />
<AvatarFallback delayMs={300}>Fallback</AvatarFallback>
</Avatar>
</div>
);
}

Status

Online, away, busy, and offline presence indicators.

examples/avatar-status.tsx
import {
Avatar,
AvatarFallback,
AvatarImage,
} from "@/components/wensity/avatar";
export function AvatarStatusDemo() {
return (
<div className="flex gap-4">
<Avatar size="lg" status="online">
<AvatarImage src="/avatars/1.webp" alt="Online" />
<AvatarFallback>Online</AvatarFallback>
</Avatar>
<Avatar size="lg" status="away">
<AvatarFallback>Away</AvatarFallback>
</Avatar>
<Avatar size="lg" status="busy">
<AvatarFallback>Busy</AvatarFallback>
</Avatar>
<Avatar size="lg" status="offline">
<AvatarFallback>Off</AvatarFallback>
</Avatar>
</div>
);
}

Group

Stacked avatars with overflow count and anchored name tooltips.

examples/avatar-group.tsx
import {
Avatar,
AvatarFallback,
AvatarGroup,
AvatarGroupItem,
AvatarImage,
} from "@/components/wensity/avatar";
export function AvatarGroupDemo() {
return (
<AvatarGroup max={4} size="md">
<AvatarGroupItem name="Parth Sharma">
<Avatar>
<AvatarImage src="/avatars/1.webp" alt="Parth Sharma" />
<AvatarFallback>Parth Sharma</AvatarFallback>
</Avatar>
</AvatarGroupItem>
<AvatarGroupItem name="Maya Chen">
<Avatar>
<AvatarImage src="/avatars/2.webp" alt="Maya Chen" />
<AvatarFallback>Maya Chen</AvatarFallback>
</Avatar>
</AvatarGroupItem>
<AvatarGroupItem name="Jordan Lee">
<Avatar>
<AvatarFallback>Jordan Lee</AvatarFallback>
</Avatar>
</AvatarGroupItem>
<AvatarGroupItem name="Sam Ortiz">
<Avatar>
<AvatarFallback>Sam Ortiz</AvatarFallback>
</Avatar>
</AvatarGroupItem>
<AvatarGroupItem name="Riley Park">
<Avatar>
<AvatarFallback>Riley Park</AvatarFallback>
</Avatar>
</AvatarGroupItem>
</AvatarGroup>
);
}

Uploadable

Editable profile avatar with camera overlay on hover.

examples/avatar-upload.tsx
"use client";
import { AvatarUpload } from "@/components/wensity/avatar";
export function AvatarUploadDemo() {
return (
<AvatarUpload
size="xl"
initials="Parth Sharma"
onChange={(file) => console.log(file?.name)}
/>
);
}