A
AvatarDemo
import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'
export function AvatarDemo() {
return (
<Avatar>
<AvatarImage src={'https://github.com/bolsheviknanven.png'} alt='avatar' />
<AvatarFallback>A</AvatarFallback>
</Avatar>
)
}
Installation
- Install the following dependencies
pnpm add @radix-ui/react-avatar- Copy and paste the following code into your project
src/components/ui/avatar.tsx
'use client'
import * as React from 'react'
import * as AvatarPrimitive from '@radix-ui/react-avatar'
import { cn } from '@/lib/utils'
function Avatar({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Root>) {
return (
<AvatarPrimitive.Root
data-slot='avatar'
className={cn('relative flex size-10 shrink-0 overflow-hidden rounded-full bg-primary-container', className)}
{...props}
/>
)
}
function AvatarImage({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Image>) {
return <AvatarPrimitive.Image data-slot='avatar-image' className={cn('aspect-square size-full', className)} {...props} />
}
function AvatarFallback({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {
return (
<AvatarPrimitive.Fallback
data-slot='avatar-fallback'
className={cn('flex size-full items-center justify-center rounded-full text-on-primary-container', className)}
{...props}
/>
)
}
export { Avatar, AvatarImage, AvatarFallback }
Usage
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"<Avatar>
<AvatarImage src={'https://github.com/bolsheviknanven.png'} alt='avatar' />
<AvatarFallback>A</AvatarFallback>
</Avatar>API Reference
Avatar
| Prop | type | default |
|---|---|---|
| asChild | boolean | false |
AvatarImage
| Prop | type | default |
|---|---|---|
| onLoadingStatusChange | function |
AvatarFallback
| Prop | type | default |
|---|---|---|
| asChild | boolean | false |
| delayMs | number |