Skip to content

Avatar

Display a user portrait, initials, or icon.

Basic Usage

vue
<template>
  <bp-space>
    <bp-avatar v-for="size in sizeList" :size>
      <IconUser3Line />
    </bp-avatar>
  </bp-space>
</template>

<script setup lang="ts">
import { IconUser3Line } from "birdpaper-icon";

const sizeList = ["mini", "small", "default", "large"];
</script>

Text Avatar

Show initials or short text when no image is available.

A
B
C
D
vue
<template>
  <bp-space>
    <bp-avatar size="mini" shape="circle">A</bp-avatar>
    <bp-avatar size="small" shape="circle">B</bp-avatar>
    <bp-avatar shape="circle">C</bp-avatar>
    <bp-avatar size="large" shape="circle">D</bp-avatar>
  </bp-space>
</template>

Shape

shape supports circle and square.

Circle
Square
vue
<template>
  <bp-space>
    <bp-avatar shape="circle">Circle</bp-avatar>
    <bp-avatar shape="square">Square</bp-avatar>
  </bp-space>
</template>

Image Avatar

Load an image with image-url and optional object-fit.

vue
<template>
  <bp-space>
    <bp-avatar image-url="https://picsum.photos/200" size="mini" />
    <bp-avatar image-url="https://picsum.photos/200" size="small" />
    <bp-avatar image-url="https://picsum.photos/200" />
    <bp-avatar image-url="https://picsum.photos/200" size="large" />
  </bp-space>
</template>

Custom Size

Set a custom size value.

40
60
80
vue
<template>
  <bp-space>
    <bp-avatar :size="40">40</bp-avatar>
    <bp-avatar :size="60">60</bp-avatar>
    <bp-avatar :size="80">80</bp-avatar>
  </bp-space>
</template>

Avatar Props

shapeAvatar shape
String
circle-
image-urlImage URL
String
--
object-fitImage fit mode
String
cover-
sizeAvatar size
StringNumber
default-

Avatar Slots

defaultText or icon content--
loadingContent while image is loading--
errorContent when image fails to load--