- Components
- avatar
Avatar
Display a user image, initials, or fallback icon with sizing options.
Demo
Preview
Code
import { Avatar } from "@/components/jk/avatar"
export const AvatarDemo = () => {
return (
<div className="flex items-center gap-4 justify-center flex-wrap">
<Avatar
src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=100&h=100&fit=crop&crop=face"
alt="User avatar"
size="md"
/>
<Avatar
text="JD"
variant="solid"
intent="solid-primary"
size="md"
/>
<Avatar
text="AB"
variant="soft"
intent="soft-primary"
size="md"
/>
<Avatar
text="CD"
variant="outline"
intent="outline-primary"
size="md"
/>
</div>
)
}
Installation
terminal
npx shadcn@latest add @jk-ui/avatarSizes
Preview
Code
import { Avatar } from "@/components/jk/avatar"
export const AvatarSizes = () => {
return (
<div className="flex items-center gap-4 justify-center flex-wrap">
<div className="flex flex-col items-center gap-2">
<Avatar
src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=100&h=100&fit=crop&crop=face"
alt="User avatar"
size="xs"
/>
<span className="text-xs text-fg-muted">xs</span>
</div>
<div className="flex flex-col items-center gap-2">
<Avatar
src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=100&h=100&fit=crop&crop=face"
alt="User avatar"
size="sm"
/>
<span className="text-xs text-fg-muted">sm</span>
</div>
<div className="flex flex-col items-center gap-2">
<Avatar
src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=100&h=100&fit=crop&crop=face"
alt="User avatar"
size="default"
/>
<span className="text-xs text-fg-muted">default</span>
</div>
<div className="flex flex-col items-center gap-2">
<Avatar
src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=100&h=100&fit=crop&crop=face"
alt="User avatar"
size="md"
/>
<span className="text-xs text-fg-muted">md</span>
</div>
<div className="flex flex-col items-center gap-2">
<Avatar
src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=100&h=100&fit=crop&crop=face"
alt="User avatar"
size="lg"
/>
<span className="text-xs text-fg-muted">lg</span>
</div>
<div className="flex flex-col items-center gap-2">
<Avatar
src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=100&h=100&fit=crop&crop=face"
alt="User avatar"
size="xl"
/>
<span className="text-xs text-fg-muted">xl</span>
</div>
</div>
)
}
Placeholder Variants
Preview
Code
JDABCDEFGH
JDABCDEFGH
JDABCDEFGH
import { Avatar } from "@/components/jk/avatar"
export const AvatarPlaceholder = () => {
return (
<div className="flex flex-col gap-6">
<div className="flex items-center gap-4 justify-center flex-wrap">
<Avatar text="JD" variant="solid" intent="solid-primary" size="md" />
<Avatar text="AB" variant="solid" intent="solid-secondary" size="md" />
<Avatar text="CD" variant="solid" intent="solid-success" size="md" />
<Avatar text="EF" variant="solid" intent="solid-danger" size="md" />
<Avatar text="GH" variant="solid" intent="solid-gray" size="md" />
</div>
<div className="flex items-center gap-4 justify-center flex-wrap">
<Avatar text="JD" variant="soft" intent="soft-primary" size="md" />
<Avatar text="AB" variant="soft" intent="soft-secondary" size="md" />
<Avatar text="CD" variant="soft" intent="soft-success" size="md" />
<Avatar text="EF" variant="soft" intent="soft-danger" size="md" />
<Avatar text="GH" variant="soft" size="md" />
</div>
<div className="flex items-center gap-4 justify-center flex-wrap">
<Avatar text="JD" variant="outline" intent="outline-primary" size="md" />
<Avatar text="AB" variant="outline" intent="outline-secondary" size="md" />
<Avatar text="CD" variant="outline" intent="outline-success" size="md" />
<Avatar text="EF" variant="outline" intent="outline-danger" size="md" />
<Avatar text="GH" variant="outline" size="md" />
</div>
</div>
)
}
Radius
Preview
Code
JDnone
ABdefault
CDcircle
import { Avatar } from "@/components/jk/avatar"
export const AvatarRadius = () => {
return (
<div className="flex flex-col gap-6">
<div className="flex items-center gap-4 justify-center flex-wrap">
<div className="flex flex-col items-center gap-2">
<Avatar
src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=100&h=100&fit=crop&crop=face"
alt="User avatar"
size="md"
radius="none"
/>
<span className="text-xs text-fg-muted">none</span>
</div>
<div className="flex flex-col items-center gap-2">
<Avatar
src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=100&h=100&fit=crop&crop=face"
alt="User avatar"
size="md"
radius="default"
/>
<span className="text-xs text-fg-muted">default</span>
</div>
<div className="flex flex-col items-center gap-2">
<Avatar
src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=100&h=100&fit=crop&crop=face"
alt="User avatar"
size="md"
radius="circle"
/>
<span className="text-xs text-fg-muted">circle</span>
</div>
</div>
<div className="flex items-center gap-4 justify-center flex-wrap">
<div className="flex flex-col items-center gap-2">
<Avatar
text="JD"
variant="solid"
intent="solid-primary"
size="md"
radius="none"
/>
<span className="text-xs text-fg-muted">none</span>
</div>
<div className="flex flex-col items-center gap-2">
<Avatar
text="AB"
variant="solid"
intent="solid-primary"
size="md"
radius="default"
/>
<span className="text-xs text-fg-muted">default</span>
</div>
<div className="flex flex-col items-center gap-2">
<Avatar
text="CD"
variant="solid"
intent="solid-primary"
size="md"
radius="circle"
/>
<span className="text-xs text-fg-muted">circle</span>
</div>
</div>
</div>
)
}