Компонент Avatar для Angular | ng-hub-ui-avatar

Компонент avatar для Angular с инициалами, запасными изображениями, бейджами присутствия и CSS-переменными для переиспользуемых интерфейсов идентификации пользователя.

Справочник API

Вот полный контракт avatar: всё, что можно привязать, прослушать, спроецировать и тематизировать, собрано в одном месте. Подключите то, что нужно, и оформите так, как хотите — это standalone и дружит с сигналами.

Входные свойства

Настройте avatar с помощью 19 входных свойств. Привязывайте их, как любой @Input в Angular.

ИмяТипПо умолчаниюОписание
sizestring | number50Размер аватара в пикселях
namestringИмя пользователя для генерации инициалов, когда источники изображений недоступны
srcstring | SafeUrlURL основного пользовательского источника изображения для аватара
altstringАльтернативный текст изображения аватара для доступности
roundbooleantrueДолжен ли аватар быть круглым (true) или следовать cornerRadius
bgColorstringЦвет фона для текстовых аватаров. Генерируется автоматически, если не указан
fgColorstring#FFFЦвет текста инициалов в текстовых avatar
borderColorstringЦвет рамки вокруг аватара
cornerRadiusstring | number0Радиус скругления углов, когда round равно false
textSizeRationumber3Коэффициент для расчёта размера текста на основе размера аватара (size / textSizeRatio)
initialsSizestring | number0Ограничивает количество отображаемых инициалов (0 = без ограничения)
facebookIdstringID пользователя Facebook для изображения профиля (по возможности, могут действовать ограничения API)
githubIdstringИмя пользователя GitHub для получения изображения профиля
gravatarIdstringEmail или MD5-хеш Gravatar для получения изображения профиля
valuestringОтображение пользовательского значения в качестве аватара (например, "75%", "+5")
stylePartial<CSSStyleDeclaration>Пользовательские стили, применяемые к корневому элементу аватара
referrerpolicystringПолитика referrer для изображения аватара (например, "no-referrer")
badgestring | number | boolean | nullУгловой оверлей: `badge` / `[badge]="true"` → точка; `badge="4k"` → метка; null / отсутствует → ничего.
badgeColorHubAvatarBadgeColor | string | nullСемантический цвет бейджа (primary · secondary · success · danger · warning · info · light · dark) → `--hub-sys-color-*`.

События

Реагируйте на то, что делает avatar, — 1 событий, к которым можно подключить вашу логику.

ИмяТипОписание
clickOnAvatarSourceВызывается при клике по аватару, возвращает объект текущего активного источника

Шаблоны

Шаблоны пока не задокументированы.

CSS-переменные

Тематизируйте каждый пиксель с помощью 11 CSS-переменных. Переопределите их в :root или ограничьте их областью обёртки.

Размер и компоновка

Управление размерами и отступами avatar

ПеременнаяПо умолчаниюТипОписание
--hub-avatar-size50pxlength Размер avatar по умолчанию, когда размер не указан 24px40px64px96px
--hub-avatar-border-radius50%length Радиус скругления контейнера avatar 04px8px50%

Цвета и внешний вид

Настройка цветов и визуального вида avatar

ПеременнаяПо умолчаниюТипОписание
--hub-avatar-bg-colorvar(--hub-sys-color-primary)color Цвет фона текстовых avatar #007bff#28a745#dc3545#6f42c1
--hub-avatar-text-color#ffffffcolor Цвет текста инициалов в текстовых avatar #000000#ffffff#6c757d
--hub-avatar-border-colortransparentcolor Цвет границы вокруг avatar #dee2e6#007bff#28a745
--hub-avatar-border-width0length Ширина границы вокруг avatar 1px2px3px

Типографика

Управление видом текста инициалов avatar

ПеременнаяПо умолчаниюТипОписание
--hub-avatar-font-familyHelvetica, Arial, sans-serifstring Семейство шрифтов для инициалов avatar Inter, sans-serifRoboto, sans-serifsystem-ui
--hub-avatar-font-weightnormalstring Насыщенность шрифта для инициалов avatar 400500600bold
--hub-avatar-text-transformuppercasestring Преобразование текста для инициалов noneuppercaselowercasecapitalize

Свой контент

Размер контента, проецируемого в аватар. Фон и передний план берутся из собственных токенов аватара.

ПеременнаяПо умолчаниюТипОписание
--hub-avatar-content-paddingcalc(var(--hub-avatar-size) * 0.2)length Отступ между проецируемым контентом и краем аватара. 8px15%calc(var(--hub-avatar-size) * 0.25)
--hub-avatar-content-icon-sizecalc(var(--hub-avatar-size) * 0.55)length Размер шрифта для проецируемых иконочных шрифтов / эмодзи (наследуется глифом). 1.5remcalc(var(--hub-avatar-size) * 0.6)

Стилизация и тематизация

Примеры стилизации пока не задокументированы. В этом разделе будут рецепты кастомизации и примеры тематизации.