Javascript plugin that provides natural language descriptions of hex color codes.
We made this to have screenreader support for reading out color names on remembertostand.com (Turn on screenreader and press C when on the site to hear it in action)
- The hexToRGB and RGBToHSL functions used as part of this plugin are from https://css-tricks.com/converting-color-spaces-in-javascript/
- Interactive demo of Naevner.js: Nævner (naevner.com)
- Naevner.js in use on a website — interactive demo: Naevner.js in use on remembertostand.com (Turn on screenreader and press C to change interface colors to hear it in action)
- Naevner.js in use on a website — video demonstration of screenreader usage: Naevner.js screenreader demo video
Include the minified code
yarn add @samhaeng/naevner
npm install @samhaeng/naevner
import naevner from '@samhaeng/naevner'
naevner(color);
//Examples:
naevner("#000000"); //Returns: “black”
naevner("#0000ff"); //Returns: “vivid blue”
naevner("#D6365C"); //Returns: “clear red”
naevner("#2F5651"); //Returns: “dark, faded turquoise”
naevner("#3F0548"); //Returns: “dark, clear, purpleish magenta”
- 3-digit hex with preceding #-sign — e.g.
#f00
- 3-digit hex without preceding #-sign — e.g.
f00
- 6-digit hex with preceding #-sign — e.g.
#ff0000
- 6-digit hex without preceding #-sign — e.g.
ff0000
Ending for approximate colors — e.g. “greenish yellow” or “redish orange". Note that “off-white” and “black” nuances currently always use the term “-tinted” (e.g. “red-tinted black” or “yellow-tinted off-white”) independent of this parameter.
naevner(color, approximationSuffix);
approximationSuffix examples:
naevner("#3F0548"); //Returns: “dark, clear, purpleish magenta”
naevner("#3F0548", "-tinted"); //Returns: “dark, clear, purple-tinted magenta”
naevner("#3F0548", "-like"); //Returns: “dark, clear, purple-like magenta”
The purpose of this plugin is to provide short, unambiguous descriptions using commonly used color terms. For some situations, different types of color descriptions may be more useful. For those situations, you may want to have a look at the following repositories. These are provided for your convenience and are not associated with this repository or Samhæng:
If you have questions or advice, feel free to open an issue on this repo. Thank you!