Icons and initials
Image, video and content

Fallback to initials or icon


<p><b>Icons and initials</b></p>
<div tuiCell>
<div tuiAvatar="@tui.user"></div>
<div tuiAvatar="@img.mastercard"></div>
<div tuiAvatar="assets/icons/nx.svg"></div>
<div tuiAvatar="UI"></div>
</div>
<p><b>Image, video and content</b></p>
<div tuiCell>
<div tuiAvatar>
<picture>
<source
media="(min-width: 600px)"
srcset="assets/images/wisely.png"
/>
<img
alt="Alex Inkin"
src="assets/images/avatar.jpg"
/>
</picture>
</div>
<div tuiAvatar>
<video
autoplay
loop
playsinline
[muted]="true"
>
<source
src="assets/media/bbb.mp4"
type="video/mp4"
/>
</video>
</div>
<div tuiAvatar>99+</div>
</div>
<p><b>Fallback to initials or icon</b></p>
<div tuiCell>
<div tuiAvatar="AI">
<img
alt="Alex Inkin"
src="https://broken.jpg"
/>
</div>
<div tuiAvatar="@tui.user">
<img
alt="Alex Inkin"
src="https://broken.jpg"
/>
</div>
</div>
<div
appearance="negative"
tuiAvatar="@tui.user"
></div>
<div
tuiAvatar="AI"
class="text"
[style.background]="'AI' | tuiAutoColor"
></div>
<div
tuiAvatar
class="text"
>
<div tuiFade>Fading</div>
</div>
<div
appearance="negative"
badge="var(--tui-text-positive)"
tuiAvatar="@tui.user"
>
<img
alt=""
src="assets/images/avatar.jpg"
/>
</div>
:host {
display: flex;
gap: 1rem;
}
.text {
background: var(--tui-background-accent-opposite-pressed);
color: var(--tui-background-base);
}
@for (size of sizes; track size) {
<section>
<div
tuiAvatar
[size]="size"
>
{{ size | uppercase }}
</div>
<div
tuiAvatar="@tui.user"
[size]="size"
></div>
</section>
}
:host {
display: flex;
flex-direction: column;
gap: 1rem;
}
section {
display: flex;
gap: 0.5rem;
}
@for (size of sizes; track size; let odd = $odd) {
<tui-avatar-stack
class="tui-space_vertical-4"
[direction]="odd ? 'start' : 'end'"
>
@for (name of names; track name) {
<div
[round]="odd"
[size]="size"
[style.background]="name | tuiAutoColor"
[tuiAvatar]="name | tuiInitials"
></div>
}
<div
tuiAvatar
[round]="odd"
[size]="size"
>
99+
</div>
</tui-avatar-stack>
}
<div tuiAvatar="DI"></div>
<tui-avatar-labeled label="Grigori Constantinopolsky">
<div tuiAvatar>
<img
alt=""
src="https://avatars.githubusercontent.com/u/10106368"
/>
</div>
</tui-avatar-labeled>
<tui-avatar-labeled label="Nikolai Rimsky-Korsakov">
<div tuiAvatar>
<img
alt=""
src="https://avatars.githubusercontent.com/u/11832552"
/>
</div>
</tui-avatar-labeled>
<tui-avatar-labeled label="Hubert Wolfflegelstainhausenbergedorf">
<div tuiAvatar>
<img
alt=""
src="https://avatars.githubusercontent.com/u/46284632"
/>
</div>
</tui-avatar-labeled>
<tui-avatar-labeled label="Arkhangelsky Constantine">
<div tuiAvatar>
<img
alt=""
src="https://avatars.githubusercontent.com/u/35179038"
/>
</div>
</tui-avatar-labeled>
<tui-avatar-labeled label="Zoya Kosmodemyanskaya">
<div tuiAvatar>
<img
alt=""
src="https://avatars.githubusercontent.com/u/8158578"
/>
</div>
</tui-avatar-labeled>
:host {
display: flex;
gap: 1rem;
}
[tuiAvatar] {
border: 1px solid var(--tui-border-normal);
}
<div
size="m"
tuiAvatar="@tui.heart"
tuiAvatarOutline
></div>
<div
size="l"
tuiAvatar
tuiAvatarOutline="var(--tui-background-accent-2)"
>
<img
alt="Alex Inkin"
src="assets/images/avatar.jpg"
/>
</div>
<div
size="xl"
tuiAvatar="OK"
tuiAvatarOutline="linear-gradient(#c86dd7, #3023ae)"
[style.background]="'linear-gradient(#3023ae, #c86dd7)'"
[style.color]="'#fff'"
></div>
:host {
display: flex;
gap: 1rem;
}