Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Generate unique avatars of off your own image files!


  • Item
    • new Item(path, opts)
      • path is the path to the image
      • opts
        • x: Number - x-coord to place the image
        • y: Number - y-coord to place the image
        • check: Boolean - check if the image can be found - required to replace-colors
        • replace: Array of Object's - filled with colors to replace from and to
          • from: String - color to replace from, in the format of r,g,b - e.g. 128,128,128
          • to: String - color to replace to, in the format of r,g,b - e.g. 128,128,128
  • Layer
    • new Layer(name, idx)
      • name: String - a friendly name to recognise
      • idx: Number - the z-index of the layer
  • Generator
    • new Generator(width, height, parentElm)
      • width: Number - width of the avatar
      • height: Number - height of the avatar
      • parentElm: Element - element to place avatar within



First install my-avatars by running npm i my-avatars


Now you'll need to import { Generator, Layer, Item } from my-avatars in your js-file.


To build the generator, you'll have to have some images at hand. These should be made into Item's, by new Item('./images/face.png').

Next, we'll need a Layer: new Layer('faces', 0), this layer should have a name - for your own convenience - and an id, which can correspond to the z-index in css.

NB: No two layers can't have the same index.

Next-up, we'll need to pass in all of the Item's, like so: faceLayer.addItem(item).


Now for the magical part, the Generator. Start by creating a new Generator, by new Generator(400, 400, app). Whereas the first 400 is the width of the avatar, next is the height and last argument is the parent element of, to which the avatar-canvas should be injected.

If all of this doesn't make sense. Check out the example


Check main.js, to run the example use npm run dev. Or read this article