Git Product home page Git Product logo

hashicon's Introduction

Hashicon

GitHub tag npm License

Generates a beautiful representation of any hash.

Sample hashicon image

Usage

Install with:

$ npm install @emeraldpay/hashicon --save

Something that you want to represent visually. For example ID of an object on the screen.

const hash = "9dddff8f-be81-4c27-80c8-099327865f3f";

Create a hashicon with default params:

import { hashicon } from 'hashicon';

const icon = hashicon(hash); // icon is a <canvas> element
const icon = hashicon(hash, 80);  // size 80px

Or, pass custom params:

const params = {...};
const icon = hashicon(hash, params);

Finally, append the newly created hashicon to the HTML document:

document.body.appendChild(icon);

React

Install with:

$ npm install @emeraldpay/hashicon-react --save

And use the component:

import { Hashicon } from 'hashicon-react';

// something that you want to represent visually. For example ID of an object on the screen.
const value = "9dddff8f-be81-4c27-80c8-099327865f3f";

// icon is a <canvas> element
<Hashicon value={value}/>

// Same icon with 80px in size
<Hashicon value={value} size={89}/>

Params

See default params

HashIcon's values are extracted from the hash, and controlled with the following parameters to manipulate the possible visual output:

{

// size px (HiDPI/Retina aware)
size: 100,

// primary color range radius ( 0=red, 60=yellow, 120=green, ..., 360=red )
hue: { min: 0, max: 360 },

// saturation ( 0=grey, 100=colorfull )
saturation: { min: 70, max: 100 },

// lightness ( 0=extremlydark, 50=optimal, 100=extremlybright )
lightness: { min: 45, max: 65 },

// hue variation for individual triangles
variation: { min: 7, max: 14, enabled: true },

// color shift from primary hue to secondary hue ( the pattern )
shift: { min: 60, max: 300 },

// the pattern opacity
figurealpha: { min: .7, max: 1.2 }, // alpha

// simulate a 3d cube by different areas gets some more/less light applyed 
light:{ top:10, right:-8, left:-4, enabled: true},

// Allows a custom canvas to be used to render into
createCanvas: (width, height) => HTMLCanvasElement

}

Development

  1. Install package dependencies locally:
$ yarn install
  1. Start development environment:
$ yarn workspace @emeraldpay/hashicon run storybook

A browser pointing to Storybook demo will start automatically. If not opened, see console for:

╭─────────────────────────────────────────────────────╮
│                                                     │
│   Storybook 5.3.19 started                          │
│   3.62 s for manager and 3.32 s for preview         │
│                                                     │
│    Local:            http://localhost:60490/        │
│    On your network:  http://192.168.0.100:60490/    │
│                                                     │
╰─────────────────────────────────────────────────────╯

And open the local url (http://localhost:60490/ in the example above)

Build

$ yarn build

Builds package into lib/ folder inside each package.

License

Apache 2

See LICENSE

hashicon's People

Contributors

justinmchase avatar oori avatar scco avatar splix avatar whilei avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.