Avatar
A circular image with a fallback for when the image fails to load or no source is provided.
Usage
<span class="zui-avatar">
<span class="zui-avatar-fallback"><i class="ph ph-user" aria-hidden="true"></i></span>
<img
class="zui-avatar-image"
src="/avatar.webp"
alt="User"
onerror="this.setAttribute('data-error', '')"
/>
</span>import { Avatar } from '@mrmartineau/zui/react'
<Avatar src="/avatar.webp" alt="User" />---
import { Avatar } from '@mrmartineau/zui/astro'
---
<Avatar src="/avatar.webp" alt="User" />import { Avatar } from '@mrmartineau/zui/solid'
<Avatar src="/avatar.webp" alt="User" /><script lang="ts">
import { Avatar } from '@mrmartineau/zui/svelte'
</script>
<Avatar src="/avatar.webp" alt="User" /><template>
<Avatar src="/avatar.webp" alt="User" />
</template>
<script setup>
import { Avatar } from '@mrmartineau/zui/vue'
</script>Fallback
When no src is provided or the image fails to load, the fallback content is shown. If no fallback is specified, a default user icon is displayed.
Default icon fallback
<span class="zui-avatar">
<span class="zui-avatar-fallback"><i class="ph ph-user" aria-hidden="true"></i></span>
</span>import { Avatar } from '@mrmartineau/zui/react'
<Avatar />---
import { Avatar } from '@mrmartineau/zui/astro'
---
<Avatar />import { Avatar } from '@mrmartineau/zui/solid'
<Avatar /><script lang="ts">
import { Avatar } from '@mrmartineau/zui/svelte'
</script>
<Avatar /><template>
<Avatar />
</template>
<script setup>
import { Avatar } from '@mrmartineau/zui/vue'
</script>Initials fallback
AB
<span class="zui-avatar">
<span class="zui-avatar-fallback">AB</span>
</span>import { Avatar } from '@mrmartineau/zui/react'
<Avatar fallback="AB" />---
import { Avatar } from '@mrmartineau/zui/astro'
---
<Avatar fallback="AB" />import { Avatar } from '@mrmartineau/zui/solid'
<Avatar fallback="AB" /><script lang="ts">
import { Avatar } from '@mrmartineau/zui/svelte'
</script>
<Avatar fallback="AB" /><template>
<Avatar fallback="AB" />
</template>
<script setup>
import { Avatar } from '@mrmartineau/zui/vue'
</script>Sizes
ABABAB
<span class="zui-avatar zui-avatar-size-sm">
<span class="zui-avatar-fallback">AB</span>
</span>
<span class="zui-avatar">
<span class="zui-avatar-fallback">AB</span>
</span>
<span class="zui-avatar zui-avatar-size-lg">
<span class="zui-avatar-fallback">AB</span>
</span>import { Avatar } from '@mrmartineau/zui/react'
<Avatar size="sm" fallback="AB" />
<Avatar fallback="AB" />
<Avatar size="lg" fallback="AB" />---
import { Avatar } from '@mrmartineau/zui/astro'
---
<Avatar size="sm" fallback="AB" />
<Avatar fallback="AB" />
<Avatar size="lg" fallback="AB" />import { Avatar } from '@mrmartineau/zui/solid'
<Avatar size="sm" fallback="AB" />
<Avatar fallback="AB" />
<Avatar size="lg" fallback="AB" /><script lang="ts">
import { Avatar } from '@mrmartineau/zui/svelte'
</script>
<Avatar size="sm" fallback="AB" />
<Avatar fallback="AB" />
<Avatar size="lg" fallback="AB" /><template>
<Avatar size="sm" fallback="AB" />
<Avatar fallback="AB" />
<Avatar size="lg" fallback="AB" />
</template>
<script setup>
import { Avatar } from '@mrmartineau/zui/vue'
</script>Shapes
ABABABAB
<span class="zui-avatar">
<span class="zui-avatar-fallback">AB</span>
</span>
<span class="zui-avatar zui-avatar-shape-hard">
<span class="zui-avatar-fallback">AB</span>
</span>
<span class="zui-avatar zui-avatar-shape-soft">
<span class="zui-avatar-fallback">AB</span>
</span>
<span class="zui-avatar zui-avatar-shape-squircle">
<span class="zui-avatar-fallback">AB</span>
</span>import { Avatar } from '@mrmartineau/zui/react'
<Avatar fallback="AB" />
<Avatar shape="hard" fallback="AB" />
<Avatar shape="soft" fallback="AB" />
<Avatar shape="squircle" fallback="AB" />---
import { Avatar } from '@mrmartineau/zui/astro'
---
<Avatar fallback="AB" />
<Avatar shape="hard" fallback="AB" />
<Avatar shape="soft" fallback="AB" />
<Avatar shape="squircle" fallback="AB" />import { Avatar } from '@mrmartineau/zui/solid'
<Avatar fallback="AB" />
<Avatar shape="hard" fallback="AB" />
<Avatar shape="soft" fallback="AB" />
<Avatar shape="squircle" fallback="AB" /><script lang="ts">
import { Avatar } from '@mrmartineau/zui/svelte'
</script>
<Avatar fallback="AB" />
<Avatar shape="hard" fallback="AB" />
<Avatar shape="soft" fallback="AB" />
<Avatar shape="squircle" fallback="AB" /><template>
<Avatar fallback="AB" />
<Avatar shape="hard" fallback="AB" />
<Avatar shape="soft" fallback="AB" />
<Avatar shape="squircle" fallback="AB" />
</template>
<script setup>
import { Avatar } from '@mrmartineau/zui/vue'
</script>CSS custom properties
| Property | Default | Description |
|---|---|---|
--zui-avatar-size |
2.5rem |
Width and height of the avatar |
--zui-avatar-radius |
var(--radius-full) |
Border radius |
--zui-avatar-font-size |
90% |
Font size of the fallback text |