mcpField
C
contrast-check

contrast-check

github.com/pascalorgDesign & UI10061 installsUpdated 7w ago
Repository

About contrast-check

A command-line skill that checks color pairs against WCAG 2.1 contrast requirements. It reports ratios and AA/AAA pass or fail results for normal and large text, supporting single pairs or palettes.

Key features

  1. 01Accepts hexadecimal color values
  2. 02Calculates every foreground/background pair
  3. 03Checks WCAG 2.1 AA and AAA thresholds
  4. 04Reports ratios and pass/fail results
  5. 05Supports palette-wide checks

Use cases

  1. 01Check text readability on a background
  2. 02Audit a color palette for accessibility
  3. 03Verify colors extracted from a design

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/pascalorg/skills --skill contrast-check

After installing, type/contrast-checkin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

scripts/
contrast-check.js
contrast-check.sh
package-lock.json
package.json

Details

From the project README

Contrast Check

Check color pairs against WCAG 2.1 contrast requirements. Pass in hex colors and get contrast ratios with AA/AAA pass/fail results for both normal and large text.

When to Use

  • Checking if a text color is readable against a background color
  • Auditing an entire color palette for accessibility compliance
  • Verifying colors extracted from a design meet WCAG standards

How It Works

  1. Takes a list of hex colors as arguments
  2. Computes the contrast ratio for every foreground/background pair
  3. Tests each pair against WCAG 2.1 AA and AAA thresholds for normal and large text

WCAG thresholds:

  • AA normal text — ratio >= 4.5:1
  • AA large text — ratio >= 3:1
  • AAA normal text — ratio >= 7:1
  • AAA large text — ratio >= 4.5:1

Usage

bash <skill-path>/scripts/contrast-check.sh <color1> <color2> [color3] [color4] ...

Arguments:

  • Two or more hex colors (required). With or without # prefix.

Examples:

# Check a single pair
bash <skill-path>/scripts/contrast-check.sh "#1a1a2e" "#ffffff"

# Check all pairs in a palette
bash <skill-path>/scripts/contrast-check.sh "#1a1a2e" "#e94560" "#ffffff" "#3d83f7" "#bdbdbd"

Output

{
  "pairs": [
    {
      "foreground": "#1a1a2e",
      "background": "#ffffff",
      "ratio": 16.57,
      "aa": { "normal": true, "large": true },
      "aaa": { "normal": true, "large": true }
    },
    {
      "foreground": "#e94560",
      "background": "#ffffff",
      "ratio": 3.94,
      "aa": { "normal": false, "large": true },
      "aaa": { "normal": false, "large": false }
    }
  ],
  "summary": {
    "totalPairs": 2,
    "passAA": 1,
    "passAAA": 1,
    "failAA": 1
  }
}
FieldTypeDescription
foregroundStringForeground (text) color
backgroundStringBackground color
ratioNumberContrast ratio (e.g. 16.57 means 16.57:1)
aa.normalBooleanPasses WCAG AA for normal text (>= 4.5:1)
aa.largeBooleanPasses WCAG AA for large text (>= 3:1)
aaa.normalBooleanPasses WCAG AAA for normal text (>= 7:1)
aaa.largeBooleanPasses WCAG AAA for large text (>= 4.5:1)

Present Results to User

After checking, present a table:

Contrast Check Results:

  #1a1a2e on #ffffff — 16.57:1 — AA: Pass — AAA: Pass
  #e94560 on #ffffff —  3.94:1 — AA: Fail (normal) / Pass (large) — AAA: Fail

Summary: 1/2 pairs pass AA for normal text, 1/2 pass AAA.

Flag any failing pairs and suggest fixes (darken/lighten the color to reach the threshold).

Troubleshooting

Invalid color — Colors must be valid hex values (3 or 6 digits, with or without #).

Pairing with image-analysis — Extract colors from a design with the image-analysis skill first, then pipe the hex values into this skill to audit accessibility.

Comments

Markdown supported