Parse any CSS color (hex, rgb(), hsl()) and emit all three formats plus relative luminance
Parse any CSS color (hex, rgb(), hsl()) and emit all three formats plus relative luminance. Compute WCAG contrast ratios against a background with AA/AAA pass-fail for normal and large text, and lighten, darken, or mix colors. Built for agents generating accessible UI themes. POST a JSON body like: {"color":"#3498db","background":"#ffffff"}
1000 (raw units)
price
6
calls / 30d
5
unique payers
2026-09-17
updated
Provider
keyronne.com · discovered, not yet claimed by its owner
Payment (x402 accepts[])
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0xB86F95EF5FA904318Ea9Df3b59AdCe099b478fC4",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "1000",
"maxTimeoutSeconds": 60
}
]Output schema
{
"bazaar": {
"info": {
"input": {
"body": {
"background": "#ffffff",
"color": "#3498db"
},
"bodyType": "json",
"method": "POST",
"type": "http"
},
"output": {
"example": {
"contrast": {
"against": "#ffffff",
"largeTextAA": false,
"normalTextAA": false,
"ratio": 2.59
},
"hex": "#3498db",
"hsl": {
"h": 204,
"l": 53.1,
"s": 70
},
"input": "#3498db",
"luminance": 0.2831,
"rgb": {
"a": 1,
"b": 219,
"g": 152,
"r": 52
}
},
"type": "json"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"properties": {
"body": {
"properties": {
"background": {
"description": "Optional second color for a WCAG contrast check.",
"type": "string"
},
"color": {
"description": "A color: \"#3498db\", \"rgb(52,152,219)\", or \"hsl(204,70%,53%)\".",
"type": "string"
},
"darken": {
"description": "Decrease lightness by this many percent (0-100).",
"type": "number"
},
"lighten": {
"description": "Increase lightness by this many percent (0-100).",
"type": "number"
},
"mix": {
"description": "Blend the color toward this one.",
"type": "string"
},
"weight": {
"default": 0.5,
"description": "Mix weight toward \"mix\".",
"maximum": 1,
"minimum": 0,
"type": "number"
}
},
"required": [
"color"
],
"type": "object"
},
"bodyType": {
"enum": [
"json"
],
"type": "string"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"type": "object"
},
"output": {
"properties": {
"adjusted": {
"description": "Present when lighten/darken is given.",
"type": "string"
},
"contrast": {
"description": "Present when \"background\" is given.",
"type": "object"
},
"hex": {
"type": "string"
},
"hsl": {
"type": "object"
},
"luminance": {
"type": "number"
},
"mixed": {
"description": "Present when \"mix\" is given.",
"type": "string"
},
"rgb": {
"type": "object"
}
},
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
}Use it
curl
curl "https://keyronne.com/api/color" # -> 402 Payment Required, accepts[] lists how to pay # retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://keyronne.com/api/color");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}Python
import httpx
res = httpx.get("https://keyronne.com/api/color")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerMachine-readable
Everything on this page is also available as clean JSON at /resources/810.json, and this resource appears in /discovery/resources and /discovery/search.