Socket
Socket
Sign inDemoInstall

color-stats

Package Overview
Dependencies
10
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    color-stats

Generate color information based off of the hash of any object (or a valid color string)


Version published
Weekly downloads
3
increased by200%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

color-stats

NPM version Build Status Code Climate Coverage Status Dependency Status devDependency Status

NPM

Description

Generate color information based off of the hash of any object. If you pass in a valid color name or css value, the information for that color will be returned.

Getting Started

Install the module with: npm install color-stats

var colorStats = require('color-stats');
colorStats('red'); // get a bunch of stats about the color red
colorStats('#ff0000'); // get a bunch of stats about the color red
colorStats({info:"Based On Hash - always the same color"}); // get a color based on some object.
colorStats.random(); // get the stats for a random color

Documentation

colorStats(colorObject)

Pass in a color string (or any object), and get the stats for that object.

colorStats.parse(colorObject)

This is the same as calling colorStats(colorObject). It's just a proxy for people that like explicit function names.

colorStats.random()

Returns the stats for a random color.

Example

Get Stats function call:
var colorStats = require('color-stats');
var result = colorStats('#4682b4'); // see result output below
Get Stats Result:
{
  "lib": {
    "onecolor": {
      "red": 0.27450980392156865,
      "green": 0.5098039215686274,
      "blue": 0.7058823529411765,
      "alpha": 1,
      "hue": 0.5757575757575757,
      "saturation": 0.611111111111111,
      "value": 0.7058823529411765,
      "lightness": 0.4901960784313726,
      "cyan": 0.611111111111111,
      "magenta": 0.2777777777777779,
      "yellow": 0,
      "black": 0.2941176470588235,
      "x": 0.18743597342600288,
      "y": 0.2056088063416628,
      "z": 0.46152037838994725,
      "l": 1,
      "a": 1,
      "b": 0.7058823529411765,
      "hex": "#4682b4",
      "hexa": "#ff4682b4",
      "css": "rgb(70,130,180)",
      "cssa": "rgba(70,130,180,1)",
      "cmyk": [
        "CMYK",
        0.611111111111111,
        0.2777777777777779,
        0,
        0.2941176470588235,
        1
      ],
      "hsl": [
        "HSL",
        0.5757575757575757,
        0.43999999999999995,
        0.4901960784313726,
        1
      ],
      "hsv": [
        "HSV",
        0.5757575757575757,
        0.611111111111111,
        0.7058823529411765,
        1
      ],
      "lab": [
        "LAB",
        1,
        0,
        0,
        1
      ],
      "rgb": [
        "RGB",
        0.27450980392156865,
        0.5098039215686274,
        0.7058823529411765,
        1
      ],
      "xyz": [
        "XYZ",
        0.18743597342600288,
        0.2056088063416628,
        0.46152037838994725,
        1
      ]
    },
    "color": {
      "rgb": {
        "r": 70,
        "g": 130,
        "b": 180
      },
      "hsl": {
        "h": 207,
        "s": 44,
        "l": 49
      },
      "hsv": {
        "h": 207,
        "s": 61,
        "v": 71
      },
      "cmyk": {
        "c": 61,
        "m": 28,
        "y": 0,
        "k": 29
      },
      "rgbArray": [
        70,
        130,
        180
      ],
      "hslArray": [
        207,
        44,
        49
      ],
      "hsvArray": [
        207,
        61,
        71
      ],
      "cmykArray": [
        61,
        28,
        0,
        29
      ],
      "rgbaArray": [
        70,
        130,
        180,
        1
      ],
      "hslaArray": [
        207,
        44,
        49,
        1
      ],
      "alpha": 1,
      "red": 70,
      "green": 130,
      "blue": 180,
      "hue": 207,
      "saturation": 44,
      "lightness": 49,
      "saturationv": 61,
      "value": 71,
      "cyan": 61,
      "magenta": 28,
      "yellow": 0,
      "black": 29,
      "hexString": "#4682B4",
      "rgbString": "rgb(70, 130, 180)",
      "rgbaString": "rgba(70, 130, 180, 1)",
      "percentString": "rgb(27%, 51%, 71%)",
      "hslString": "hsl(207, 44%, 49%)",
      "hslaString": "hsla(207, 44%, 49%, 1)",
      "keyword": "steelblue",
      "luminosity": 0.20562642207624857,
      "dark": true,
      "light": false
    },
    "colorConvert": {
      "rgb": [
        70,
        130,
        180
      ],
      "hsl": [
        207,
        44,
        49
      ],
      "hsv": [
        207,
        61,
        71
      ],
      "hwb": [
        207,
        27,
        29
      ],
      "cmyk": [
        61,
        28,
        0,
        29
      ],
      "keyword": "steelblue",
      "xyz": [
        19,
        21,
        46
      ],
      "lab": [
        52,
        -4,
        -32
      ],
      "lch": [
        52,
        32,
        263
      ],
      "ansi16": 36,
      "ansi": 74
    }
  },
  "alpha": 1,
  "cmyk": {
    "c": 61.11,
    "m": 27.78,
    "y": 0,
    "k": 29.41
  },
  "hsl": {
    "h": 207.27,
    "s": 44,
    "l": 49.02
  },
  "hsv": {
    "h": 207.27,
    "s": 61.11,
    "v": 70.59
  },
  "rgb": {
    "r": 70,
    "g": 130,
    "b": 180
  },
  "rgbPercent": {
    "r": 27.45,
    "g": 50.98,
    "b": 70.59
  },
  "hex": "#4682b4",
  "hexTriplet": "4682b4",
  "isRandom": false,
  "parseSuccessful": true,
  "closest": {
    "name": "Steel Blue",
    "rgb": [
      70,
      130,
      180
    ]
  },
  "websafe": "#3399cc",
  "websmart": "#4488bb",
  "isWebsafe": false,
  "isWebsmart": false,
  "schemes": {
    "complementary": [
      "#4682b4",
      "#b47846"
    ],
    "splitComplementary": [
      "#4682b4",
      "#b4464b",
      "#46b49d"
    ],
    "splitComplementaryCW": [
      "#4682b4",
      "#b4464b",
      "#46b478"
    ],
    "splitComplementaryCCW": [
      "#4682b4",
      "#7846b4",
      "#b4af46"
    ],
    "triadic": [
      "#4682b4",
      "#b44682",
      "#82b446"
    ],
    "clash": [
      "#4682b4",
      "#af46b4",
      "#4bb446"
    ],
    "tetradic": [
      "#4682b4",
      "#af46b4",
      "#b47846",
      "#4bb446"
    ],
    "fourToneCW": [
      "#4682b4",
      "#7846b4",
      "#b47846",
      "#82b446"
    ],
    "fourToneCCW": [
      "#4682b4",
      "#b44682",
      "#b47846",
      "#46b478"
    ],
    "fiveToneA": [
      "#4682b4",
      "#b4468b",
      "#b44a46",
      "#b4a646",
      "#79b446"
    ],
    "fiveToneB": [
      "#4682b4",
      "#5346b4",
      "#af46b4",
      "#b44670",
      "#79b446"
    ],
    "fiveToneC": [
      "#4682b4",
      "#6646b4",
      "#af46b4",
      "#b4a646",
      "#46b49d"
    ],
    "fiveToneD": [
      "#4682b4",
      "#5346b4",
      "#b44a46",
      "#4bb446",
      "#46b48a"
    ],
    "fiveToneE": [
      "#4682b4",
      "#b4468b",
      "#94b446",
      "#4bb446",
      "#46b49d"
    ],
    "sixToneCW": [
      "#4682b4",
      "#464bb4",
      "#b44682",
      "#b4464b",
      "#82b446",
      "#4bb446"
    ],
    "sixToneCCW": [
      "#4682b4",
      "#af46b4",
      "#b44682",
      "#b4af46",
      "#82b446",
      "#46b4af"
    ],
    "neutral": [
      "#4682b4",
      "#4667b4",
      "#464bb4",
      "#5c46b4",
      "#7846b4",
      "#9346b4"
    ],
    "analogous": [
      "#4682b4",
      "#464bb4",
      "#7846b4",
      "#af46b4",
      "#b44682",
      "#b4464b"
    ]
  },
  "shades": [
    "#4682b4",
    "#3f75a2",
    "#386890",
    "#315b7e",
    "#2a4e6c",
    "#23415a",
    "#1c3448",
    "#152736",
    "#0e1a24",
    "#070d12"
  ],
  "tints": [
    "#4682b4",
    "#598fbc",
    "#6b9bc3",
    "#7da8cb",
    "#90b4d2",
    "#a2c1da",
    "#b5cde1",
    "#c7dae9",
    "#dae6f0",
    "#ecf3f8"
  ],
  "tones": [
    "#4682b4",
    "#4c82af",
    "#5282aa",
    "#5781a4",
    "#5d819f",
    "#63819a",
    "#688194",
    "#6e808f",
    "#74808a",
    "#7a8085"
  ],
  "blind": {
    "protanomaly": "#5e7db0",
    "protanopia": "#6c7bae",
    "deuteranomaly": "#597eb5",
    "deuteranopia": "#647bb5",
    "tritanomaly": "#3c859e",
    "tritanopia": "#368792",
    "achromatomaly": "#667c8e",
    "achromatopsia": "#797979"
  }
}

