A user avatar with multiple sizes and initials fallback when image unavailable.
import { Avatar } from '@backstage/ui';
<Avatar src="https://example.com/user.jpg" name="Jane Doe" />| Prop | Type | Default | Description |
|---|---|---|---|
| src | string | - | URL of the image to display. Pass an empty string to show initials fallback. Falls back to initials if the image fails to load. |
| name | string | - | Name of the person. Used for generating initials fallback and accessibility label. |
| size | x-smallsmallmediumlargex-large | medium | Visual size. Smaller sizes show 1 initial, larger sizes show 2. |
| purpose | informativedecoration | informative | Accessibility behavior. Use decoration when name appears in adjacent text. |
| className | string | - | Additional CSS class name for custom styling. |
| style | CSSProperties | - | Inline CSS styles object. |
Avatar also accepts all standard HTML div attributes (onClick, onMouseEnter, etc.) since it extends React.ComponentPropsWithoutRef<'div'>.
Avatar sizes can be set using the size prop.
<Flex direction="column" gap="6">
<Flex>
<Avatar size="x-small" src="..." name="Charles de Dreuille" />
<Avatar size="small" src="..." name="Charles de Dreuille" />
<Avatar size="medium" src="..." name="Charles de Dreuille" />
<Avatar size="large" src="..." name="Charles de Dreuille" />
<Avatar size="x-large" src="..." name="Charles de Dreuille" />
</Flex>
<Flex>
<Avatar size="x-small" src="" name="Charles de Dreuille" />
<Avatar size="small" src="" name="Charles de Dreuille" />
<Avatar size="medium" src="" name="Charles de Dreuille" />
<Avatar size="large" src="" name="Charles de Dreuille" />
<Avatar size="x-large" src="" name="Charles de Dreuille" />
</Flex>
</Flex>If the image is not available, the avatar will show the initials of the name.
<Avatar
src="https://avatars.githubusercontent.com/u/15406AAAAAAAAA"
name="Charles de Dreuille"
/>purpose prop#Control how the avatar is announced to screen readers using the purpose prop.
Our theming system is based on a mix between CSS classes, CSS variables and data attributes. If you want to customise this component, you can use one of these class names below.
bui-AvatarRootbui-AvatarImagebui-AvatarFallbackBreaking Migrated Avatar component from Base UI to custom implementation with size changes:
x-small size added (1.25rem / 20px)small size unchanged (1.5rem / 24px)medium size unchanged (2rem / 32px, default)large size changed from 3rem to 2.5rem (40px)x-large size added (3rem / 48px) #31566Migration Guide:
# Remove Base UI-specific props
- <Avatar src="..." name="..." render={...} />
+ <Avatar src="..." name="..." />
# Update large size usage to x-large for same visual size
- <Avatar src="..." name="..." size="large" />
+ <Avatar src="..." name="..." size="x-large" />
Added purpose prop for accessibility control ('informative' or 'decoration').