Компонент Avatar в библиотеке Ant Design предназначен для отображения небольших графических иконок, изображений или текста, часто используемых для представления пользователей, компаний или объектов в интерфейсе. Он обеспечивает единообразный стиль и легко интегрируется с другими компонентами библиотеки.
src – строка с URL изображения. Если
указано, отображается картинка вместо текста.icon – иконка из набора Ant Design
(<UserOutlined />,
<MailOutlined /> и др.). Используется, когда нет
изображения.size – размер аватара. Может быть
числом (например, 40) или строкой:
'small' | 'default' | 'large'.shape – форма аватара:
'circle' (по умолчанию) или 'square'.alt – альтернативный текст для
изображения, полезен для SEO и доступности.style – объект стилей CSS, позволяющий
кастомизировать внешний вид (фон, цвет текста, границы).className – пользовательский CSS-класс
для дополнительной стилизации.Пример базового использования:
import { Avatar } from 'antd';
import { UserOutlined } from '@ant-design/icons';
<Avatar size="large" icon={<UserOutlined />} />
<Avatar src="https://example.com/avatar.png" />
<Avatar style={{ backgroundColor: '#f56a00' }}>U</Avatar>
Если аватар отображает текст, библиотека автоматически центрирует символы и масштабирует их по размеру аватара.
<Avatar>AB</Avatar>
<Avatar style={{ backgroundColor: '#7265e6' }}>CD</Avatar>
Форма аватара может быть круглой или квадратной. Квадратные аватары часто используют для иконок или логотипов.
<Avatar shape="square" size={64} icon={<UserOutlined />} />
<Avatar shape="circle" size="small" src="https://example.com/avatar.png" />
Размеры:
small — 24pxdefault — 32pxlarge — 40pxИспользование иконок особенно удобно для пустых пользователей или
системных аккаунтов. Для этого подключается компонент Icon
из @ant-design/icons.
import { MailOutlined } from '@ant-design/icons';
<Avatar icon={<MailOutlined />} />
<Avatar style={{ backgroundColor: '#87d068' }} icon={<UserOutlined />} />
Ant Design поддерживает Avatar.Group, позволяющий компактно отображать несколько аватаров рядом. Группировка полезна для чатов, списков участников и команд.
import { Avatar } from 'antd';
<Avatar.Group maxCount={3} size="large">
<Avatar src="https://example.com/avatar1.png" />
<Avatar src="https://example.com/avatar2.png" />
<Avatar src="https://example.com/avatar3.png" />
<Avatar>U</Avatar>
</Avatar.Group>
maxCount – количество аватаров,
отображаемых явно. Остальные скрываются за индикатором
+N.maxStyle – стиль для индикатора
скрытых аватаров.Аватар можно стилизовать с помощью свойства style. Чаще
всего меняют фон и цвет текста, чтобы
аватар соответствовал цветовой гамме интерфейса.
<Avatar style={{ backgroundColor: '#f56a00', color: '#fff' }}>U</Avatar>
<Avatar style={{ backgroundColor: '#7265e6', color: '#fff' }}>JD</Avatar>
Для отображения уведомлений или статуса пользователя аватар можно комбинировать с компонентом Badge. Это позволяет добавлять индикаторы онлайн/офлайн или количество непрочитанных сообщений.
import { Avatar, Badge } from 'antd';
<Badge count={5}>
<Avatar src="https://example.com/avatar.png" />
</Badge>
<Badge dot>
<Avatar icon={<UserOutlined />} />
</Badge>
При использовании темной темы Ant Design стоит обратить внимание на
контрастность цвета текста и фона аватара, чтобы
символы оставались читаемыми. Используются стандартные цвета библиотеки
или кастомные через style.
<Avatar style={{ backgroundColor: '#001529', color: '#fff' }}>AB</Avatar>
Когда в аватар передан текст, библиотека автоматически подбирает
размер шрифта под размер аватара. Для точной настройки можно
использовать свойство style с fontSize, но это
редко требуется, так как встроенное масштабирование работает корректно в
большинстве случаев.
<Avatar size={64} style={{ fontSize: 28 }}>JD</Avatar>
UserOutlined.maxCount.src с URL, а для
статических – иконки или текст.Компонент Avatar обеспечивает гибкость отображения пользователя или объекта в интерфейсе, поддерживает различные размеры, формы, текстовые сокращения, группировку и интеграцию с другими компонентами, что делает его универсальным инструментом для создания современных UI на базе Ant Design.