A Vue.js port of Boring Avatars, a JS library that generates custom, SVG-based avatars from any username and color palette.
vue-boring-avatars
is a Vue 3 port of Boring Avatars, a JS library that generates custom, SVG-based avatars from any username and color palette.
NPM:
pnpm i vue-boring-avatars
# or
yarn add vue-boring-avatars
# or
npm install vue-boring-avatars
CDN:
<!-- ESM version -->
<script type="module">
import Avatar from "https://unpkg.com/vue-boring-avatars/dist/vue-boring-avatars.js";
</script>
<!-- UMD version -->
<script src="https://unpkg.com/vue-boring-avatars/dist/vue-boring-avatars.umd.cjs"></script>
Props:
size
: number
40
square
: boolean
false
title
: boolean
false
<title>
element or not.name
: string
"Clara Barton"
<title>
element if title
is true
.variant
: string
"bauhaus", "beam", "marble", "pixel", "ring", "sunset"
."marble"
colors
: string[]
["#92A1C6", "#146A7C", "#F0AB3D", "#C271B4", "#C20D90"]
id
: string
Basic usage (with default props):
<template>
<Avatar />
</template>
<script>
import Avatar from "vue-boring-avatars";
export default {
components: {
Avatar,
},
};
</script>
Basic usage with <script setup>
(with default props):
<script setup>
import Avatar from "vue-boring-avatars";
</script>
<template>
<Avatar />
</template>
With props:
<template>
<Avatar :size="80" variant="bauhaus" name="Mujahid Anuar" :colors="colors" />
</template>
<script>
import Avatar from "vue-boring-avatars";
export default {
data() {
return {
colors: ["#92A1C6", "#146A7C", "#F0AB3D", "#C271B4", "#C20D90"],
};
},
components: {
Avatar,
},
};
</script>
With Composition API:
<template>
<input type="text" v-model="name" />
<input type="number" v-model.number="size" />
<Avatar :size="size" variant="bauhaus" :name="name" />
<Avatar
:size="size"
variant="beam"
:name="name"
:square="true"
:title="true"
/>
<Avatar :size="size" variant="marble" :name="name" />
<Avatar
:size="size"
variant="pixel"
:name="name"
:square="true"
:title="true"
/>
<Avatar :size="size" variant="ring" :name="name" />
<Avatar
:size="size"
variant="sunset"
:name="name"
:square="true"
:title="true"
/>
</template>
<script lang="ts">
import { defineComponent, ref } from "vue";
import Avatar from "vue-boring-avatars";
export default defineComponent({
name: "App",
setup() {
const name = ref("Clara Barton");
const size = ref(80);
return {
name,
size,
};
},
components: {
Avatar,
},
});
</script>
pnpm i # install packages
pnpm dev # launch in browser
pnpm test # run tests (download react-boring-avatars, lint, type check, then run tests)
pnpm build # build the dist
Credits to @hihayk (GitHub) and @josep_martins (GitHub) for creating the original Boring Avatars library at boringdesigners!