import {Avatar} from '@gravity-ui/uikit';
Данный компонент предназначен для рендеринга аватаров. Он поддерживает три основных типа аватаров: изображение, иконку и текст (инициалы). Все эти типы имеют специальные свойства для настройки их поведения и внешнего вида.
§Типы
§Изображение
Компонент Avatar можно применять для рендеринга аватаров с использованием изображений. Для добавления изображения используйте свойство imgUrl.
<Avatar imgUrl="https://loremflickr.com/640/480/cats?lock=8610182282084352" size="l" />Дополнительно можно передать свойство srcSet, которое позволяет загружать изображения разных размеров.
<Avatar imgUrl="https://loremflickr.com/640/480/cats?lock=8610182282084352" srcSet="https://loremflickr.com/57/43/cats?lock=2879400393572352 1x, https://loremflickr.com/131/98/cats?lock=4373954936438784 2x, https://loremflickr.com/164/123/cats?lock=3007328513163264 3x, https://loremflickr.com/225/169/cats?lock=8243879964835840 4x" size="l" />У компонента Avatar есть свойство fallbackImgUrl, которое позволяет передать изображение, которое будет показано при ошибке загрузки изображения по ссылке imgUrl (ошибка CSP или отсутствие исходного изображения).
<Avatar imgUrl="random_link" fallbackImgUrl="https://loremflickr.com/640/480/cats?lock=3552647338524672" size="l" />§Иконка
Этот компонент можно применять для рендеринга аватаров с использованием иконок. Чтобы задать иконку, используйте свойство icon точно так же, как для компонента Icon.
import {GraduationCap} from '@gravity-ui/icons';
<Avatar icon={GraduationCap} size="l" />§Текст
Этот компонент можно применять для рендеринга аватаров с использованием текста. Для этого используйте свойство text. Текст отображается в виде инициалов (первых букв двух слов) или первых двух букв одного слова.
<Avatar text="Charles Darwin" size="l" />
<Avatar text="Guardian" size="l" />§Внешний вид
§Тема и вид
Компонент Avatar имеет предустановленные темы (normal и brand) и виды (filled и outlined).
По умолчанию тема — normal, а вид — filled.
import {GraduationCap} from '@gravity-ui/icons';
<Avatar icon={GraduationCap} size="l" theme="normal" view="filled" />
<Avatar icon={GraduationCap} size="l" theme="brand" view="filled" />
<Avatar icon={GraduationCap} size="l" theme="normal" view="outlined" />
<Avatar icon={GraduationCap} size="l" theme="brand" view="outlined" />§Пользовательские цвета
Можно также задать собственные цвета через свойства backgroundColor, borderColor и color (последнее работает только для аватарок с иконками и текстом). Эти цвета обладают бóльшим приоритетом по сравнению с цветами, которые заданы в темах.
<Avatar text="Charles Darwin" size="l" backgroundColor="var(--g-color-base-danger-medium)" color="var(--g-color-text-primary)" />
<Avatar text="Charles Darwin" size="l" borderColor="var(--g-color-line-misc)" />§Размер
Размер Avatar можно настроить с помощью свойства size. Размер по умолчанию — m. Возможные значения: xs, s, m, l и xl.
<Avatar text="Charles Darwin" theme="brand" size="xs" />
<Avatar text="Charles Darwin" theme="brand" size="s" />
<Avatar text="Charles Darwin" theme="brand" size="m" />
<Avatar text="Charles Darwin" theme="brand" size="l" />
<Avatar text="Charles Darwin" theme="brand" size="xl" />§Форма
Форму Avatar можно настроить с помощью свойства shape. Форма по умолчанию — circle. Возможные значения: circle и square.
<Avatar text="Charles Darwin" theme="brand" shape="circle" />
<Avatar text="Charles Darwin" theme="brand" shape="square" />§Свойства
§Общие
| Имя | Описание | Тип | Значение по умолчанию |
|---|---|---|---|
| size | Размер аватара. | 'xs' 's' 'm' 'l' 'xl' | m |
| theme | Тема аватара. | 'normal' 'brand' | normal |
| view | Варианты заполнения и обводки аватара. | 'filled' 'outlined' | filled |
| shape | Форма аватара. | 'circle' 'square' | circle |
| backgroundColor | Пользовательский цвет фона. | string | |
| borderColor | Пользовательский цвет границы. | string | |
| title | HTML-атрибут title. | string | |
| aria-label | Атрибут aria-label для секции аватара. | string | |
| aria-labelledby | Атрибут aria-labelledby для секции аватара. | string | |
| className | Пользовательский CSS-класс корневого элемента. | string | |
| style | HTML-атрибут style. | React.CSSProperties | |
| qa | HTML-атрибут data-qa, используется для тестирования. | string |
§Свойства изображений
| Имя | Описание | Тип | Значение по умолчанию |
|---|---|---|---|
| imgUrl | HTML-атрибут src для img. | string | |
| fallbackImgUrl | Резервное изображение, отображаемое в случае ошибки. | string | |
| sizes | HTML-атрибут sizes для img. | string | |
| srcSet | HTML-атрибут srcSet для img. | string | |
| alt | HTML-атрибут alt для img. | string | props.title |
| loading | HTML-атрибут loading для img. | 'eager' 'lazy' | |
| withImageBorder | Добавляет обводку по умолчанию для изображения | boolean |
§Свойства иконки
| Имя | Описание | Тип | Значение по умолчанию |
|---|---|---|---|
| icon | Источник SVG-иконки. | IconData | |
| color | Пользовательский цвет иконки. | string |
§Свойства текста
| Имя | Описание | Тип | Значение по умолчанию |
|---|---|---|---|
| text | Текст, отображаемый на аватаре. | string | |
| color | Пользовательский цвет текста. | string |
§API CSS
| Имя | Описание |
|---|---|
--g-avatar-size | Размер (ширина и высота). |
--g-avatar-background-color | Цвет фона. |
--g-avatar-border-color | Цвет границы. |
--g-avatar-color | Цвет иконки и текста. |
--g-avatar-font-size | Размер шрифта текста. |
--g-avatar-line-height | Высота строки текста. |