Avatar
Show user's avatar, using name or image
Usage
Using image
vue
<template>
<p-avatar src="https://picsum.photos/id/50/50" />
</template>Using alias
vue
<template>
<p-avatar variant="alias" name="Tarjono Smith" />
</template>Using icon
preview
vue
<template>
<p-avatar>
<IconUser />
</p-avatar>
</template>
<script setup>
import IconUser from '@privyid/persona-icon/vue/profile/20.vue'
</script>Square round
Avatar also comes in square-round type variant. Just using square prop to enable this type variant.
preview
vue
<template>
<p-avatar square>
<IconChatGroup />
</p-avatar>
</template>Sizing
There are 5 available size variant: xs, sm, md, lg, xl. The default is md.
vue
<template>
<p-avatar src="https://picsum.photos/id/24/24" size="xs" />
<p-avatar src="https://picsum.photos/id/32/32" size="sm" />
<p-avatar src="https://picsum.photos/id/40/40" size="md" />
<p-avatar src="https://picsum.photos/id/56/56" size="lg" />
<p-avatar src="https://picsum.photos/id/96/96" size="xl" />
<p-avatar src="https://picsum.photos/id/96/96" size="xl" square />
<p-avatar src="https://picsum.photos/id/56/56" size="lg" square />
<p-avatar src="https://picsum.photos/id/40/40" size="md" square />
<p-avatar src="https://picsum.photos/id/32/32" size="sm" square />
<p-avatar src="https://picsum.photos/id/24/24" size="xs" square />
</template>Avatar Group
Avatar can be grouped using <p-avatar-group>. Group sets used to display a collection of avatars with size xsmall only.
vue
<template>
<p-avatar-group>
<p-avatar />
<p-avatar />
<p-avatar />
<p-avatar />
<p-avatar />
</p-avatar-group>
</template>Limiting items
Set maximum avatar inside avatar group using prop length, if items more than the length, it truncated automatically. default is 5
+3
vue
<template>
<p-avatar-group length="3">
<p-avatar />
<p-avatar />
<p-avatar />
<p-avatar />
<p-avatar />
</p-avatar-group>
</template>Variant
Avatar has 2 style variant: image and alias
vue
<template>
<p-avatar variant="image" src="https://picsum.photos/id/40/40" />
<p-avatar variant="alias" name="Tarjono Smith" />
</template>Auto-detect variant
If prop variant not set, it will detect the variant with some caveats:
- if
srcis provided, it will useimage - if
nameis provided, it will usealias - Otherwise, it will use
image
vue
<template>
<!-- This will use `image` -->
<p-avatar src="https://picsum.photos/id/40/40" />
<!-- This will use `alias` -->
<p-avatar name="Tarjono Smith" />
<!-- This will use `image` -->
<p-avatar />
</template>Result:
API
Props
| Props | Type | Default | Description |
|---|---|---|---|
variant | String | image | Avatar type variant, valid value: avatar, alias. default value is determined by some caveats, see this |
src | String | - | Image URL, required if using variant image |
fallbackSrc | String | - | Fallback image url for broken link |
name | String | - | Avatar name which would be generated into alias, required if using variant alias |
size | String | md | Avatar size, valid value: xs, sm, md, lg, xl |
imgClass | String | - | Additional class for image element |
Slots
| Name | Description |
|---|---|
default | Content to replace default avatar image element |
Events
| Name | Arguments | Description |
|---|---|---|
imgloaded | Image URL | Event when image loaded |
imgerror | Error | Event when image failed to load |