@mikevalstar/gridavatar

0.3.0 • Public • Published

Grid Avatar

A small (8.5kb, 2.9kb gzipped) script for generating attractive random but predictable avatars using the canvas element. Letting you have your own avatars instead of relying on applications like Gravatar which track your users.

The images generated are procedurally generated and therefor deterministic based on the seed and will always generate the same.

Demo

Demo

Demo Website

Usage

To use it yarn add @mikevalstar/gridavatar

import gridavatar from '@mikevalstar/gridavatar';

var avatar = gridavatar('seed text');
var div = document.querySelector('#avatar-spot');
div.appendChild(avatar); // place it in the DOM

For use with React:

import gridavatar from "@mikevalstar/gridavatar";

export default ({className, seed}) => {
  return <img class={className} download='gridavatar.png' src={gridavatar(seed, {height: 128, width: 128, output: 'dataURL'})} />;
};

Libraries

Although this project does not rely on any libraries in the package.json, some code was cloned from:

Options

height - height in pixels [default: 256]

width - width in pixels [default: 256]

type - Which of the avatar styles to use: circle, square, hex [default: ['circle', 'square', 'hex']]

objSize - Size of the objects in the grid: [default: width / 16 (max: 14)]

scatter - how much to scatter the shapes [default: 0]

luminosity - See randomColor - random, bright, light or dark [default: ['bright', 'light', 'dark']]

text - The text to display (centered on image) [default: false]

textSize - Font Size [default: 64]

output = Format you would like the output: image, dataURL, canvas [default: image]

Examples

// returns a 128x128 Image element with a square tile background and the text "MV" overlaying it
gridavatar('mike@valstar.dev', {
  height: 128,
  width: 128,
  luminosity: ['light'],
  type: ['square'],
  text: 'MV'
})

// returns a 32x32 Image element with a background pattern and no text. 
// this will be very similar to the previous one due to having the same seed. but not exactly the same.
gridavatar('mike@valstar.dev', {
  height: 32,
  width: 32,
  text: false
})

Package Sidebar

Install

npm i @mikevalstar/gridavatar

Weekly Downloads

1

Version

0.3.0

License

MIT

Unpacked Size

75.4 kB

Total Files

7

Last publish

Collaborators

  • mikevalstar