API aberta
Cinco endpoints gratuitos, sem cadastro, sem chave, com CORS ativado. Mesmos dados do site: o espaço de 24 bits, 32.258 cores nomeadas, 17.756 amostras padrão e 659 cores tradicionais chinesas.
Endpoints em resumo
Cada endpoint tem CORS ativado - busque diretamente do navegador ou Node.js.
GET/api/search?q=crimson&limit=8
Pesquisar cores por nome, código padrão, nome tradicional ou HEX
Parâmetros
| q | Palavra-chave de consulta: valor HEX (ff0000), nome da cor (crimson) ou código padrão (RAL 3020) |
| limit | Máximo de resultados, padrão 12, limitado a 50 |
Exemplo de requisição
curl "https://www.yanseku.com/api/search?q=crimson&limit=8"
Busca direta funciona no navegador (CORS ativado).
Exemplo de resposta
{
"query": "crimson",
"results": [
{ "name": "BM 1299 Crimson", "hex": "b1625b", "source": "standard", "system": "benjamin_moore", "code": "BM 1299" },
{ "name": "crimson", "hex": "dc143c", "source": "standard", "system": "css_named", "code": "crimson" }
]
}GET/api/color/e63946
Perfil de cor: 10 formatos + cores nomeadas mais próximas + correspondências em 8 sistemas padrão + correspondências tradicionais + 6 harmonias + contraste
Parâmetros
| hex | Valor da cor: 3 ou 6 dígitos hex (e63946 ou e63) |
Exemplo de requisição
curl "https://www.yanseku.com/api/color/e63946"
Exemplo de resposta
{
"hex": "e63946",
"formats": {
"rgb": { "r": 230, "g": 57, "b": 70 },
"hsl": { "h": 355.5, "s": 77.6, "l": 56.3 },
"hsv": { "h": 355.5, "s": 75.2, "v": 90.2 },
"cmyk": { "c": 0, "m": 75.2, "y": 69.6, "k": 9.8 },
"xyz": { "x": 0.352, "y": 0.2019, "z": 0.0784 },
"lab": { "L": 52.06, "a": 65.72, "b": 34.14 },
"oklch": { "L": 0.612, "c": 0.208, "h": 22.2 },
"webSafe": "ff3333",
"css": { "rgb": "rgb(230, 57, 70)", "hsl": "hsl(355.5, 77.6%, 56.3%)" }
},
"named": {
"closest": { "name": "Paint the Town Red", "hex": "e63045", "deltaE": 1.34, "exact": false },
"nearest": [ { "name": "Red Radish", "hex": "ee3344", "deltaE": 1.36, "exact": false } ]
},
"standards": [
{ "system": "ncs", "systemName": "NCS (Natural Color System)", "code": "NCS S 0570-Y90R", "name": "NCS S 0570-Y90R", "hex": "e6373f", "deltaE": 1.69, "exact": false },
{ "system": "munsell", "systemName": "Munsell (Re-renotation)", "code": "7.5R 6/16", "name": "7.5R 6/16", "hex": "dd3743", "deltaE": 2.02, "exact": false }
],
"traditional": [
{ "name": "火红", "hex": "ff2d51", "cat": "红", "deltaE": 4.88, "exact": false },
{ "name": "银红", "hex": "f05654", "cat": "红", "deltaE": 5.89, "exact": false }
],
"harmony": [
{ "type": "complementary", "colors": ["e63946", "39e6d9"] },
{ "type": "split-complementary", "colors": ["e63946", "39e683", "399de6"] }
],
"contrast": {
"onWhite": { "ratio": 4.17, "levels": { "aaNormal": false, "aaLarge": true, "aaaNormal": false, "aaaLarge": false } },
"onBlack": { "ratio": 5.04, "levels": { "aaNormal": true, "aaLarge": true, "aaaNormal": false, "aaaLarge": true } },
"bestText": "#000000"
}
}GET/api/scheme?hex=e63946&mode=triadic
Esquema de harmonia: seis regras ao redor da sua cor base
Parâmetros
| hex | Valor da cor: 3 ou 6 dígitos hex (e63946 ou e63) |
| mode | Modo de harmonia, padrão complementar. Opções: complementar / split-complementar / triádico / tetrádico / análogo / monocromático |
Exemplo de requisição
curl "https://www.yanseku.com/api/scheme?hex=e63946&mode=triadic"
Exemplo de resposta
{
"hex": "e63946",
"mode": "triadic",
"count": 3,
"colors": ["e63946", "46e639", "3946e6"]
}GET/api/contrast?fg=ffffff&bg=e63946
Verificação de contraste: proporção WCAG + níveis AA/AAA + melhor cor de texto
Parâmetros
| fg | Hex do primeiro plano, ex: ffffff |
| bg | Hex do fundo, ex: e63946 |
Exemplo de requisição
curl "https://www.yanseku.com/api/contrast?fg=ffffff&bg=e63946"
Exemplo de resposta
{
"fg": "ffffff",
"bg": "e63946",
"ratio": 4.17,
"label": "AA Large",
"levels": { "aaNormal": false, "aaLarge": true, "aaaNormal": false, "aaaLarge": false },
"bestText": "#000000"
}GET/api/random?count=5
Cores aleatórias do pool de nomes curado, até 10
Parâmetros
| count | Quantidade de cores, 1-10, padrão 1 |
Exemplo de requisição
curl "https://www.yanseku.com/api/random?count=5"
Exemplo de resposta
{
"count": 3,
"colors": [
{ "name": "Sea Foam Green", "hex": "c2e4d0" },
{ "name": "Deep Koamaru", "hex": "333366" },
{ "name": "Laser Lemon", "hex": "ffff66" }
]
}Downloads de dados abertos
Além da API - leve toda a 颜色库 com você. Formato CSV (UTF-8, linha de cabeçalho), pronto para análise de dados, aprendizado de máquina e pesquisa de sistemas de design. Os nomes dos campos estão no cabeçalho; os conjuntos de dados são atualizados a cada build.
Os nomes das cores são derivados de meodai/color-names (MIT) e da xkcd Color Survey; cores de marcas de dados abertos do simple-icons; cores tradicionais chinesas de zerosoul/chinese-colors e zhongguose.com; os valores de amostras padrão são conversões simuladas por computador - verifique com amostras físicas para produção. Siga as licenças upstream respectivas.
Pacotes de código aberto
O motor e os dados do site são disponibilizados como bibliotecas de código aberto - capazes de funcionar offline, prontas para produção. Três pacotes npm cobrem o motor, conjuntos de dados e um Servidor MCP, além de uma porta Python e um conjunto de dados HuggingFace.
Motor de cores: conversões de 10 formatos, CIEDE2000, APCA, mesclagem OKLab, 6 regras de harmonia, simulação de visão - matemática pura, sem dependências
npm install @yanseku/color
Conjuntos de dados: 17 corpora, mais de 85.000 entradas (cores nomeadas, amostras padrão, tradicionais, japonesas, marcas...), JSON com LAB pré-calculado
npm install @yanseku/data
Servidor MCP: conecte todo o color database ao Claude / Cursor - 7 ferramentas offline
npm install -g @yanseku/mcp
Porta Python: pip install e pronto - mesma matemática D65 e deltaE2000, 659 histórias tradicionais inclusas
pip install yanseku
Configuração MCP (claude_desktop_config.json)
{
"mcpServers": {
"yanseku": {
"url": "https://www.yanseku.com/api/mcp"
}
}
}Configuração MCP - local (npx, offline)
{
"mcpServers": {
"yanseku": {
"command": "npx",
"args": ["-y", "@yanseku/mcp"]
}
}
}Comparação de capacidade com outras bibliotecas de cores
Bibliotecas comuns só fazem cálculos matemáticos; a camada exclusiva do Yanseku é os dados: busca de cores nomeadas, correspondência de amostras oficiais e histórias de cores tradicionais.
| Capacidade | Yanseku | colorjs.io | culori | chroma-js |
|---|---|---|---|---|
| Conversões de espaço de cores (10 formatos) | ✔ | ✔ | ✔ | |
| Diferença de cor CIEDE2000 | ✔ | ✔ | ✔ | |
| Contraste perceptivo APCA | ✔ | ✘ | ✘ | |
| Simulação de visão de cores (8 tipos) | ✔ | ✘ | ✘ | |
| Busca de cor nomeada (32.258) | ✔ 32,258 | ✘ | ✘ | |
| Correspondência de amostras oficiais (12 sistemas) | ✔ 17,756 | ✘ | ✘ | |
| Histórias tradicionais chinesas (659) | ✔ 659 | ✘ | ✘ | |
| Regras de harmonia perceptiva | ✔ 6 rules | ✘ | ✔ palette | |
| Servidor MCP (offline) | ✔ remote + offline | ✘ | ✘ | |
| Port para Python | ✔ | ✘ | ✘ | |
| CSV completo / Dataset HF | ✔ 17 sets | ✘ | ✘ |
Onde obter: npm (@yanseku/color · @yanseku/data · @yanseku/mcp) · PyPI (yanseku) · HuggingFace (yanseku/chinese-traditional-colors)
origem: standard = amostra oficial; community = cor nomeada pela comunidade; traditional = Chinese traditional color
Endpoint público gratuito - seja razoável (sugestão: ≤ 60 req/min).