---
localeCode: en-US
order: 45
category: Show
title: Avatar
subTitle: avatar
icon: doc-avatar
brief: Avatar, used for image or text display.
---
## Demos
### How to import
```jsx import
import { Avatar, AvatarGroup } from '@douyinfe/semi-ui';
```
### Size
You can change the size of the avatars with `size` property. The following sizes are supported: `extra-extra-small`(20x20), `extra-small`(24x24),`small`(32x32), `default`(40x40), `medium`(48x48), `large`(72x72), `extra-large`(128 x 128).
```jsx live=true
import React from 'react';
import { Avatar } from '@douyinfe/semi-ui';
() => (
);
```
### Color
Avatars support 16 colors including `white`, `amber`, `blue`, `cyan`, `green`, `grey`, `indigo`, `light-blue`, `light-green`, `lime`, `orange`, `pink`, `purple`, `red`, `teal`, `violet`, and `yellow`. You can also use the `style` prop to customize styles. The default color is`grey`.
```jsx live=true
import React from 'react';
import { Avatar } from '@douyinfe/semi-ui';
() => (
);
```
### Image
Image avatars can be created by using the `src` or `srcSet` prop.
```jsx live=true
import React from 'react';
import { Avatar } from '@douyinfe/semi-ui';
() => (
);
```
### Shape
Avatars support two shapes: `circle` and `square`. The shape is default to `circle`.
```jsx live=true
import React from 'react';
import { Avatar } from '@douyinfe/semi-ui';
() => (
);
```
### Event
Avatars support `onClick`,`onMouseEnter`,`onMouseLeave`. You can use the `hoverMask` prop to pass in overlay content for `hover` state.
The overlay has no default style.
```jsx live=true
import React from 'react';
import { Avatar } from '@douyinfe/semi-ui';
import { IconCamera } from '@douyinfe/semi-icons';
() => {
const style = {
backgroundColor: 'var(--semi-color-overlay-bg)',
height: '100%',
width: '100%',
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
};
const hover = (
);
return (
BD
);
};
```
### AvatarGroup
You can use `AvatarGroup` component to display avatars as a group.
```jsx live=true
import React from 'react';
import { Avatar, AvatarGroup } from '@douyinfe/semi-ui';
import React from 'react';
import { AvatarGroup, Avatar } from '@douyinfe/semi-ui';
() => (
);
```
You can set the number of avatars to display with `maxCount` property.
```jsx live=true
import React from 'react';
import { Avatar, AvatarGroup } from '@douyinfe/semi-ui';
() => (
);
```
You can customize the more tag with `renderMore`.
```jsx live=true
import React from 'react';
import { Avatar, AvatarGroup, Popover } from '@douyinfe/semi-ui';
function Demo() {
const renderMore = (restNumber, restAvatars) => {
const content = (
restAvatars.map((avatar, index) => {
return (
{React.cloneElement(avatar, { size: 'extra-small' })}
This is a sentence
);
})
);
return (
{`+${restNumber}`}
);
};
return (
LL
CX
RM
ZL
YZ
);
}
```
You can set the coverage direction of the avatars with `overlapFrom`. It has two optional values A and B. The default value is `start`.
```jsx live=true
import React from 'react';
import { Avatar, AvatarGroup } from '@douyinfe/semi-ui';
() => (
);
```
## API Reference
---
### Avatar
| Properties | Instructions | type | Default |
| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | -------- |
| alt | Defines an alternative text description of the image. | string | - |
| className | Class name | string | - |
| color | Color of the avatar, one of `amber`, `blue`, `cyan`, `green`, `grey`, `indigo`, `light-blue`, `light-green`, `lime`, `orange`, `pink`, `rain`, `red`, `teal`, `violet`, `yellow`, `white` | string | `grey` |
| hoverMask | Avatar content overlay when hover | ReactNode | - |
| imgAttr | Native html img attributes **>=1.5.0**| React.ImgHTMLAttributes | - |
| shape | Shape of the avatar, one of `circle`, `square` | string | `circle` |
| size | Size of the avatar, one of `extra-extra-small`,`extra-small`, `small`, `default`, `medium`, `large`, `extra-large` | string | `medium` |
| src | Resource address for imgage avatars | string | - |
| srcSet | Set the image avatar responsive resource address | string | - |
| style | Style name | CSSProperties | - |
| onClick | Click the callback of the avatar. | (e: Event) => void | - |
| onError | Image load failed event, returning false closes the default fallback behavior of the component | (e: Event) = > boolean | - |
| onMouseEnter | Callback to onMouseEnter event | (e: Event) => void | - |
| onMouseLeave | Callback to onMouseLeave event | (e: Event) => void | - |
### AvatarGroup
| Properties | Instructions | type | Default |
| ---------- | ----------------------------------------------------------------------------------- | ------ | -------- |
| maxCount | Display +N when the number of avatars exceeds this value | number | - |
| overlapFrom | Set the coverage direction of the avatars, one of `start`, `end` | string | `start` |
| renderMore | Customize the more tag | (restNumber: number, restAvatars: ReactNode[]) => ReactNode | - |
| shape | Shape of the avatar, one of `circle`, `square` | string | `circle` |
| size | Size of the avatar, one of `extra-extra-small`, `extra-small`, `small`, `default`, `medium`, `large`, `extra-large` | string | `medium` |
## Accessibility
- Avatars are generally not used for operations and do not need to be focused. But when the Avatar can be clicked (such as the avatar on the Semi official website), it needs to be focused and respond to the keyboard `Enter` event.
- When Avatar is used in combination with other components, also check the accessibility guidelines for that component.
- Avatar's `alt` attribute can be read by screen readers, when using the avatar component, please use the `alt` attribute to explain the content of the image.
```jsx
import React from 'react';
import { Avatar } from '@douyinfe/semi-ui';
() => {
return (
<>
{/* Good case */ }
{/* Bad case: empty content */ }
{/* Bad case: no need to include picture or image in alt */ }
>
);
};
```
## Design Tokens