Skip to content

MazAvatar

MazAvatar is a standalone component that displays an image or an icon with a caption. It can be used to display a user's profile picture, a placeholder image, or an icon.

TIP

This component uses vLazyImg directive

Basic usage

avatar image
vue
<script lang="ts" setup>
import MazAvatar from 'maz-ui/components/MazAvatar'
</script>

<template>
  <MazAvatar src="https://api.dicebear.com/7.x/big-smile/svg?backgroundColor=1d90ff&scale=80" />
</template>

Options

TIP

See all the options props here

LM
avatar image
avatar image
avatar image
vue
<script lang="ts" setup>
import MazAvatar from 'maz-ui/components/MazAvatar'
function clicked() { console.log('clicked') }
</script>

<template>
  <MazAvatar
    caption="Louis Mazel"
    size="1.5rem"
  />
  <MazAvatar
    src="https://api.dicebear.com/7.x/big-smile/svg?backgroundColor=1d90ff&scale=80&seed=maz-ui"
    size="2rem"
    href="https://api.dicebear.com/7.x/big-smile/svg?backgroundColor=1d90ff&scale=80&seed=maz-ui"
    target="_blank"
    rounded-size="none"
    clickable
    no-size
  >
    <template #icon>
      <MazIcon name="eye" />
    </template>
  </MazAvatar>
  <MazAvatar
    src="https://api.dicebear.com/7.x/big-smile/svg?backgroundColor=1d90ff&scale=80&seed=200"
    size="2.5rem"
    clickable
    rounded-size="xl"
    @click="clicked"
  />
  <MazAvatar
    src="https://api.dicebear.com/7.x/big-smile/svg?backgroundColor=1d90ff&scale=80&seed=600"
    size="3rem"
    bordered
  />
</template>

On Error

avatar image
html
<MazAvatar @error="error" />

Fallback image loaded on error

avatar image
html
<MazAvatar
  src="https://broken-link-image-src.com"
  fallback-src="https://api.dicebear.com/7.x/big-smile/svg?backgroundColor=1d90ff&scale=80&seed=100"
/>

Loading

The props loading has 3 possible values: intersecting, lazy, or eager.

By default, the value is intersecting which means the image will be loaded when it's intersecting with the IntersectionObserver browser API. This mode uses the MazLazyImg component with vLazyImg directive to handle the lazy loading.

Native modes:

  • lazy: The image will be loaded only when it's in the viewport
  • eager: The image will be loaded immediately

These modes are native use an HTMLImageElement with the loading attribute. (see MDN). Useful for SSR (Server Side Rendering) or when you want to load the image immediately.

avatar image
avatar image
avatar image
html
<MazAvatar
  loading="intersecting"
  src="https://api.dicebear.com/7.x/big-smile/svg?backgroundColor=1d90ff&scale=80&seed=123"
/>
<MazAvatar loading="lazy" src="https://api.dicebear.com/7.x/big-smile/svg?backgroundColor=1d90ff&scale=80&seed=123" />
<MazAvatar loading="eager" src="https://api.dicebear.com/7.x/big-smile/svg?backgroundColor=1d90ff&scale=80&seed=123" />

Props

NameDescriptionTypeRequiredDefaultPossible values
styleThe style of the componentNative typeNoundefined-
classThe class of the componentNative typeNoundefined-
srcThe source of the imagestring | nullNoundefined-
captionThe caption of the avatarstring | nullNoundefined-
hrefThe link of the avatarstringNoundefined-
toThe link (router-link) of the avatarstring | RecordNoundefined-
altThe alt of the imagestringNo'avatar image'-
targetThe target of the linkstringNo'_self'-
sizeThe size of the avatarstringNoundefined-
borderedAdd a border to the avatarbooleanNoundefined-
clickableMake the avatar clickablebooleanNoundefined-
squareMake the avatar squarebooleanNoundefined-
no-elevationRemove the shadowbooleanNoundefined-
show-captionShow the captionbooleanNoundefined-
image-height-fullMake the image height fullbooleanNoundefined-
hide-loaderRemove the loaderbooleanNoundefined-
button-colorThe color of the clickable buttonMazColorNo'info'-
hide-clickable-iconRemove the icon on hover when component is clickablebooleanNoundefined-
letter-countNumber of letters to display in the round textnumberNoundefined-
rounded-sizeSize of the rounded"none" | "sm" | "md" | "lg" | "xl" | "full"No'full''none' | 'sm' | 'md' | 'lg' | 'xl' | 'full'
fallback-srcThe fallback src to replace the src on loading errorstringNoundefined-
loadingThe loading strategy of the image - lazy, eager or intersecting"lazy" | "eager" | "intersecting"No'intersecting''lazy' | 'eager' | 'intersecting'

Events

Event namePropertiesDescription
clickEmitted when the avatar is clicked
errorEmitted when the image is in error
loadedEmitted when the image is loaded
loadingEmitted when the image is loading
intersectingEmitted when the image is intersecting

Slots

NameDescriptionBindings
round-text
icon
caption