@pexip-engage-public/color-utils
v1.0.23
Published
**Warning**: This is a [pure ESM package](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c)
Downloads
937
Readme
Color generator
Warning: This is a pure ESM package
ARIA-compliant for WCAG 2.0
The purpose of this color calculator is guarding the WCAG 2.0 rules when being provided with a foreground color (text color) and background-color (brand color) by calculating a shade that meets the requirements.
WAI-ARIA, the Accessible Rich Internet Applications Suite, defines a way to make Web content and Web applications more accessible to everyone. It especially helps with dynamic content and advanced user interface controls developed with HTML, JavaScript, and related technologies.
Contrast and color use are vital to accessibility. Users, including users with visual disabilities, must be able to perceive content on the page. It is important that all content on the page is legible to everyone.
Levels
There are 3 levels in Accessibility rules: A, AA, AAA. The more A's the more compliant it is.
A
: Minimal compliance, mostly focuses on keyboard navigation and non-text alternatives.AA
: This is the most used rule and legally required level in multiple countries.AAA
: Though not a hard legal requirement (as of writing), this is the ideal conformance level which ensures that a page's or site's web content is accessible.
Understanding WCAG Contrast and Color Requirements
color contrast
: In WCAG 2, contrast is a measure of the difference in perceived "luminance" or brightness between two colors (the phrase "color contrast" is never used). This brightness difference is expressed as a ratio ranging from 1:1 (e.g. white on white) to 21:1 (e.g., black on a white). To give a frame of reference, on a white background.
A
orlowest
: Does not focus on color contrast.AA
ormidrange
: The visual presentation of text and images of text has a contrast ratio of at least 4.5:1.AAA
orhighest
: The visual presentation of text and images of text has a contrast ratio of at least 7:1.
Installation
The color generator can be installed as an npm package:
$ npm install --save @pexip-engage-public/color-utils
or
$ yarn install @pexip-engage-public/color-utils
or
$ pnpm install @pexip-engage-public/color-utils
Basic usage
In this basic example, we pass our brandHex to the calculateColor
import { calculateColor } from "@pexip-engage-public/color-utils";
const brandHex = "#6366F1";
const newColor = calculateColor({ brandHex });
Parameters
interface Params {
brandHex: string;
textColor?: "FFF" | "000" | undefined;
accessibilityLevel?: "midrange" | "highest" | undefined;
}
Where the accessibilitylevel is:
AA
= midrange
AAA
= highest
Example:
import { calculateColor } from "@pexip-engage-public/color-utils";
const brandHex = "#6366F1";
const newColor = calculateColor({ brandHex, textColor="000", accessibilityLevel = "midrange" });