Перейти до вмісту
tatetUI

Avatar

Аватар із ініціалами, градієнтом бренду й падінням на ініціали, якщо картинка не завантажилась.

Замість чотирьох окремих реалізацій під ролі (USER/ASSISTANT/SYSTEM) — один компонент: картинка → ініціали → порожнє коло. Рольові іконки — це слот default споживача, а не зашитий Font Awesome.

Приклад

API

Props

НазваТипТиповоОпис
namestringundefinedІм'я людини: джерело ініціалів і доступна назва.
sizenumber32Розмір у пікселях.
toneneutralprimaryauto"primary"Палітра заливки, коли картинки немає. `auto` — один із восьми кольорів за `seed` (або за іменем): так учасників групи видно одразу.
srcstringundefinedURL зображення. Помилка завантаження мовчки падає на ініціали.
seedstringundefinedСтабільний ідентифікатор для `tone="auto"`; за замовчуванням — `name`.
shapecirclesquare"circle"Форма. `square` — для компаній, команд і логотипів: коло підказує «людина», і логотип у колі ще й втрачає кути.
statusonlineofflinebusyawayundefinedІндикатор присутності у правому нижньому куті. Колір дублюється словом у доступній назві: «Марія, онлайн». Кільце навколо крапки — колір картки; на іншому тлі (активний рядок списку, hover) задайте батькові змінну `--avatar-ring`.

Слоти

НазваОпис
defaultВласний вміст замість картинки й ініціалів (іконка, логотип).

Коли використовувати

Будь-яке представлення людини чи акаунта: список користувачів, шапка коментаря, вибір виконавця.

Компанія, команда чи сервіс — shape="square": коло підказує «людина», а логотип у колі ще й втрачає кути.

Коли НЕ використовувати

Для логотипів компаній із складною геометрією краще слот default з власним SVG, ніж спроби вмістити логотип в ініціали.

Ініціали

Беруться перші БУКВИ чи цифри двох перших слів, а не перші символи: назви компаній починаються з лапок і дужок, і «ТОВ «Сігма Трейд»» давало «Т«». Слово без жодної букви («—», «&») пропускається.

Кегль — частка діаметра (40% для однієї літери, 36% для пари: «МШ» чи «ЖД» при 40% впиралися в краї кола), а не сходинки text-xs/text-sm: сходинки впиралися в 13px на будь-якому розмірі, а плитка «+N» в UiAvatarGroup росла пропорційно, і на 64px «+3» був удвічі більшим за ініціали поруч. Тепер формула одна на обох.

Заливка — градієнт primary-600 → primary-700: на попередньому 400 → 600 білі ініціали мали 2.5:1 у світлому куті, нижче 4.5:1 для тексту такого кегля.

Кольорова палітра

tone="auto" фарбує аватар одним із восьми кольорів (синій, фіолетовий, рожевий, теракотовий, зелений, смарагдовий, бірюзовий, червоний), які обираються за seed — або за name, якщо seed не заданий. Так у списку чатів і в групі відправників видно одразу, не читаючи імен. Передавайте стабільний ідентифікатор (id), а не ім'я: інакше перейменування змінює колір людини. Кожен колір — градієнт зі змінних --avatar-N-from/to (assets/css/tokens.css), однаковий у світлій і темній темах, з білим текстом не нижче 4.5:1 у найсвітлішій точці. Без tone="auto" аватар лишається синім, як раніше.

Кільце індикатора

Крапка статусу обведена кільцем кольору картки — так вона «вирізана» з аватара. Коли аватар стоїть на іншому тлі (активний рядок списку, hover), задайте предку CSS-змінну --avatar-ring — кільце підхопить її і не світитиметься плямою: class="hover:[--avatar-ring:var(--bg-hover)]".

Доступність

Контейнер має role="img" і aria-label з імені; картка всередині — з порожнім alt, щоб скрінрідер не читав «av2871.jpg» двічі. Битий URL ніколи не лишає «скелець» — компонент сам перемикається на ініціали.