Skip to content
This repository was archived by the owner on Apr 3, 2023. It is now read-only.

BelkaLab/material-color-hash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Giovanni Frigo
Dec 19, 2018
2c6f54a ยท Dec 19, 2018

History

34 Commits
Oct 22, 2016
Dec 19, 2018
Oct 18, 2016
Oct 18, 2016
Oct 18, 2016
Oct 18, 2016
Oct 18, 2016
Oct 18, 2016
Dec 19, 2018
Dec 19, 2018
Dec 19, 2018
Dec 19, 2018

Repository files navigation

Material takes cues from contemporary architecture, road signs, pavement marking tape, and athletic courts. Color should be unexpected and vibrant. (https://material.google.com/style/color.html)

Material color hashing

Hash a string to a Material Design color

npm version Alt text

A dead-simple library to hash a string to a {backgroundColor, textColor} tuple from the official Material Design palette.

Great for dynamically coloring your UI elements (badges, list icons, ..) with good-looking, vibrant colors and ensured text legibility.

Interactive Demo

http://belkalab.github.io/material-color-hash/ http://belkalab.github.io/material-color-hash/

Usage

$ npm install material-color-hash
var toMaterialStyle = require('material-color-hash');
// or, if you are on ES6:
// import toMaterialStyle from 'material-color-hash'

/* basic usage */
var fooStyle = toMaterialStyle('foo');
// fooStyle: {
//   backgroundColor: '#00BCD4',
//   color: 'rgba(0, 0, 0, 0.87)',
//   materialColorName: 'Cyan'
// }

/* select a different shade (default is 500) */
var fooStyle200 = toMaterialStyle('foo', '200');
// fooStyle200: {
//   backgroundColor: '#80DEEA',
//   color: 'rgba(0, 0, 0, 0.87)',
//   materialColorName: 'Cyan'
// }

var barStyle = toMaterialStyle('bar', 500);
// barStyle: {
//   backgroundColor: '#2196F3',
//   color: 'rgba(255, 255, 255, 1)',
//   materialColorName: 'Blue'
// }

/* also works with emoji! */
var emojiStyle = toMaterialStyle('๐Ÿ˜Ž');
// emojiStyle: {
//   backgroundColor: '#FFEB3B',
//   color: 'rgba(0, 0, 0, 0.87)',
//   materialColorName: 'Yellow'
// }

The returned object can be fed directly as a style prop to React components:

import toMaterialStyle from 'material-color-hash';

const MaterialBadge = (props) => {
	const style = toMaterialStyle(props.text);

	return (
		<div
			className="badge"
			style={style}
		>
			{props.text}
		</div>
	);
}

For more information about Material Design colors and how to use them, check out the official Material Design docs by Google

Contributors

Giovanni Frigo, Developer @Belka

License

material-color-hash is Copyright (c) 2016-2018 Belka, srl. It is free software, and may be redistributed under the terms specified in the LICENSE file. (TL;DR: MIT license)

About Belka

Belka is a Digital Agency specialized in design, mobile applications development and custom solutions. We love open source software! You can see our projects or look at our case studies.

Interested? Hire us to help build your next amazing project.

www.belka.us