Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

material-color-tool

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

material-color-tool

Generate a spec-compliant Material Design palette from a source color

  • 1.1.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
85
increased by88.89%
Maintainers
1
Weekly downloads
 
Created
Source

Material Color Tool

Procedurally generate a spec-compliant Material Design color palette based on an original source color. While there is not an official spec, Google has published a tool (linked below) which serves as a model for the conversions here.

Quickstart

const { makePalette } = require('material-color-tool')

makePalette('#E82127') // returns an array of hex codes representing your palette

Motivation

The conversion here is not simply adjusting lightness or other color attributes to generate a close approximation. While this produces pretty good results when the shades are close to the original color, as you get toward either end of the light or dark range this can produce an outcome where the shades no longer look like the original source.

As an example, below is a comparison of procedurally generating a palette for the Material "Blue" color (#2196F3) using the Material.io methodology opposed to a simple lighten/darken that you'll find in most community implementations:

How this works

Once again, I need to acknowledge that credit for this method goes entirely to the original authors of the Material.io tool.

When a source color is provided, it is converted to a CIELAB and HCL color space. First the color is compared to the existing Material design palettes to find the closest comparable palette using the CIEDE2000 algorithm. These palettes are the closest thing we have to a true "spec" and have been generated by hand.

If any of these palettes are close enough optically to the original source color, the palette is used instead. Otherwise, the closest match is pulled and the entire palette color adjusted to the source color by changing the HCL values.

Acknowledgements

All authorship credit to original Google Material color palette generator: https://material.io/inline-tools/color/

FAQs

Package last updated on 24 Dec 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc