Компонент Avatar предназначен для отображения визуального представления пользователя, объекта или сущности системы. В пользовательских интерфейсах аватары применяются для показа фотографий пользователей, иконок профилей, инициалов или символических изображений.
В библиотеке Element Plus компонент
ElAvatar предоставляет гибкий и удобный инструмент для
реализации подобных элементов интерфейса. Он поддерживает различные
формы, размеры, типы источников изображения и дополнительные возможности
кастомизации.
Основные области применения:
Компонент ElAvatar может отображать изображение, иконку
или текст. Наиболее распространённый вариант — использование изображения
пользователя.
<template>
<el-avatar src="https://example.com/avatar.jpg"></el-avatar>
</template>
Если указанный источник изображения доступен, компонент отображает его внутри круглой рамки.
Если изображение не требуется, аватар может содержать текст. Чаще всего используются инициалы пользователя.
<template>
<el-avatar>JS</el-avatar>
</template>
Текст автоматически центрируется внутри компонента.
Компонент поддерживает отображение иконок из библиотеки Element Plus Icons.
<template>
<el-avatar :icon="UserFilled"></el-avatar>
</template>
<script setup>
import { UserFilled } from '@element-plus/icons-vue'
</script>
Такой вариант часто применяется в случаях, когда пользователь не загрузил фотографию профиля.
ElAvatar поддерживает несколько стандартных
размеров.
Доступные варианты:
largedefaultsmall<template>
<el-avatar size="large"></el-avatar>
<el-avatar size="default"></el-avatar>
<el-avatar size="small"></el-avatar>
</template>
Также допускается использование числового значения для задания размера в пикселях.
<template>
<el-avatar :size="80"></el-avatar>
</template>
В этом случае ширина и высота компонента устанавливаются равными указанному значению.
Компонент поддерживает две формы:
circle)square)Используется по умолчанию.
<template>
<el-avatar src="avatar.jpg"></el-avatar>
</template>
<template>
<el-avatar shape="square" src="avatar.jpg"></el-avatar>
</template>
Квадратные аватары часто применяются в административных панелях или системах управления.
Если аватар содержит текст или иконку, можно изменить цвет фона.
<template>
<el-avatar style="background-color: #409EFF">
A
</el-avatar>
</template>
Это позволяет визуально различать пользователей или категории.
Если изображение по указанному src не может быть
загружено, можно использовать обработчик события error.
<template>
<el-avatar
src="broken-link.jpg"
@error="handleError"
>
U
</el-avatar>
</template>
<script setup>
const handleError = () => {
return true
}
</script>
Возврат true позволяет использовать содержимое слота как
резервный вариант отображения.
Слот позволяет полностью контролировать содержимое аватара.
<template>
<el-avatar>
<img src="avatar.jpg" />
</el-avatar>
</template>
Такой подход используется при необходимости дополнительной логики или кастомизации.
Если текст слишком длинный, ElAvatar автоматически
уменьшает размер шрифта, чтобы содержимое поместилось внутри
контейнера.
<template>
<el-avatar>USERNAME</el-avatar>
</template>
Это особенно полезно при отображении длинных инициалов или идентификаторов.
В интерфейсах часто требуется отображать несколько аватаров рядом.
Для этого используется компонент ElAvatarGroup.
<template>
<el-avatar-group>
<el-avatar src="avatar1.jpg"></el-avatar>
<el-avatar src="avatar2.jpg"></el-avatar>
<el-avatar src="avatar3.jpg"></el-avatar>
</el-avatar-group>
</template>
Компонент автоматически выстраивает аватары горизонтально.
ElAvatarGroup поддерживает параметр max,
который ограничивает количество отображаемых элементов.
<template>
<el-avatar-group :max="3">
<el-avatar src="a1.jpg"></el-avatar>
<el-avatar src="a2.jpg"></el-avatar>
<el-avatar src="a3.jpg"></el-avatar>
<el-avatar src="a4.jpg"></el-avatar>
<el-avatar src="a5.jpg"></el-avatar>
</el-avatar-group>
</template>
Если количество аватаров превышает значение max,
последний элемент заменяется индикатором количества оставшихся.
Пример отображения:
[Avatar][Avatar][Avatar][+2]
Компонент ElAvatarGroup поддерживает настройку
перекрытия элементов.
<template>
<el-avatar-group :size="50">
<el-avatar src="a1.jpg"></el-avatar>
<el-avatar src="a2.jpg"></el-avatar>
<el-avatar src="a3.jpg"></el-avatar>
</el-avatar-group>
</template>
Перекрытие делает интерфейс компактным и визуально похожим на элементы социальных сетей.
Аватары часто отображаются на основе данных из массива пользователей.
<template>
<el-avatar-group>
<el-avatar
v-for="user in users"
:key="user.id"
:src="user.avatar"
/>
</el-avatar-group>
</template>
<script setup>
const users = [
{ id: 1, avatar: 'a1.jpg' },
{ id: 2, avatar: 'a2.jpg' },
{ id: 3, avatar: 'a3.jpg' }
]
</script>
Такой подход применяется в списках участников, чатах и панелях команд.
Внешний вид аватара может быть дополнительно изменён с помощью CSS.
.custom-avatar {
border: 2px solid #409EFF;
box-shadow: 0 2px 10px rgba(0,0,0,0.15);
}
<template>
<el-avatar
class="custom-avatar"
src="avatar.jpg"
/>
</template>
Подобная стилизация используется для выделения активных пользователей или важных участников.
Аватар часто применяется в карточках профилей.
<template>
<div class="user-card">
<el-avatar :size="80" src="avatar.jpg" />
<div class="info">
<h3>John Smith</h3>
<p>Frontend Developer</p>
</div>
</div>
</template>
Пример CSS:
.user-card {
display: flex;
align-items: center;
gap: 16px;
}
Такая структура широко применяется в административных панелях и CRM-системах.
Компонент удобен для интерфейсов обсуждений.
<template>
<div class="comment">
<el-avatar src="avatar.jpg" />
<div class="content">
<strong>Alex</strong>
<p>Отличная статья!</p>
</div>
</div>
</template>
CSS:
.comment {
display: flex;
gap: 12px;
}
| Свойство | Тип | Описание |
|---|---|---|
src |
string | URL изображения |
size |
string / number | Размер аватара |
shape |
string | Форма (circle, square) |
icon |
component | Иконка для отображения |
src-set |
string | Альтернативные источники изображения |
alt |
string | Альтернативный текст изображения |
fit |
string | Поведение изображения |
| Событие | Описание |
|---|---|
error |
вызывается при ошибке загрузки изображения |
Использование fallback-контента
Если изображение отсутствует, желательно показывать инициалы пользователя или иконку. Это предотвращает появление пустых элементов интерфейса.
Единый размер
В списках пользователей необходимо использовать одинаковый размер аватаров. Это улучшает визуальную структуру интерфейса.
Контраст текста
При использовании текстовых аватаров цвет текста должен контрастировать с фоном.
Использование групп
Группы аватаров хорошо подходят для отображения команд, участников проекта или онлайн-пользователей.
Оптимизация изображений
Фотографии профилей рекомендуется хранить в небольшом размере (например 128×128 px), чтобы избежать лишней загрузки данных.
Компонент ElAvatar является важным элементом визуальной
идентификации пользователей в интерфейсах. Благодаря поддержке
изображений, текста, иконок, группировки и гибкой стилизации он легко
интегрируется в различные типы пользовательских интерфейсов:
административные панели, социальные платформы, системы управления
проектами и корпоративные приложения.