Credits

Below are some of the libraries that are being used, and what they are used for:

  • onecolor - parses color, and gets normalized data
  • color - gets un-normalized data and user friendly display
  • color-blind - simulates color blindness
  • color-harmony - creates color scales/harmonies by rotating the hue of the given color
  • color-quantize - convert colors to websafe / websmart values
  • colorname - gets the closest color name
  • cycle - encodes cyclical structures in json
  • jsonfn - stringify non-json compatible objects
  • random-seed - make sure our non-color objects always return the same information

FAQ

Is it slow in a loop?

Yes

Why?

Because I'm trying to return "all the things" and depend on a lot of libraries (which do some duplicate re-parsing, etc).

Release History

v0.3.0 - Released June 28, 2014
  • modifying return format so "lib" data is more explicit
  • adding optional "rgbOnly" argument to random()
  • don't allow an alpha channel of 0 when returning random colors
v0.2.1 - Released June 22, 2014
  • colorStats.random() should return alpha channel sometimes
v0.2.0 - Released June 22, 2014
  • fixing a bug with the harmonies/scales that were being generated
v0.1.0 - Released June 21, 2014
  • initial release

License

Copyright (c) 2014 skratchdot
Licensed under the MIT license.

Keywords

FAQs

Last updated on 12 Oct 2015

Did you know?

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc