Открытое API
Пять бесплатных конечных точек, без регистрации, без ключа, с поддержкой CORS. Данные такие же, как на сайте: 24-битное пространство, 32 258 именованных цветов, 17 756 стандартных образцов и 659 китайских традиционных цветов.
Конечные точки в обзоре
Каждая конечная точка поддерживает CORS — запрос можно отправить напрямую из браузера или Node.js.
GET/api/search?q=crimson&limit=8
Поиск цветов по названию, стандартному коду, традиционному названию или HEX
Параметры
| q | Ключевое слово запроса: значение HEX (ff0000), имя цвета (crimson) или стандартный код (RAL 3020) |
| limit | Максимальное количество результатов, по умолчанию 12, ограничено 50 |
Пример запроса
curl "https://www.yanseku.com/api/search?q=crimson&limit=8"
Прямой fetch работает в браузере (CORS включен).
Пример ответа
{
"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
Профиль цвета: 10 форматов + ближайшие именованные цвета + совпадения по 8 стандартным системам + совпадения с традиционными цветами + 6 гармоний + контраст
Параметры
| hex | Значение цвета: 3 или 16-ричные цифры (e63946 или e63) |
Пример запроса
curl "https://www.yanseku.com/api/color/e63946"
Пример ответа
{
"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
Схема гармонии: шесть правил вокруг вашего базового цвета
Параметры
| hex | Значение цвета: 3 или 16-ричные цифры (e63946 или e63) |
| mode | Режим гармонии, по умолчанию дополнительный. Варианты: complementary / split-complementary / triadic / tetradic / analogous / monochromatic |
Пример запроса
curl "https://www.yanseku.com/api/scheme?hex=e63946&mode=triadic"
Пример ответа
{
"hex": "e63946",
"mode": "triadic",
"count": 3,
"colors": ["e63946", "46e639", "3946e6"]
}GET/api/contrast?fg=ffffff&bg=e63946
Проверка контраста: коэффициент WCAG + уровни AA/AAA + оптимальный цвет текста
Параметры
| fg | HEX переднего плана, например ffffff |
| bg | HEX фона, например e63946 |
Пример запроса
curl "https://www.yanseku.com/api/contrast?fg=ffffff&bg=e63946"
Пример ответа
{
"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
Случайные цвета из подборки имен, до 10 штук
Параметры
| count | Количество цветов, 1-10, по умолчанию 1 |
Пример запроса
curl "https://www.yanseku.com/api/random?count=5"
Пример ответа
{
"count": 3,
"colors": [
{ "name": "Sea Foam Green", "hex": "c2e4d0" },
{ "name": "Deep Koamaru", "hex": "333366" },
{ "name": "Laser Lemon", "hex": "ffff66" }
]
}Загрузка открытых данных
Помимо API — возьмите всю базу цветов с собой. Формат CSV (UTF-8, строка заголовков), готов для анализа данных, машинного обучения и исследования дизайн-систем. Имена полей указаны в заголовке; наборы данных обновляются при каждой сборке.
Названия цветов взяты из meodai/color-names (MIT) и xkcd Color Survey; брендовые цвета из открытых данных simple-icons; китайские традиционные цвета из zerosoul/chinese-colors и zhongguose.com; стандартные образцы цветов — это компьютерно смоделированные преобразования, для производства проверяйте по физическим образцам. Соблюдайте соответствующие лицензии исходных источников.
Открытые пакеты
Движок и данные сайта распространяются как открытые библиотеки — работают офлайн, готовы к использованию в производстве. Три пакета npm покрывают движок, наборы данных и MCP Server, плюс порт для Python и набор данных для HuggingFace.
Цветовой движок: преобразования 10 форматов, CIEDE2000, APCA, смешивание OKLab, 6 правил гармонии, симуляция цветового зрения — чистая математика, нулевые зависимости
npm install @yanseku/color
Наборы данных: 17 корпусов, более 85 000 записей (названные цвета, стандартные образцы, традиционные, японские, брендовые...), JSON с предварительно вычисленным LAB
npm install @yanseku/data
MCP Server: подключите всю базу цветов к Claude / Cursor — 7 офлайн-инструментов
npm install -g @yanseku/mcp
Порт для Python: установка через pip и использование — та же математика D65 и deltaE2000, в комплекте 659 традиционных историй
pip install yanseku
Конфигурация MCP (claude_desktop_config.json)
{
"mcpServers": {
"yanseku": {
"url": "https://www.yanseku.com/api/mcp"
}
}
}Конфигурация MCP — локальная (npx, офлайн)
{
"mcpServers": {
"yanseku": {
"command": "npx",
"args": ["-y", "@yanseku/mcp"]
}
}
}Сравнение возможностей с другими цветовыми библиотеками
Обычные библиотеки выполняют только математические вычисления; уникальная особенность Yanseku — данные: поиск по именованным цветам, подбор официальных цветовых образцов и истории традиционных цветов.
| Возможность | Yanseku | colorjs.io | culori | chroma-js |
|---|---|---|---|---|
| Преобразование цветовых пространств (10 форматов) | ✔ | ✔ | ✔ | |
| Разница цветов CIEDE2000 | ✔ | ✔ | ✔ | |
| Восприятический контраст APCA | ✔ | ✘ | ✘ | |
| Симуляция цветового зрения (8 типов) | ✔ | ✘ | ✘ | |
| Поиск по именованным цветам (32 258) | ✔ 32,258 | ✘ | ✘ | |
| Подбор официальных цветовых образцов (12 систем) | ✔ 17,756 | ✘ | ✘ | |
| Китайские традиционные истории (659) | ✔ 659 | ✘ | ✘ | |
| Правила восприятической гармонии | ✔ 6 rules | ✘ | ✔ palette | |
| MCP Server (офлайн) | ✔ remote + offline | ✘ | ✘ | |
| Порт для Python | ✔ | ✘ | ✘ | |
| Полный CSV / набор данных HF | ✔ 17 sets | ✘ | ✘ |
Где получить: npm (@yanseku/color · @yanseku/data · @yanseku/mcp) · PyPI (yanseku) · HuggingFace (yanseku/chinese-traditional-colors)
источник: standard = официальный образец; community = цвет с именем от сообщества; traditional = китайский традиционный цвет
Бесплатный общедоступный эндпоинт — пожалуйста, соблюдайте разумные лимиты (рекомендуется ≤ 60 запросов/мин).