npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

color-contrast-table

v4.0.0

Published

a vanilla js function that takes in an array of colors and returns the wcag contrast scors of all of their combinaations

Downloads

589

Readme

A vanilla javascript function that takes an array of colors and returns the WCAG contast scores for all of their possible color combinations.

Input

You can pass an array of colors:

[
  "red",
  "#0000ff",
  "rgb(0,255,0)"
]

You can pass an array of objects that contains a color name a value:

[
  {
    "name": "red",
    "value": "red"
  },
  {
    "name": "blue",
    "value": "#0000ff"
  },
  {
    "name": "green",
    "value": "rgb(0,255,0)"
  }
]

You can get crazy:

[
  "black",
  "#ffffff",
  {
    "name": "red",
    "value": "red"
  },
  {
    "name": "blue",
    "value": "#0000ff"
  },
  {
    "name": "green",
    "value": "rgb(0,255,0)"
  }
]

You can NOT get too crazy: (but I might add this feature in the future...)

[
  "black",
  "#ffffff",
  {
    "name": "grays",
    "value": [
      "lightgray",
      "gray",
      "darkgray"
    ]
  },
]

Output

You will get an array back with this shape

[
  {
    "name":"red",
    "value":"#ff0000",
    "combinationScores": [
      {
        "name":"blue",
        "value":"#0000ff",
        "ratio":"2.1",
        "score":"fail"
      },
      {
        "name":"green",
        "value":"#00ff00",
        "ratio":"2.9",
        "score":"fail"
      }
    ]
  },
  {
    "name":"blue",
    "value":"#0000ff",
    "combinationScores": [
      {
        "name":"red",
        "value":"#ff0000",
        "ratio":"2.1",
        "score":"fail"
      },
      {
        "name":"green",
        "value":"#00ff00",
        "ratio":"6.3",
        "score":"AA"
      }
    ]
  },
  {
    "name":"green",
    "value":"#00ff00",
    "combinationScores": [
      {
        "name":"red",
        "value":"#ff0000",
        "ratio":"2.9",
        "score":"fail"
      },
      {
        "name":"blue",
        "value":"#0000ff",
        "ratio":"6.3",
        "score":"AA"
      }
    ]
  }
]

Score Key

  • AAA - The contrast ratio was greater than 7.0
    • this is a great score, you can definitely use this combination
  • AA - The contrast ratio was greater than 4.5, but less than 7
    • this is a pretty good score, safe for most applications
  • 18+ - The contrast ratio was greater than 3.0, but less than 4.5
    • this means this color combo is safe for text larger than 18px
  • fail - The contrast ratio was less than 3.
    • this is a bad score, please be very careful using this combination of text and background